SAIF.Presentation overview¶
Documentation context: Packaged Component (NuGet)
SAIF.Presentation is a single-purpose presentation-tier library that provides a per-user, per-application/page preference (settings) store for SAIF web and Windows Forms applications, mediating between calling UI code and the SAIF BOF data-access layer.
Purpose¶
- Provide an in-memory, per-user preference (settings) cache that is loaded once on construction and can be read and mutated without a database round-trip.
- Offer scoped preference storage — application-level, page-level, and web-level — so consuming UI code can store settings appropriate to its own granularity (e.g., a single control's page vs. an entire application).
- Persist accumulated in-memory changes back to the Oracle-backed preference store on demand via an explicit
Save()call, delegating all SQL/BOF persistence work toSAIF.Framework.Preferences.PreferenceData. - Consumed by other SAIF presentation-tier libraries (
SAIF.Presentation.Web.Core.Infragistics103,SAIF.Presentation.Web.MVC,SAIF.Presentation.Web.Controls.V2.Menu,SAIF.Presentation.Web.Controls.AJAX.Infragistics103) as a same-repo project reference, recompiled from source rather than consumed as a compiled binary*.
Responsibilities¶
- Cache all
Preferencegroups for the authenticated portal user in memory on construction. - Provide scoped read/write access to preference key-value pairs via the
Itemindexer and theAdd/Remove/Clear/Deletemembers. - Resolve the "current page" identity via web request path parsing or, in non-web contexts, an explicit override or stack-trace-based inference*.
- Persist in-memory preference changes to the Oracle-backed
PreferenceDatastore on explicitSave()calls. - Resolve its own Oracle connection target through the
SAIF.Framework.Commonenvironment-service abstraction rather than reading local configuration (see Configuration).
Key components¶
clsPreferences: the sole public service — an in-memory preference cache plus a thin persistence-orchestration layer overPreferenceData.PrefScope: a public enum (AppLevel,PageLevel,WebLevel) that defines the boundary at which a preference key is stored/retrieved.
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¶
Sources¶
- SAIF.Presentation\clsPreferences.vb
- SAIF.Presentation\SAIF.Presentation.vbproj
- SAIF.BOF.Presentation.Web.Infragistics103.nuspec