---
title: SAIF.Framework.CodeGen dependencies
summary: Internal and external dependencies for the SAIF.Framework.CodeGen developer code-generation tool.
status: draft
owner: <owner>
last_reviewed: 2026-07-23
library: SAIF.Framework.CodeGen
reference_type: package
---

# SAIF.Framework.CodeGen dependencies

`SAIF.Framework.CodeGen` has no internal `<ProjectReference>` build dependencies on other libraries documented in this repository. It depends on two repo-adjacent legacy binaries (`SAIF.Business` and `saif.framework`) for its Oracle data-access surface, consumed as compiled assembly references rather than project links, and otherwise relies only on standard .NET Framework 3.5 assemblies.

## Internal dependencies

No `<ProjectReference>` MSBuild dependencies exist for this library. `SAIF.Business` and `saif.framework` are referenced as compiled binary assemblies (`<Reference>` elements), not project links, so they are documented under External dependencies below rather than as internal project references.

| Dependency | Type | Usage |
| --- | --- | --- |
| None | — | No internal `<ProjectReference>` dependencies found. |

## External dependencies

| Dependency | Version | Usage |
| --- | --- | --- |
| SAIF.Business | Not specified (binary/assembly reference) | Provides `IDataPortalInfo` and `clsMSOracleDataLayer`, used in `Connect` to establish the Oracle data-portal connection (SAIF.Framework.CodeGen\CodeTableMap.vb, `Imports SAIF.Business`). Classified as a local/framework-inherited, project-adjacent legacy library — consumed as a compiled binary reference, not part of this repository's other documented libraries. |
| saif.framework | Not specified (binary/assembly reference) | Provides `SqlHelper.ResultSetQuery` and `clsResultSet`, used in `GetResult` to execute the code-table SELECT query (SAIF.Framework.CodeGen\CodeTableMap.vb, `Imports SAIF.Framework` and `Imports SAIF.Framework.Extensions`). Classified as a local/framework-inherited, project-adjacent legacy library — consumed as a compiled binary reference, not part of this repository's other documented libraries. |
| System, System.Xml, System.Core, System.Xml.Linq | .NET Framework 3.5 (BCL) | Standard .NET Framework assembly references declared in the `.vbproj` (SAIF.Framework.CodeGen\SAIF.Framework.CodeGen.vbproj). |
| Microsoft.VisualBasic, System.Collections, System.Collections.Generic, System.Diagnostics, System.Linq | .NET Framework 3.5 (BCL) | Implicit VB namespace imports declared in the `.vbproj` `<Import>` elements (SAIF.Framework.CodeGen\SAIF.Framework.CodeGen.vbproj). |
| System.Text.RegularExpressions (Regex) | .NET Framework 3.5 (BCL) | Used directly in `GetEnumValue` to strip non-alphabetic characters from `code_descr` when deriving an enum-member identifier (SAIF.Framework.CodeGen\CodeTableMap.vb). |

No NuGet `<PackageReference>` or `packages.config` is present in this project; no external package dependencies beyond the above were detected.

## Dependency risks and notes
- **Bypasses the standard BOF layering**: `CodeTableMap` directly instantiates `clsMSOracleDataLayer` and consumes `IDataPortalInfo` rather than being invoked through the standard `clsBusinessBase`/`IBusinessCriteria` business-object pattern. This is atypical relative to the standard BOF layered architecture and means changes to the underlying data-layer classes in `SAIF.Business`/`saif.framework` can directly break this tool without passing through the usual business-object abstraction.
- **Binary-reference coupling, not build-time project coupling**: `SAIF.Business` and `saif.framework` are referenced as compiled assemblies (`<Reference>`), not `<ProjectReference>` MSBuild links. Whether these binary references correspond exactly to this repository's `SAIF.Framework.Core`/`SAIF.Framework.Security`/`SAIF.Framework.BaseN` project outputs (vs. an externally restored copy) could not be confirmed from the `.vbproj` alone*.
- **No parameterized SQL / no bind variables**: the single SQL operation (`select code, code_descr from {table}`) interpolates the caller-supplied table name directly into SQL text via `String.Format`, rather than using bound parameters. Because no callers of `CodeTableMap` exist anywhere in this repository, the actual risk profile of this string-substitution pattern (e.g., whether table names are ever influenced by untrusted input) cannot be assessed from this codebase alone**.
- **Packaging note**: despite its cross-layer dependency on `SAIF.Business` and `saif.framework`, this library's source is itself bundled into the `SAIF.BOF.Framework` NuGet package via the `SAIF.Framework.Core` nuspec's broad `.vb`/`.cs` glob, alongside all sibling libraries in the repository (SAIF.Framework.Core\SAIF.BOF.Framework.Core.nuspec).
- **No consumers identified**: no project in this repository references `SAIF.Framework.CodeGen.vbproj` via `<ProjectReference>`; its eligibility for documentation is based solely on nuspec glob capture, and its invocation context (console tool, IDE custom-tool, or manual use) is unknown**.

## 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)
- [Database tables](database-tables.md)
- [SQL catalog](sql/index.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.

## Sources
- SAIF.Framework.CodeGen\CodeTableMap.vb
- SAIF.Framework.CodeGen\SAIF.Framework.CodeGen.vbproj
- SAIF.Framework.Core\SAIF.BOF.Framework.Core.nuspec
