2016-07-21 11 views
2

Ich versuche meine App in 3 Schichten zu teilen (Datenschicht, Domänenebene, Präsentationsschicht), Die Datenschicht verwendet ORM (XPO DevExpress). Die Domain-Ebene ist 100% agnostisch bezüglich der Datenbank-Technologie oder der ORM-Technologie. Die Datenschicht und die Domänenschicht sind durch die IRepository-Schnittstelle getrennt.Saubere Architektur und die Verwendung eines ORM

In der Präsentationsschicht habe ich ein Formular mit einem Raster Control und 3 Schaltflächen (Hinzufügen, Ändern, Entfernen).

Meine erste Frage ist: Wie wird die Grid-Control refresh machen, wenn ich die Daten einen Datensatz aus der Datenbank hinzufügen oder entfernen Sie alle, ohne nachzuladen (Änderungsmitteilung)

Die zweite Frage ist: wie die Energie nutzen eines ORM und mache gleichzeitig meine Domänenschicht davon unabhängig.

Antwort

0

Wie die Gittersteuerung refresh machen, wenn ich alle Daten ohne Neuladen? (Änderungsmitteilung) einen Datensatz aus der Datenbank hinzufügen oder entfernen?

Betrachten Sie Domänenereignisse und einen Ereignisaggregator.

public class ThingCreatedEvent : DomainEvent 
{ 
    public int NewThingId; 
} 

... wie die Leistung eines ORM zu bedienen und in der gleichen Zeit meine Domain Schicht Agnostiker davon?

Ihre Datenschicht ist dies zu tun:

public class XpoRepository<T> : IRepository<T> 
{ 
} 
+0

Wo setzen XpoRepository ? Wenn Sie es in den Domänen-Layer einfügen, weiß der Domänen-Layer, dass Sie XPO ORM verwenden. Ich möchte, dass meine Domain agnostisch ist. (Saubere Architektur) –

+0

Sicher. Die Schnittstellen können sich in der Domänenschicht oder einer separaten Schicht von Datenschnittstellen befinden, aber die Implementierungen befinden sich in implementierungsspezifischen Baugruppen, die auf die Domänenschicht und ihre Schnittstellen verweisen. So etwas wie YourApp.Data.Xpo oder YourApp.Data.EntityFramework. –

+0

Die 'saubere' Architektur ist gleichbedeutend mit Sechsecken/Ports und Adaptern. Ihre XPO-Implementierung ist ein Adapter, der an den Datenzugriffsport angeschlossen werden kann. –

Verwandte Themen