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