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

# SAIF.Business.Menu overview

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

SAIF.Business.Menu is a component-tier BOF (Business Object Framework) class library that models the application's dynamic navigation menu system. It provides business objects for menu items, pages, categories, per-user favorites, and menu-level access grouping, consumed by front-end applications to render authorized navigation menus against an Oracle database.

## Purpose
- Provide BOF business objects for all aspects of the application navigation menu: items, pages, categories, favorites, and security-group associations.
- Enable front-end and presentation-layer consumers to retrieve, persist, and manage menu metadata through a standard BOF data-portal pattern.

## Responsibilities
- Build and structure the hierarchical menu tree (items grouped by page and category) presented to users.
- Classify menu items by category via `clsMenuCategoryCode`.
- Manage per-user favorite menu-item bookmarks via `clsMenuFavorite` / `clsMenuFavoriteCollection`.
- Record menu-authorization data: which security group or individual user maps to which menu item (`clsMenuSecurity` / `clsMenuSecurityUser`).
- Scope menu structures by application via `clsApplicationCode`.
- Expose per-user authorized menu-item projections through `clsMenuAuthorizedItemCollection`.

## Key components
- `clsApplicationCode` / `clsApplicationCodeCollection`: code-table entity for application identifiers that scope menu pages.
- `clsMenuItem` / `clsMenuItemCollection`: core menu-item entity (menu tree node) and its collection.
- `clsMenuPage` / `clsMenuPageCollection`: page-level grouping of menu items with toolbar-button configuration flags.
- `clsMenuCategoryCode` / `clsMenuCategoryCodeCollection`: code-table for menu item categories.
- `clsMenuFavorite` / `clsMenuFavoriteCollection`: per-user favorite menu-item bookmarks.
- `clsMenuAuthorizedItem` / `clsMenuAuthorizedItemCollection`: projects the set of menu items a user is authorized to see, including favorite indicators and unsecured items.
- `clsMenuSecurity` / `clsMenuSecurityCollection`: associates a menu item with a `SecurityGroup` string tag.
- `clsMenuSecurityUser` / `clsMenuSecurityUserCollection`: associates individual users with a security-group record.
- `mdlUtilities`: shared helper module for the library.

## 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)
- [API reference](api/index.md)

## Sources
- `Business\SAIF.Business.Menu\SAIF.BOF.Business.Menu.vbproj`
- `Business\SAIF.Business.Menu\SAIF.BOF.Business.Menu.nuspec`
- `Business\SAIF.Business.Menu\clsApplicationCode.vb`
- `Business\SAIF.Business.Menu\clsMenuItem.vb`
- `Business\SAIF.Business.Menu\clsMenuPage.vb`
- `Business\SAIF.Business.Menu\clsMenuFavorite.vb`
- `Business\SAIF.Business.Menu\clsMenuSecurity.vb`
- `Business\SAIF.Business.Menu\clsMenuSecurityUser.vb`
- `Business\SAIF.Business.Menu\clsMenuAuthorizedItem.vb`
- `Business\SAIF.Business.Menu\mdlUtilities.vb`
