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.
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.