Data Access Layer
Die Implementierung von Geschäftsobjekten des Business- Layers als persitierbare Objekte ist Aufgabe des Data Access Layers. Heute kann diese mittels objektrelationaler Mapper wie NHibernate oder Entity Framework sehr effizient erfolgen.
Collections
Mengentheoretisch sind Objektmengen abzählbare Mengen. Teilmengen der abzählbaren Mengen sind endliche Mengen, endlich, indizierte Mengen, und Schlüssel/Wert Zuordnungen. In modernen Frameworks wie .NET werden diese elementaren Mengentypen durch Collections implementiert.
.NET Collections
Im Namespace System.Collections.Generic vom .NET Framwork werden die grundlegenden Collection- Klassen definiert.
- Auswahl
- hier und hier
Repository
Die Verwaltung von Mengen mit Geschäftsobjekten können im Business- Layer durch Repositories erfolgen. Als Repository bezeichnet man dabei eine Sammlung von Mustern für Schnittstellen, durch welche der Zugriff auf einen Typ von Geschäftsobjekte über Fachschlüssel ermöglicht wird. Die Schnittstellen können auch fachspezifische Filter für Mengen von Geschäftsobjekten besitzen.
Repositories verbergen die Implementierungsdetails des Data Access- Layers für Mengen. Steuert die Anwendung die Geschäftslogik ausschließlich über die Schnittstellen und Repositories des Business- Layers, dann ist sind die Implementierungen des Data- Access- Layers in der Anwendung austauschbar !
Im Folgenden einige Vorschläge für die Implementierung von Repositories
- Repository- Pattern in C#
- Unit of Work- Pattern Implementierung von Transaktionen, die mehrer Repositories einschließen (z.B. neuer Zeichnung in CanvasScriptServer)
Abstraktion der Filter- und Sortieroperationen in Repositories
Mittels des Builder- Desingpatterns können Filter- und Sortieroperationen der Repositories im Business- Layer erfolgreich von den Implemnetierungen abstrahiert werden.
Unit of Work
Implementing the Repository and Unit of Work Patterns in an ASP.NET MVC ApplicationGeschäftsobjekte modellieren mittels EF Code First
Eine Einführung ins ADO.NET Entity- Framework gibt es Eine hier