SAIF.Framework.Preferences dependencies¶
SAIF.Framework.Preferences has a minimal dependency footprint: one internal binary reference to SAIF.Framework (built from SAIF.Framework.Core), standard .NET BCL assemblies, and one Oracle database table. No NuGet <PackageReference> or packages.config entries were found in the project file.
Internal dependencies¶
| Dependency | Type | Usage |
|---|---|---|
| SAIF.Framework (assembly, produced by SAIF.Framework.Core) | Internal | Resolved via a HintPath binary reference (..\SAIF.Framework.Core\bin\SAIF.Framework.dll), not a <ProjectReference>. Provides IDataPortalInfo, SqlHelper.ResultSetQuery, SqlHelper.ScalarQuery<T>, SqlHelper.NewParm, and clsResultSet.DataRow, used directly by PreferenceData to execute inline SQL against USER_PREFERENCE.* |
External dependencies¶
| Dependency | Version | Usage |
|---|---|---|
| System, System.Core, System.Data, System.Xml, System.Xml.Linq, System.Data.DataSetExtensions | (BCL, project-referenced) | Standard .NET assembly references declared in the .csproj. |
| System.Web.Extensions | (BCL, project-referenced) | Provides System.Web.Script.Serialization.JavaScriptSerializer, used in GetPreferencesForUser to deserialize the PREFERENCE_TEXT JSON payload into a Dictionary<string,string>. |
Dependency risks and notes¶
- Deviation from standard BOF pattern: Unlike most BOF libraries,
PreferenceDatabypasses theclsBusinessBase/clsBusinessCollectionBase+IBusinessCriteriaobject-lifecycle model and issues inline Oracle SQL directly throughSqlHelper.ResultSetQuery/SqlHelper.ScalarQuery<T>against a single table, USER_PREFERENCE. Consumers and maintainers expecting the standard business-object/criteria pattern should be aware this library does not follow it. - Binary reference, not project reference: The dependency on
SAIF.Frameworkis wired through aHintPathreference to a prebuilt DLL rather than a<ProjectReference>toSAIF.Framework.Core. The local.slnbuilds against the sibling project's output, but the.csprojitself does not express this as a project-to-project reference, which can cause stale-binary risk ifSAIF.Framework.Corechanges without a rebuild in dependency order.* - Externally supplied execution context: This library resolves no configuration or connection settings itself (no
IEnvironmentService,ConfigurationManager.AppSettings,Web.config/App.config, orDbConnectionManagerusage). All database/portal context is supplied by the caller via the injectedIDataPortalInfo, so correctness depends entirely on the host application configuring that context correctly. - Open question — possible duplicate implementation: A separate
PreferenceData.vbimplementing similar preference persistence exists atSAIF.Framework.Core\Preferences\PreferenceData.vb. This is a distinct file belonging toSAIF.Framework.Core, outside the scope of this library's analysis; whether it duplicates, supersedes, or is unrelated to this library'sPreferenceDataclass is unconfirmed and should be resolved before consolidating documentation across the two libraries.** - Single-table, no-join footprint: All 7 cataloged SQL statements (see SQL catalog) in this library reference only USER_PREFERENCE, with no joins or foreign-key relationships to other tables, limiting the blast radius of schema changes to this one table.
- Database type is Oracle, evidenced by colon-prefixed bind variables (
:userid,:appname,:pagename,:prefs,:updated,:updateby) and theUSER_PREFERENCE_SEQ.nextvalsequence-generation idiom used for key generation inInsertPref. NoOWNER.TABLE_NAMEschema qualifier appears in any SQL statement, and noWeb.config/App.configfile exists in this library to confirm the connecting Oracle schema owner.**
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
- Configuration
- Database tables
- SQL catalog
- API reference
Sources¶
- SAIF.Framework.Preferences\SAIF.Framework.Preferences.csproj
- SAIF.Framework.Preferences\PreferenceData.cs
- SAIF.Framework.Preferences\Preference.cs
- SAIF.Framework.Core\V1\DataAccessLayer\SqlHelper.vb
- SAIF.Framework.Core\Preferences\PreferenceData.vb