SAIF.Presentation.Web.MVC dependencies¶
Internal dependencies¶
| Dependency | Reference Type | Usage |
|---|---|---|
| SAIF.Business.Menu | Project Reference | NavigationContext consumes clsMenuAuthorizedItemCollection, clsApplicationCodeCollection, clsMenuCategoryCodeCollection, clsApplicationCode, and clsMenuAuthorizedItem to build the per-user authorized-menu lookup used by clsControllerBase.RedirectUnauthorizedUsers() for menu-driven page authorization. |
| SAIF.Presentation | Project Reference | clsModelBase consumes clsPreferences (SAIF.Presentation.clsPreferences) to expose a per-page/per-application Preferences property to concrete models. |
SAIF.BOF.Framework (assemblies SAIF.Framework.dll, SAIF.Framework.Preferences.dll) |
NuGet Package | Supplies clsSecurityPrincipal (authenticated identity, consumed by SecurityCheck()), clsLogTrace/clsLogError (diagnostic tracing and error logging/email), clsEnvironment (internal-address checks), AppGlobal/EnvironmentService/EnvironmentConfigKeys (configuration resolution), clsConnection (SQL Server connection helper used by clsContext), clsMSOracleDataLayer/IDataPortalInfo (Oracle data-portal context used by NavigationContext). (v1.0.20105.1) |
| SAIF.Framework.Common | NuGet Package | Referenced in the project file (packages.config/.vbproj); no directly attributable call site was found in this library's live code.* (v1.0.18145.1) |
| SAIF.HashUtil | NuGet Package | Referenced in packages.config/.vbproj only; no direct type usage found in this library's live code — likely a transitive dependency of SAIF.BOF.Framework.* (v1.0.18067.1) |
No other sibling libraries from this run's documented set (SAIF.Presentation.Web.Core.Infragistics103, SAIF.Presentation.Web.Binding.Infragistics103, SAIF.Presentation.Web.Controls.V2, SAIF.Presentation.Web.Controls.V2.Menu, SAIF.Presentation.Web.Controls.Infragistics103, SAIF.Presentation.Web.Controls.AJAX.Infragistics103) are referenced by SAIF.Presentation.Web.MVC — none of these appear as <ProjectReference>, <Reference>, or Imports targets in this library's own source, so they are intentionally omitted here as plain text rather than linked.
External dependencies¶
| Dependency | Version | Usage |
|---|---|---|
| System.Web / System.Web.UI | BCL (framework reference) | Page, UserControl, WebControls, HttpContext, HttpCookie — the WebForms hosting surface for ViewPageBase/ViewControlBase. |
| System.Data / System.Data.SqlClient | BCL (framework reference) | SqlConnection, SqlCommand, SqlDataAdapter, SqlParameter — direct ADO.NET access to the SQL Server Context table inside clsContext's private clsContextRepository. |
| System.Data.OracleClient | BCL (framework reference, referenced in .vbproj) |
Declared as a project reference but no direct Oracle ADO.NET call site exists in this library's own code — Oracle access is delegated to clsMSOracleDataLayer (external, SAIF.Framework.Common) inside NavigationContext.* |
| System.Configuration | BCL (framework reference) | ConfigurationManager.AppSettings — resolves ErrorPageName, TraceLogging, PageTraceOn, TraceUser, and EXT_VIEWSTATE_SESSION. See Configuration. |
| System.Xml | BCL (framework reference) | Referenced by the project. |
| System.Collections | BCL (framework reference) | Hashtable, HybridDictionary — used for view-data/model storage. |
| System.Diagnostics | BCL (framework reference) | TraceSwitch, Trace — page/application trace output gated by TraceLogging/PageTraceOn. |
| Microsoft.VisualBasic | BCL (framework reference) | VB runtime helpers. |
| Infragistics.WebUI.* (WebCombo, WebDataInput, WebSchedule.WebDateChooser) | Not compile-time referenced | ViewPageBase.NavigationManager performs GetType.FullName string checks (reflection only, no compile-time Infragistics.* assembly reference in this project) to generate control-type-specific client-focus JavaScript. |
Dependency risks and notes¶
- Direct, un-abstracted SQL Server dependency:
clsContext's privateclsContextRepositoryopens rawSqlConnection/SqlCommand/SqlDataAdapterobjects against aContexttable in theNETFRAMEWORKcatalog, bypassing the standard BOFIBusinessCriteriapattern used elsewhere in SAIF. Any change to theContexttable schema or toclsConnection.getConnection's signature (defined outside this library) breaks cross-application context hand-off silently, since no rowcount/contention validation exists around the delete-then-insert or read-then-delete flows. See Database tables and SQL catalog. - Indirect Oracle dependency for authorization data:
NavigationContextconstructs aclsMSOracleDataLayer(viaEnvironmentConfigKeys.OracleDatabase) to retrieve menu-authorization collections fromSAIF.Business.Menu. This means the menu-driven authorization gate (RedirectUnauthorizedUsers, BR-MVC-002) depends on Oracle availability on every request that needs to (re)buildSession("navdata"), in addition to the SQL Server dependency above — a two-database availability requirement for a single request pipeline. - Plain-text configuration only: all environment-varying settings this library resolves (
NetFrameworkSqlServer,OracleDatabase, the literalpolicymanagement.supportemaillistkey) go throughGetConfigSetting, notGetSecureConfigSetting; no secure/encrypted settings are used anywhere in this library. See Configuration. - Unused/unattributed package references:
SAIF.Framework.CommonandSAIF.HashUtilare declared as dependencies (packages.config/.vbproj) but have no confirmed call site in this library's live source — they may be transitive dependencies ofSAIF.BOF.Frameworkcarried over from a template project, or genuinely unused.** - Coarse, non-attribute-based authorization: no
[SAIFAuthorize]attribute, WCFSecurityServiceclient, or ADPrincipalContext/LDAP dependency exists in this library; authorization instead depends entirely onclsSecurityPrincipal(external,SAIF.BOF.Framework) for identity and onSAIF.Business.Menu-backed data for page entitlement. See Security and authorization. - Reverse dependents:
SAIF.Presentation'sclsPreferencesis also consumed directly bySAIF.Presentation.Web.Controls.V2.MenuandSAIF.Presentation.Web.Controls.AJAX.Infragistics103, so a breaking change toclsPreferenceshas a blast radius beyond this library alone.* - Source-only packaging: per the root
.nuspec, this project's.vbsource (not a compiled binary) is bundled into theSAIF.BOF.Presentation.Web.Infragistics103NuGet package; the package's compiled binary is built fromSAIF.Presentation.Web.Core.Infragistics103, so consumers recompile this library's source alongside that compiled output.* - Namespace mismatch in markup:
ViewPageBase.aspx/ViewControlBase.ascxdeclareInherits="SAIF.ViewPageBase"/Inherits="SAIF.ViewControlBase"(namespaceSAIF) rather than the project's actual root namespaceSAIF.Presentation.Web.MVC, suggesting these markup files are unused legacy scaffolding and that real markup lives in each consuming application.**
Note: Statements marked with * were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts. Statements marked with ** could not be confirmed; treat as unknown until verified.
Related documentation¶
- Index
- Overview
- Architecture
- Operations and processes
- Business rules
- Security and authorization
- Database tables
- SQL catalog
- Configuration
- API reference
Sources¶
- SAIF.Presentation.Web.MVC\clsContext.vb
- SAIF.Presentation.Web.MVC\clsOnlineContext.vb
- SAIF.Presentation.Web.MVC\clsControllerBase.vb
- SAIF.Presentation.Web.MVC\clsFactoryBase.vb
- SAIF.Presentation.Web.MVC\clsModelBase.vb
- SAIF.Presentation.Web.MVC\NavigationContext.vb
- SAIF.Presentation.Web.MVC\ViewControlBase.ascx.vb
- SAIF.Presentation.Web.MVC\ViewPageBase.aspx.vb
- SAIF.Presentation.Web.MVC\SAIF.Presentation.Web.MVC.vbproj
- SAIF.Presentation.Web.MVC\packages.config
- SAIF.Business.Menu\clsMenuAuthorizedItemCollection.vb
- SAIF.Business.Menu\clsApplicationCodeCollection.vb
- SAIF.Business.Menu\clsMenuCategoryCodeCollection.vb
- SAIF.Presentation\clsPreferences.vb
- SAIF.BOF.Presentation.Web.Infragistics103.nuspec