---
title: SAIF.Presentation.Web.Controls.V2.Menu dependencies
summary: Internal and external dependencies for this library.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-08-17
library: SAIF.Presentation.Web.Controls.V2.Menu
reference_type: package
---

# SAIF.Presentation.Web.Controls.V2.Menu dependencies

## Internal dependencies

| Dependency | Reference Type | Usage |
| --- | --- | --- |
| [SAIF.Business.Menu](../saif-business-menu/overview.md) | Project Reference | Supplies `clsMenuAuthorizedItem`, `clsMenuAuthorizedItemCollection` and `SortParm` — the authorised menu item model and its `Favorites`/`ApplicationItems`/`AppItemsByCategory` views and sort methods. |
| [SAIF.Presentation.Web.MVC](../saif-presentation-web-mvc/overview.md) | Project Reference | Supplies `ViewPageBase` (page-lifecycle base the controls cast the hosting page to) and `NavigationContext` (menu authorization/navigation resolution). |
| [SAIF.Presentation](../saif-presentation/overview.md) | Project Reference | Supplies `clsPreferences` and `PrefScope`, used by `SAIFMenu` to persist and read the `SHOWAPPS` preference under application `BOMENU`. |
| [SAIF.Presentation.Web.Controls.V2](../saif-presentation-web-controls-v2/overview.md) | Project Reference | Declared project reference; no direct type usage from this project was found in the three scanned source files.* |
| SAIF.BOF.Framework | NuGet Package | Declared package reference; supplies `SAIF.Framework.Security` (`AppGlobal.EnvironmentService.IsClientExternal`, used to gate the "Change Password" link). |
| SAIF.Framework.Common | NuGet Package | Shared SAIF framework primitives referenced by the project (no direct call site observed). |
| SAIF.HashUtil | NuGet Package | SAIF hashing utility referenced by the project (no direct call site observed). |
| SAIF.Web.API.Clients | NuGet Package | Declared package/assembly reference; no direct call site observed in this library's source.* |

## External dependencies
| Dependency | Version | Usage |
| --- | --- | --- |
| AjaxControlToolkit | (assembly reference) | Renders the applications accordion in `SAIFMenu` (`Accordion` / `AccordionPane`). |
| Newtonsoft.Json | 8.0.3 | Declared package/assembly reference; binding redirect present in `app.config`; no direct call site observed in this library's source.* |
| RestSharp | 105.2.3 | Declared package/assembly reference (transitive requirement of `SAIF.Web.API.Clients`); no direct call site observed.* |

## Transitive dependencies

Dependencies in this section are inherited indirectly through the two data-access paths this library delegates to; they are not directly referenced by this library but are required at runtime.

| Dependency | Source framework | Type | Usage |
| --- | --- | --- | --- |
| clsMSOracleDataLayer / IDataPortalInfo | `SAIF.Framework.Core` | Transitive | Opened inside `SAIF.Presentation.Web.MVC.NavigationContext` (DB user `MENU`) and `SAIF.Presentation.clsPreferences` (DB user `CLM`) on behalf of this library's menu/preference reads.† |

## Dependency risks and notes
- A duplicate `NavigationContext` class exists in both `SAIF.Presentation.Web.MVC` and `SAIF.Presentation.Web.Core.Infragistics111`; because this project references only the MVC project, the MVC copy is the one bound here — a maintenance risk if the two drift apart.*
- The project references `SAIF.Presentation.Web.Controls.V2`, but no source file in this library uses a type from it; this may be a dead reference or required only for ILMerge ordering.*
- `AppGlobal.EnvironmentService`'s owning assembly could not be confirmed from this repository, so the exact rule that classifies a client as external for the "Change Password" link is unknown.**
- The menu authorization set is cached in `Session("navdata")` for the life of the session; a privilege change in `SAIF.Business.Menu`'s underlying tables does not take effect for an active session until it is recycled.*
- This library's package (`.nuspec`) declares `SAIF.BOF.Framework`, `SAIF.Framework.Common` and `SAIF.HashUtil` as dependencies but not `SAIF.Web.API.Clients`, `Newtonsoft.Json` or `RestSharp`, which are declared in this project's `packages.config` — consumers of the NuGet package would not receive them transitively.*
- This library has no standalone shipped assembly: `SAIF.Presentation.Web.Core.Infragistics111\postbuild.bat` ILMerges it, along with eight sibling assemblies, into the single shipped `SAIF.Presentation.Web.Infragistics111.dll`. The package separately ships `AjaxControlToolkit.dll` to satisfy the `Accordion` dependency at run time.

## Related documentation
- [Index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [Database tables](database-tables.md)
- [Security and authorization](security-authorization.md)
- [Control catalog](control-catalog.md)
- [API reference](api/index.md)

> **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. Statements marked with † were retrieved from a dependency library's own documentation via the Legends CLI RAG service.

## Sources
- `SAIF.Presentation.Web.Controls.V2.Menu/SAIF.Presentation.Web.Controls.V2.Menu.vbproj`
- `SAIF.Presentation.Web.Controls.V2.Menu/packages.config`
- `SAIF.Presentation.Web.Controls.V2.Menu/app.config`
- `SAIF.BOF.Presentation.Web.Infragistics111.nuspec`
- `SAIF.Presentation.Web.Core.Infragistics111/postbuild.bat`
