Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Daylight as an application framework

Daylight, serving as an application framework, allows solution partners to extend existing functionality with custom modules or even to build vertical solutions on their own.

...

  • to deploy new modules and solutions in a snap. All custom extensions can be integrated without rebuilding and redeploying Daylight by the supplier.

What is Metadata and why use it?

Daylight is developed model driven using a Metadata framework.

What is Metadata?

Metadata is, by definition, data about an application's data. It describes the properties and capabilities of and connections between different types of information in a particular application domain (e.g. course and event management).

The metadata of a model driven application must be independently and centrally defined and under application control. It makes no sense to cede control of it to a single external component (like a Database or an ORM).

Why use Metadata?

Metadata allows generic programming - that means coding against metadata instead of coding explicitly against specific entities of the data model or methods of the business logic.

Metadata helps to apply the D.R.Y. principle (Don't Repeat Yourself) by modeling all relevant characteristics of data structures and business logic so they can be handled once in general and not for every single entity.

Daylight Metadata Characteristics

Daylight metadata is modeled with C# source code at design time and completely loaded into memory during application startup.

...

All of Daylight's UI components are metadata-aware

Data containing components

Know how to render and handle the data passed to them based on its metadata.

Application logic components: Ribbons, Menus, etc.

Consume application metadata, know what UI features to present to the user according to current application context and its metadata.

Business logic components: Function-Browser, Workflow-Engine, etc.

Know which business functions and workflow actions to present to the user according to current application context and its metadata.

Reporting

Integrated reporting engine based on the Metadata framework for report design and execution.

Modeling elements

Data structures (business and application data)
  • MetaClasses
  • MetaProperties
  • MetaPaths & MetaRelations
Operations (business logic)
  • MetaMethods
  • MetaMethodParams
Aspects
  • As pects are small, developer defined, information elements which can be attached to any other metadata element.
  • Examples: SortOrder-Aspect, IsStandaloneEntity-Aspect, IsTinyEntity-Aspect