---
title: SAIF.Framework.Core API reference
summary: Index of all public types in this library.
status: draft
owner: <owner>
last_reviewed: 2026-07-23
library: SAIF.Framework.Core
reference_type: package
---

# SAIF.Framework.Core API reference

This page lists the major public types exposed by `SAIF.Framework.Core`. Each type links to its full API reference page.

## Types

| Type | Kind | Namespace | Purpose |
| --- | --- | --- | --- |
| [clsBusinessBase](SAIF.Framework/clsBusinessBase.md) | Class | `SAIF.Framework` | Foundational abstract base for all single-instance SQL-oriented business objects; provides undo, linking, and rule enforcement. |
| [clsBusinessCollectionBase](SAIF.Framework/clsBusinessCollectionBase.md) | Class | `SAIF.Framework` | Foundational abstract base for business-object collections; provides sorting, traversal, and deleted-item tracking. |
| [clsUndoableBase](SAIF.Framework/clsUndoableBase.md) | Class | `SAIF.Framework` | Base class providing n-level undo (`BeginEdit`/`CancelEdit`/`ApplyEdit`) semantics beneath `clsBusinessBase`. |
| [clsSortableCollectionBase](SAIF.Framework/clsSortableCollectionBase.md) | Class | `SAIF.Framework` | Base class adding sorting/filtering support beneath `clsBusinessCollectionBase`. |
| [clsBusinessCriteriaBase](SAIF.Framework/clsBusinessCriteriaBase.md) | Class | `SAIF.Framework` | Concrete base implementing `IBusinessCriteria` with overridable backing fields for all five SQL properties. |
| [clsRetrieveOnlyBusinessCriteria](SAIF.Framework/clsRetrieveOnlyBusinessCriteria.md) | Class | `SAIF.Framework` | Base for read-only business objects; suppresses Create/Insert/Update/Delete SQL by throwing on access. |
| [clsBusinessApiBase](SAIF.Framework/clsBusinessApiBase.md) | Class | `SAIF.Framework` | API analog of `clsBusinessBase`; foundational base for REST/API-backed single-instance business objects. |
| [clsBusinessApiCriteriaBase](SAIF.Framework/clsBusinessApiCriteriaBase.md) | Class | `SAIF.Framework` | Base criteria implementation for API-backed business objects; SQL properties are always empty by design. |
| [clsBusinessCollectionApiBase](SAIF.Framework/clsBusinessCollectionApiBase.md) | Class | `SAIF.Framework` | API analog of `clsBusinessCollectionBase`; foundational base for REST/API-backed business-object collections. |
| [clsRulesManager](SAIF.Framework/clsRulesManager.md) | Class | `SAIF.Framework` | V1 business rules engine; stores rule-handler delegates and tracks broken-rule results. |
| [RuleManager](SAIF.Framework/RuleManager.md) | Class | `SAIF.Framework` | V2 (modernized) business rules engine, coexisting with `clsRulesManager` but not wired into the base classes. |
| [IDataPortalInfo](SAIF.Framework/IDataPortalInfo.md) | Interface | `SAIF.Framework` | Contract for the central "DPI" object passed to every business object for database and API access. |
| [clsDataPortalInfo](SAIF.Framework/clsDataPortalInfo.md) | Class | `SAIF.Framework` | Concrete implementation of `IDataPortalInfo`, delegating to `IDataAccess` and exposing API client access. |
| [clsSQLDataLayer](SAIF.Framework/clsSQLDataLayer.md) | Class | `SAIF.Framework` | SQL Server implementation of `IDataLayer`. |
| [IDataLayer](SAIF.Framework/IDataLayer.md) | Interface | `SAIF.Framework` | Data-access driver abstraction implemented by both the Oracle and SQL Server data layers. |

<!-- Every public type (class, interface, enum, delegate) must appear in this table. -->
<!-- Every type name must be a markdown link to its documentation page. -->

## Sources
- `SAIF.Framework.Core\V1\BaseItems\clsBusinessBase.vb`
- `SAIF.Framework.Core\V1\BaseItems\clsBusinessCollectionBase.vb`
- `SAIF.Framework.Core\V1\BaseItems\clsUndoableBase.vb`
- `SAIF.Framework.Core\V1\BaseItems\clsSortableCollectionBase.vb`
- `SAIF.Framework.Core\V1\BaseItems\clsBusinessCriteriaBase.vb`
- `SAIF.Framework.Core\V1\BaseItems\clsRetrieveOnlyBusinessCriteria.vb`
- `SAIF.Framework.Core\V1\Api\clsBusinessApiBase.vb`
- `SAIF.Framework.Core\V1\Api\clsBusinessApiCriteriaBase.vb`
- `SAIF.Framework.Core\V1\Api\clsBusinessCollectionApiBase.vb`
- `SAIF.Framework.Core\V1\BusinessRules\clsRulesManager.vb`
- `SAIF.Framework.Core\V2\BusinessRules\RuleManager.vb`
- `SAIF.Framework.Core\V1\Interfaces\iDataPortalInfo.vb`
- `SAIF.Framework.Core\V1\DataAccessLayer\clsDataPortalInfo.vb`
- `SAIF.Framework.Core\V1\DataAccessLayer\SQLServer\SQLDataLayer.vb`
- `SAIF.Framework.Core\V1\Interfaces\IDataLayer.vb`
