---
title: SAIF.Presentation dependencies
summary: Internal and external dependencies for this library.
status: draft
owner: SAIF Documentation Team
last_reviewed: 2026-08-17
library: SAIF.Presentation
reference_type: package
---

# SAIF.Presentation dependencies

## Internal dependencies

<!-- SAIF.Presentation.vbproj declares no <ProjectReference> elements to any other project in this
repository, so there are no same-repo project references to document. The three SAIF.* NuGet packages below have no docs/libraries/<slug> folder present in this repository, so they are classified as "NuGet Package". None of them correspond to any of the 9 documented libraries in this run, so no links
are used. -->

| Dependency | Reference Type | Usage |
| --- | --- | --- |
| SAIF.BOF.Framework (assemblies `SAIF.Framework.dll`, `SAIF.Framework.Preferences.dll`) | NuGet Package | Supplies `IDataPortalInfo`, `clsLogTrace`, `PreferenceData`, `Preference` (via `Imports SAIF.Framework.Preferences`); the core persistence dependency for `clsPreferences`. Excluded/undocumented in this run's documented library set. |
| SAIF.Framework.Common | NuGet Package | Supplies `clsMSOracleDataLayer`, `AppGlobal`, `EnvironmentConfigKeys`, used to resolve the Oracle connection target for preference persistence*. Excluded/undocumented in this run's documented library set. |
| SAIF.HashUtil | NuGet Package | Referenced by the project (`packages.config`); no direct call site was found in `clsPreferences.vb`**. Excluded/undocumented in this run's documented library set. |

## External dependencies
| Dependency | Version | Usage |
| --- | --- | --- |
| System | BCL (framework reference) | Base class library types. |
| System.Data | BCL (framework reference) | Data-access base types (no direct SQL/ADO.NET usage in this library beyond delegated types). |
| System.Web | BCL (framework reference) | Supplies `System.Web.HttpContext`, used to detect a web execution context and derive the current request's page name. |
| System.Web.Extensions | BCL (framework reference) | Supplies `System.Web.Script.Serialization.JavaScriptSerializer`, used to serialize preference item dictionaries to JSON before persistence. |
| System.Xml | BCL (framework reference) | Referenced by the project; no direct XML API usage confirmed in `clsPreferences.vb`**. |
| System.Core | BCL (framework reference) | Referenced by the project (LINQ/extension-method support). |
| System.Xml.Linq | BCL (framework reference) | Referenced by the project; no direct usage confirmed in `clsPreferences.vb`**. |
| System.Data.DataSetExtensions | BCL (framework reference) | Referenced by the project; no direct usage confirmed in `clsPreferences.vb`**. |

## Dependency risks and notes
- **Hard-coded database identity**: `Load()` always constructs `clsMSOracleDataLayer` with database user `CLM` and the value returned by `GetConfigSetting(EnvironmentConfigKeys.OracleDatabase)`, hard-wiring every consumer of `clsPreferences` (regardless of the caller's own application) to the same Oracle DB user/schema*.
- **Single configuration touchpoint, externally resolved**: the only setting this library depends on is `EnvironmentConfigKeys.OracleDatabase`, resolved via `AppGlobal.EnvironmentService.GetConfigSetting` inside `SAIF.Framework.Common`; no local `App.config`/`Web.config`/`AppSettings` are defined or read (see [Configuration](configuration.md)). The same key is independently consumed by the sibling library `SAIF.Presentation.Web.MVC` with an identical call shape, but the two libraries do not share a configuration object — each resolves the key on its own*.
- **Unclear `Save()` reliability**: `Save()`'s `Boolean` return is dead code (always `False`); any consumer of this library that checks the return value to detect failure cannot rely on it, and must instead catch the `ApplicationException` thrown on error*.
- **Possibly unused dependency**: `SAIF.HashUtil` is declared in `packages.config` but has no discoverable call site in the only compiled source file, `clsPreferences.vb`**.
- **Undisambiguated assembly identity**: whether `PreferenceData`/`Preference` (consumed via `Imports SAIF.Framework.Preferences`) resolve from `SAIF.Framework.dll` or `SAIF.Framework.Preferences.dll` — both shipped by the same `SAIF.BOF.Framework` package — could not be confirmed from the `.vbproj` reference block alone**.
- **Reverse dependents (in-repo consumers)**: although `SAIF.Presentation` itself has no internal project references, it is consumed via `<ProjectReference>` by four sibling libraries in this repository — `SAIF.Presentation.Web.Core.Infragistics103`, `SAIF.Presentation.Web.MVC`, `SAIF.Presentation.Web.Controls.V2.Menu`, and `SAIF.Presentation.Web.Controls.AJAX.Infragistics103` — meaning any breaking change to `clsPreferences`/`PrefScope` has a multi-library blast radius.
- **Source-only packaging**: per the root `.nuspec`, this project's `.vb` source (not a compiled binary) is bundled into the `SAIF.BOF.Presentation.Web.Infragistics103` package; consumers recompile it alongside the package's actual compiled binary, which is built from `SAIF.Presentation.Web.Core.Infragistics103`*.
- No transitive dependencies section is included: this library has no `<ProjectReference>` entries, and its direct NuGet packages (`SAIF.BOF.Framework`, `SAIF.Framework.Common`) already account for every external framework type consumed (`PreferenceData`, `Preference`, `clsMSOracleDataLayer`, `AppGlobal`, `EnvironmentConfigKeys`, `clsLogTrace`) — none are inherited indirectly through an intermediate framework package.

> **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](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [Configuration](configuration.md)
- [API reference](api/index.md)

## Sources
- SAIF.Presentation\clsPreferences.vb
- SAIF.Presentation\SAIF.Presentation.vbproj
- SAIF.Presentation\packages.config
- SAIF.Presentation.Web.MVC\clsModelBase.vb
- SAIF.Presentation.Web.Controls.V2.Menu\SAIFMenu.vb
- SAIF.Presentation.Web.Controls.AJAX.Infragistics103\InfragisticsGridCustomizer.vb
- SAIF.BOF.Presentation.Web.Infragistics103.nuspec
