mk-prg-net \se \ patterns \dal

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.

Elementare Collections im .NET Framework

.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

  1. Repository- Pattern in C#
  2. 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 Application

Geschäftsobjekte modellieren mittels EF Code First

Eine Einführung ins ADO.NET Entity- Framework gibt es Eine hier