daylight Application Framework

daylight Application Framework

Das daylight Application Framework ermöglicht die Anpassung und Weiterentwicklung von daylight durch Integrationspartner und Kunden.
  • Kundenspezifische Anpassungen/Erweiterungen auf Feld- und Entitätsebene.
  • Eigenständige Applikationsmodule inkl. Businesslogik.
  • Vollständige, vertikale Lösungen.
Der modellbasierte Architekturansatz bietet folgende Vorteile:
  • Schnelle und effiziente Umsetzung von neuer Funktionalität mittels mitgelieferten Werkzeugen. Keine 'Basisprogrammierung' mehr erforderlich.
  • Zugriff auf alle existierenden Applikationsbereiche und Basiskomponenten: Workflow-Engine, DMS, Collaboration, Schnittstellen-Manager, etc.
  • Nahtlose Integration in das daylight User Interface (WinClient & Web).
  • Hersteller-unabhängige Entwicklung, Integration und Auslieferung von Erweiterungen. Es ist keine Neukompilierung des daylight Source-Codes erforderlich.

Metadaten und ihre Verwendung

daylight wurde modellgetrieben entwickelt und basiert auf einem Metadaten-Framework

Was sind Metadaten?

Metadaten sind per Definition Daten über Daten einer Applikation. Sie beschreiben Eigenschaften und Fähigkeiten von und Verbindungen zwischen verschiedenen Entitäten in einer bestimmten Anwendungsdomäne (z.B. Kurs- und Event-Management).

Warum Metadaten verwenden?

Metadaten ermöglichen generische Programmierung. Der Entwickler programmiert gegen Metadaten und nicht gegen spezifische Entitäten eines Datenmodells oder Funktionen einer Businesslogik.
Metadaten erlauben eine konsequente Anwendung des D.R.Y.-Prinzips (Don't Repeat Yourself). Durch das Modellieren von allen relevanten Charakteristiken von Datenstrukturen und Businesslogik können diese generell und einmalig abgehandelt werden und nicht für jede Ausprägung einzeln.

Framework-Eigenschaften

daylight-Modelle werden (zur Zeit) in C# definiert und beim Applikationsstart komplett in den Arbeitsspeicher geladen.

Modelliert werden nicht nur Businessdaten sondern auch Applikationsdaten: Navigation- und Menü-Elemente der Benutzeroberfläche, Notfizierungen und Log-Messages, Schnittstellenbeschreibungen etc.

Das Framework hat die vollständige Kontrolle über den Persistenz-Layer (Datenbank) und bietet folgende Services:
  • Objektrelationales Mapping
  • Abwicklung des Datenzugriffs (lesend und schreibend)
  • Vergleicht das Metamodell mit der Datenbank-Struktur und aktualisiert das Datenbank-Schema, wenn nötig.

Kundenspezifische Erweiterungen werden getrennt vom daylight-Modell entwickelt und gepflegt und werden erst beim Applikationsstart über das Hauptmodell geladen.

Alle Komponenten der grafischen Benutzeroberfläche von daylight sind 'metadaten-aware':

Daten-Komponenten
Sind aufgrund der Metadaten in der Lage, die ihnen übergebenen Daten korrekt darzustellen und handzuhaben.

Applikationslogische Komponenten
Konsumieren Applikations-Metadaten und präsentieren dem Benutzer passende UI-Features und Optionen passend zum aktuellen Applikationskontext.

Businesslogische Komponenten
Wissen aufgrund des Applikationskontextes und den Metadaten, welche Business-Funktionen und Workflow-Aktionen dem Benutzer angezeigt werden können.

Integrierte Reporting Engine
Verwendet das Metadaten-Framework für Design und Ausführung von Reports.

Modell-Elemente

Datenstrukturen: Business- und Applikationsdaten
  • MetaClasses
  • MetaProperties
  • MetaPaths & MetaRelations
Operationen: Business- und Applikationslogik
  • MetaMethods
  • MetaMethodParameters
Aspekte
  • Aspekte sind kleine, entwickler-definierte Informationspakete, welche den Meta-Elementen «angehängt» werden können und gegen die der Entwickler ebenfalls programmieren kann.
  • Beispiele: SortOrder-Aspect, IsStandaloneEntity-Aspect, IsTinyEntity-Aspect