2009-04-04 7 views
0

Kontext: Die Struktur des Codes besteht darin, dass ein WCF-Dienst (Servergröße) mit einem Domänenmodell kommuniziert, das mit der Datenschicht kommuniziert. Ich habe die Notwendigkeit, dass Arbeitsaufgaben (für echte Menschen) erstellt werden müssen, wenn sich bestimmte Werte in einer Entität ändern.Wohin geht diese Funktionalität?

Derzeit habe ich diese Logik in den WCF-Dienst gestellt, aber ich fühle mich irgendwie eklig. Ich fuhr dann fort, die Logik in ein Repository zu verschieben, aber das machte mich auch eklig. Jetzt kann ich es nirgendwohin bringen.

Was ich nicht habe, ist ein Domain Service zu itermediate zwischen dem WCF-Service und dem Domain-Repository! Ist das etwas, was ich erschaffen und diese Logik dort platzieren sollte? Hast du noch andere Ideen?

Antwort

1

Ihr Domänenmodell sollte wissen, dass bestimmte Aktionen ausgeführt werden müssen, wenn sich diese Eigenschaftswerte ändern. Die Details der Aktionen sollten getrennt werden - möglicherweise in Workflows mit Windows Workflow Foundation. Dies ermöglicht eine einfache Anpassung, asynchrone Verarbeitung und sogar menschliche Arbeitsabläufe (eine Person, die etwas genehmigen muss, bevor der Arbeitsablauf abgeschlossen ist).

Natürlich, wenn Sie das Bedürfnis haben, ist es einfach, einen Workflow-Service mit WCF zu erstellen. Es gibt sogar Vorlagen dafür, und genau in diese Richtung zielt die bevorstehende Dublin-Funktion.