HomeDev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunitySubmit a ticketLog In
GitHubNuGetDev CommunitySubmit a ticket

Business Foundation

Describes Business Foundation (BF), which is a set of .NET-based technologies used by the Customer Management subsystem in Optimizely Commerce (PaaS).

Architects and developers of data-oriented applications must model the entities, relationships, and logic of their business problems and work with the data engines used to store and retrieve data.

Data modeling

Business Foundation (BF) lets developers 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 .NET Framework-installed computer. A longstanding and common design pattern for data modeling is the division of the data model into three parts:

  • Conceptual model – The conceptual model defines the entities and relationships in the system that is being modeled.
  • Logical model – 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.
  • Physical model – Database administrators refine the physical model to improve performance. 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 letting developers 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 should rebuild the application if the relational structure is modified. But business applications should be more flexible to allow extension of new and ready-to-use entities with custom properties. BF supports dynamic conceptual models by letting developers modify the physical model through the Meta Model Management API.

The Relational model is fixed and standardized. Modern business applications require complex data-types, and 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 pipelines, 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, and so on. 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 and so on. 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.