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.
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) –
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. –
Die 'saubere' Architektur ist gleichbedeutend mit Sechsecken/Ports und Adaptern. Ihre XPO-Implementierung ist ein Adapter, der an den Datenzugriffsport angeschlossen werden kann. –