Aspectize Entity Designer Overview

Aspectize Entity Designer is a Visual Studio DSL (Domain Specific Language) that helps you design your applications conceptual data model.

Entity Designer and EntityManager enable you to focus on your business needs abstracting away technical details related to your physical data storage or its query language. All programming is done directly againt the conceptual model, no SQL is required.

With Aspectize Entity Designer you can map multiple conceptual models to a single physical storage.

Entity Designer can be used in several ways:

With an existing Database: the conceptual model can be automatically inferred from an existing Database. This enables developers to start accessing existing data immediately. You can Create, Read, Update and Delete data on multiple tables just with a few lines of code. Moreover, you can manually refine your model to match more closely to your business needs or to take advantage of more advanced features like complex members, in memory or database enumerations, temporal data and relations...

With a new Database: you start to design your conceptual model directly using Entity Designer and start testing your design progressively by storing your data simply in a file without worrying about physical data storage.

When you feel comfortable with your design you create your databases physical schema or your Azure persistence schema through Entity Designer.

With a File: if the nature (volume, concurrency) of your data permit you can persist your data simply in file or Azure blob.

Aspectize Conceptual Data Model

A conceptual model is organized as of one or many hierarchical domains. To each logical domain or sub-domain corresponds a physical .net namespace.

Each domain can contain one or more schemas. Each schema represents a part of the model and is contained in one domain. La raison d'être of a schema is granularity, so you can represent and visualize big models, piece by piece through multiple schemas.

Each schema contains entities, relations, entity references, composite types, in memory enumerations that map to .net enumerations and database enumerations with values defined in a persistent store.

Each entity has an identifier and is composed of one or more properties.

Each property can:

  • Be persistent or not.
  • Have default value.
  • Have a simple, in memory enumeration, database enumeration or composite value type.
  • Have a single value, multiple values or time dependant values.
  • Have a computed value through a DataSet Expression or a custom property.

Relations are binary and thus relate two entities. Each entity in a relation has a role, cardinality and a container attribute.  

Roles are used to map more closely with business terminology and/or to distinguish related entities if they are of the same type, as in reflexive relations.

Cardinality is used to specify the one to one, the one to many or the many to many character of a relation.

Relation ends, set to be container, represent a strong type of relationship.

The Container attribute affects entity behavior in two ways. First while deleting a container entity all related entities are automatically deleted. Second while loading graphs of data all contained entities are automatically loaded if the container entity is loaded.

Entities, relations and properties have each a set of attributes that specify physical mapping details with the persistent store.

Where To go from here? 

You can continue getting acquainted with Aspectize DAL Technology features, tools and terminology by reading Entity Designer Overview,  Entity Manager Overview and Terminology.

Or you can jump start your Aspectize experience by following our Quick Start Tutorial.