Verwendung von Common-Domain-Logikstrukturen bei .NET-Anwendungen

Die zweite Struktur zur Darstellung der Domänenlogik ist das Tabellenmodul. Wie der Name schon sagt, wird bei Anwendung dieser Struktur eine Geschäftskomponente in einer Tabelle der Datenbank abgebildet. Die Komponente enthält dann alle zur Bearbeitung der Daten erforderlichen Dömanenlogik-Methoden. Hierbei gilt es zwei Hauptpunkte zu bedenken.

Erstens kann das Modul, obwohl sein Name auf eine Tabelle verweist, auch zur Zusammenfassung häufig verwendeter Datensätze verwendet werden, indem mehrere Tabellen in einer Ansicht oder Abfrage zusammengeführt werden. Dies erleichtert dem Element, das die Geschäftskomponenten abruft, die Handhabung komplizierter Daten erheblich.

Zweitens ist es eine Kerneigenschaft jeder als Tabellenmodul aufgebauten Komponente, dass sie – anders als im Domänenmodell (das nachfolgend besprochen wird) – keinen Identitätsvermerk besitzt. Mit anderen Worten: Jedes Tabellenmodul-Objekt stellt eher einen Zeilensatz als eine einzelne Zeile dar, weshalb die Methoden des Tabellenmoduls an Bezeichner weitergegeben werden müssen, um in einer einzelnen Zeile operieren zu können.

Wird eine Methode aus einem Tabellenmodul aufgerufen, führt sie ihre Logik auf einen an sie weitergegebenen Satz von Zeilen aus. Bei .NET Framework-Anwendungen wird dadurch auf ein DataSet abgebildet, so dass ein natürlicher Weg zur Darstellung der Domänenlogik entsteht. Die Verwendung von Typed DataSets mit einem Tabellenmodul ist besonders effektiv, da dies bei der Entwicklung eine starke Typisierung ermöglicht, so dass weniger Runtime-Fehler vorkommen und eine bessere Kontrolle über die für die Anwendung verwendeten Daten besteht.

Ein üblicher Ansatz zur Handhabung dieses Vorgangs ist das Erstellen eines Layer Supertype (einer abstrakten Basisklasse für die Domänenebene) für alle Tabellenmodule, die ein DataSet in ihren Konstruktoren akzeptieren. So können die Geschäftskomponenten auch ohne aktive Verbindung zu einer Datenbank getestet werden.

Um zum Beispiel einen Tabellenmodul-Ansatz bei einer Online-Shop-Anwendung zu implementieren, könnte man eine abstrakte BusinessComponentBase-Klasse wie die in Listing B gezeigte erstellen.

Diese Klasse ist für die Annahme des DataSet verantwortlich, mit der die Klasse arbeiten soll, indem sie über die Eigenschaft Default (VB) oder Indexer (C#) einzelne Zeilen im DataSet anzeigt und indem sie den gesamten Satz von Zeilen in schreibgeschützter Form darstellt. Diese Klasse kann dann von Domänenlogik-Klassen geerbt werden, wie in Abbildung B dargestellt.



Abbildung B: Tabellenmodul

Diese Struktur nutzt das ADO.NET DataSet und stellt einen guten Mittelweg zwischen den anderen beiden Strukturen dar. Diese Struktur betrachtet die Anwendung weitgehend als Satz aus Daten in Tabellenform.

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

Internet-Tempo in Deutschland: Viel Luft nach oben

Höchste Zeit für eine schnelle Kupfer-Glas-Migration. Bis 2030 soll in Deutschland Glasfaser flächendeckend ausgerollt sein.

17 Stunden ago

Erste Entwickler-Preview von Android 16 verfügbar

Schon im April 2025 soll Android 16 den Status Plattformstabilität erreichen. Entwicklern gibt Google danach…

17 Stunden ago

Kaspersky warnt vor Cyberangriff auf PyPI-Lieferkette

Die Hintermänner setzen KI-Chatbot-Tools als Köder ein. Opfer fangen sich den Infostealer JarkaStealer ein.

1 Tag ago

Digitale Produkte „cyberfit“ machen

Vernetzte Produkte müssen laut Cyber Resilience Act über Möglichkeiten zur Datenverschlüsselung und Zugangsverwaltung verfügen.

1 Tag ago

Google schließt schwerwiegende Sicherheitslücken in Chrome 131

Das jüngste Update für Windows, macOS und Linux stopft drei Löcher. Eine Anfälligkeit setzt Nutzer…

2 Tagen ago

Apple schließt Zero-Day-Lücken in iOS, iPadOS und macOS

Zwei von Google-Mitarbeitern entdeckte Schwachstellen werden bereits aktiv gegen Mac-Systeme mit Intel-Prozessoren eingesetzt. Sie erlauben…

2 Tagen ago