---
title: SAIF.Business.Menu overview
summary: High-level purpose, scope, and responsibilities for this library.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-08-17
library: SAIF.Business.Menu
reference_type: package
---

# SAIF.Business.Menu overview

> **Documentation context:** Packaged Component (NuGet)

`SAIF.Business.Menu` is a SAIF BOF (Business Object Framework) business library (assembly `SAIF.Business.Menu`, root namespace `SAIF.Business.Menu`) that models the SAIF web menu system: applications, menu categories, menu pages, menu items, per-item security groups, group memberships, and per-user favorites. It is packaged into the shared `SAIF.BOF.Presentation.Web.Infragistics111` NuGet package alongside the presentation-layer libraries that consume it for navigation and page-level authorization.

## Purpose
- Model the menu domain — applications, categories, pages, items, security groups, group memberships, and favorites — and provide full CRUD administration of each through standard BOF business objects.
- Resolve, per user, the effective set of reachable menu items by combining group-granted access, unsecured (no-grant) items, and the user's own favorites into a single read-only projection (`clsMenuAuthorizedItemCollection`) that backs page-level authorization checks in consuming presentation applications.
- Expose per-item toolbar capability flags (print, download, help, save, insert, delete, save-preferences) consumed by presentation-layer menu rendering.

## Responsibilities
- Provide full or partial CRUD for applications (`clsApplicationCode`), menu categories (`clsMenuCategoryCode`), pages (`clsMenuPage`), items (`clsMenuItem`), security grants (`clsMenuSecurity`), group memberships (`clsMenuSecurityUser`), and favorites (`clsMenuFavorite`).
- Resolve and expose the authorized-item projection (`clsMenuAuthorizedItem` / `clsMenuAuthorizedItemCollection`) with its lookup/filter surface used for navigation and authorization checks.
- Persist all changes through the standard BOF `IBusinessCriteria` + `Before*`/`After*` lifecycle against Oracle, with no database connection management of its own.

## Key components
- `clsMenuAuthorizedItemCollection` / `clsMenuAuthorizedItem`: the read-side authorization projection — resolves and exposes a user's reachable menu items; read-only, no CRUD of its own.
- `clsMenuItem` / `clsMenuItemCollection`: placement of a page within a category, owning its security groups as a child collection.
- `clsMenuPage` / `clsMenuPageCollection`: navigable page definitions and toolbar capability flags.
- `clsMenuSecurity` / `clsMenuSecurityCollection`: security-group grants on menu items.
- `clsMenuSecurityUser` / `clsMenuSecurityUserCollection`: user membership in security groups.
- `clsMenuFavorite` / `clsMenuFavoriteCollection`: per-user favorite menu items.
- `clsApplicationCode` / `clsApplicationCodeCollection`: registered applications and their virtual paths.
- `clsMenuCategoryCode` / `clsMenuCategoryCodeCollection`: menu category lookup codes.
- `mdlUtilities`: cross-cutting helper for moving LINQ-filtered sequences back into BOF collections.

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

## Sources
- SAIF.Business.Menu/SAIF.Business.Menu.vbproj
- SAIF.Business.Menu/AssemblyInfo.vb
- SAIF.BOF.Presentation.Web.Infragistics111.nuspec
