---
title: SAIF.Presentation.Web.MVC overview
summary: High-level purpose, scope, and responsibilities for this library.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-08-17
library: SAIF.Presentation.Web.MVC
reference_type: package
---

# SAIF.Presentation.Web.MVC overview

> **Documentation context:** Packaged Component (NuGet)

`SAIF.Presentation.Web.MVC` is the SAIF in-house Model-View-Controller framework layered on ASP.NET WebForms. It supplies the abstract base types that every SAIF WebForms screen derives from — `ViewPageBase`, `ViewControlBase`, `clsControllerBase`, `clsModelBase`, `clsFactoryBase` — plus `clsContext`/`clsOnlineContext` for cross-application context hand-off persisted in a SQL Server `Context` table, and `NavigationContext` for menu-driven page authorization backed by Oracle. It is the only library in this batch that reads configuration, performs data access, and enforces authorization.

## Purpose
- Supplies the abstract page, user-control, controller, model, and factory base types (`ViewPageBase`, `ViewControlBase`, `clsControllerBase`, `clsModelBase`, `clsFactoryBase`) that orchestrate the request lifecycle for every SAIF WebForms screen: session-timeout handling, security establishment, per-page menu authorization, model initialization, query-string and cross-application context processing, control-value harvesting, navigation, and centralized error handling.
- Provides a named key/value context bag (`clsContext`/`clsOnlineContext`) with a SQL Server-backed repository that hands typed values (claim ID, policy number, target/source app and view) between SAIF web applications within a user's session.
- Provides `NavigationContext`, a per-user cache of authorized menu items (loaded from Oracle via `SAIF.Business.Menu`, a project reference within this repository) used to decide whether a request may reach a given application/page.
- Consumed by every concrete SAIF WebForms screen and its controller/model pair across the consuming applications; it ships no concrete screens of its own.

## Responsibilities
- Own the ASP.NET WebForms page/control lifecycle and view identity for every derived screen.
- Establish and propagate the authenticated security principal, and enforce menu-based page authorization on every request.
- Persist and retrieve cross-application context hand-off values.
- Cache the user's authorized menu items for the duration of the session.
- Centralize error logging, notification, and error-page routing.
- Restore client-side input focus after postbacks and expose diagnostic script markers.

## Key components
- `ViewPageBase`: WebForms page base; wires the controller into the page lifecycle, owns view identity and view-state persistence policy, and processes page-level errors.
- `ViewControlBase`: user-control counterpart of `ViewPageBase`.
- `clsControllerBase`: per-screen controller base — initialization, security check, menu authorization, query-string/context handling, control harvesting, navigation, and error handling.
- `clsModelBase`: screen model base — holds context and preferences, defines the validate-then-write contract.
- `clsFactoryBase`: abstract factory returning the screen's controller and model.
- `clsContext` / `clsOnlineContext`: named key/value context bag with SQL Server-backed cross-application persistence.
- `NavigationContext`: per-user authorized-menu cache used for page-level authorization and menu lookups.

## Related documentation
- [Index](index.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [Database tables](database-tables.md)
- [SQL catalog](sql/index.md)
- [Configuration](configuration.md)
- [Security and authorization](security-authorization.md)
- [API reference](api/index.md)

## Sources
- SAIF.Presentation.Web.MVC/SAIF.Presentation.Web.MVC.vbproj
- SAIF.Presentation.Web.MVC/clsControllerBase.vb
- SAIF.Presentation.Web.MVC/clsModelBase.vb
- SAIF.Presentation.Web.MVC/clsFactoryBase.vb
- SAIF.Presentation.Web.MVC/clsContext.vb
- SAIF.Presentation.Web.MVC/clsOnlineContext.vb
- SAIF.Presentation.Web.MVC/NavigationContext.vb
- SAIF.Presentation.Web.MVC/ViewPageBase.aspx.vb
- SAIF.Presentation.Web.MVC/ViewControlBase.ascx.vb
- SAIF.BOF.Presentation.Web.Infragistics111.nuspec
