2012-03-26 5 views
0

Meine Domänenmodellobjekte (generiert von Entitätsframework) verfügen über eine Validierung (mithilfe von Attributen und der IValidatableObject-Schnittstelle) Lesen von Kommentaren, die gegen Validierungsattribute im Domänenmodell zu sein scheinen (Buddy-Klassen)..NET-Domänenmodell-Validierung und Buddy-Klassen

Ich verwende spezialisierte ViewModel-Klassen mit eigenen Validierungsattributen für die clientseitige Validierung in der Benutzeroberfläche (ASP.NET MVC). Ich benötige weiterhin die Validierungsattribute für das Domänenmodell, da meine Business-Schicht anderen Client-UIs ausgesetzt ist Ist das ein guter Ansatz?

+0

Scheint wie Verletzung von DRY, weil Sie Validierung zweimal an zwei verschiedenen Orten erstellen, nur um Anforderungen des Frameworks zu erfüllen. –

+0

Danke, Was wäre dann der beste Ansatz? Beachten Sie, dass ich die Validierung für das Domänenmodell benötige, da andere Clients die Business-Schicht verwenden. – Socardo

Antwort

0

Ja und nein. Es ist ein guter Ansatz, da Sie auf der Serverseite Validierung durchführen. Ihre Domänenlogik sollte nicht davon ausgehen, dass der Client validiert (der Client sollte natürlich validieren). Abgesehen davon würde ich eine Domäne nicht anhand von Attributen validieren, da Validierungsregeln kontextspezifisch sind. Sie hängen von der Operation ab, die Sie durchführen. Ich setze Validierung in die Methoden ein, die die verschiedenen Anwendungsfälle der Domäne darstellen (die Schreibvorgänge), wie "Kunde erstellen", "Kundenrechnung", "Bestellung stornieren" usw. Gehen Sie nicht davon aus, dass alle Ihre Validierungsregeln Invarianten sind .

Ich sehe nicht, wie Sie die Server- und Client-Validierung wiederverwenden können, ohne Ihre Domain-Entitäten außerhalb der Grenzen Ihres Dienstes zu exponieren, was viel schlimmer ist.

Verwandte Themen