Introduction
Business Foundation (BF) is a set of technologies in .NET that support
development of data-oriented software applications. Architects and developers of
data-oriented applications have struggled with the need to achieve two very
different objectives. They must model the entities, relationships, and logic of
the business problems they are solving, and they must also work with the data
engines used to store and retrieve the data.
Data modeling
BF enables developers to work with database data in the form of domain-specific
objects and properties. Because BF is a component of the .NET Framework, BF
applications can run on any computer on which the .NET Framework is installed. A
longstanding and common design pattern for data modeling is the division of the
data model into three parts: a conceptual model, a logical model, and a physical
model.
The conceptual model defines the entities and relationships in the system that is
being modeled. The logical model for a relational database normalizes the
entities and relationships into tables with foreign key constraints. The
physical model addresses the capabilities of a particular data engine by
specifying storage details such as partitioning and indexing.
The physical model is refined by database administrators to improve performance,
but programmers writing application code primarily confine themselves to working
with the logical model by writing SQL queries and calling stored procedures.
Conceptual models are generally used as a tool for capturing and communicating
the requirements of an application, frequently as inert diagrams that are viewed
and discussed in the early stages of a project and then abandoned. Many
development teams skip creating a conceptual model and begin by specifying
tables, columns, and keys in a relational database.
BF gives life to conceptual models by enabling developers to query entities in
the conceptual model while relying on the Entity Framework to translate those
operations to data source-specific commands. Typically, developers work with
static physical models and the application should be rebuilt if the relation
structure is modified. But business applications should be more flexible; they
should allow extension of new and ready-to-use entities with custom properties.
BF supports dynamic conceptual models by allowing developers to modify the
physical model through the Meta Model Management API.

The Relational model is fixed and standardized. Modern business
applications require complex data-types, complex objects and should be
extendable. The Business Meta Model implements a custom meta model with user
friendly types, meta classes, dynamic objects, cards, relations (1-N, N-1, N-N),
event pipe lines, modules and plugin systems.
Supported Meta Models
SQL Meta Model
The SQL Meta Model is a native MS SQL relational meta model. It
defines tables, views, stored procedures, relationships etc.
With this, Business Foundation can:
- Translate SQL Meta Model tables to .NET classes.
- Create, update and delete database records using object-oriented methods.
- List database records to an array of objects using object-oriented filters.
- Read and modify the SQL Meta Model.
Business Meta Model
The Business Meta Model is a custom meta model. It defines meta
types, meta classes, meta fields, meta class cards, relations relationships etc.
With this, Business Foundation can:
- Translate meta classes to .NET classes.
- Create, update and delete entity objects using object-oriented methods.
- List entity objects to an array using object-oriented filters.
- Read and modify the Business Meta Model.
- Be customized with types, modules and plug-ins.