Ich versuche eine neue Anwendung zu erstellen und in Schwierigkeiten zu laufen, um es sauber zu machen.3-Tier-Architektur mit mehreren Präsentationsebene
Die Idee war, es so zu machen:
- WebSite1 (Presentation Layer)
- XAML Seiten
- -Code hinter Seiten
- Was wir PageViewModel (Objekt, das angibt, rufen Seitenmodell)
- WebSite2 (Presentation Layer)
- Gleiche wie website1
WebSiteX (Presentation Layer)
- Gleiche wie Website 1
Geschäft Projekt
- Service (Werden von Code hinter Seiten aufrufe sein, DAL Objekts in dem Ansichtsmodell lesbar Website-Transformation)
- Viewmodel (Repräsentiert reales Objekt kann die Verwendung in mehreren Seiten/Websites sein)
DAL Projekt
- Manager (Call-by-Dienste, Rückkehr DAL-Objekt)
- DAL (Zugang zur Datenbank oder aus anderen Quellen)
Meine Viewmodels werden in einem seperaten Projekt gespeichert und können Wird bei Bedarf in verschiedenen Websites verwendet.
Ich fühle mich schmutzig über die Tatsache, dass die Präsentationen Regeln (wie dies eine Zahl sein sollte oder dies erforderlich ist) in der Business-Schicht (Attribute innerhalb der ViewModels) gespeichert werden. Es ist auch möglich, dass zwei Websites dasselbe Objekt verwenden, jedoch unterschiedliche Präsentationsregeln (in einem Fall nicht in dem anderen).
Der einzige andere Weg, den ich sehe, ist, die Dienste und die ViewModels innerhalb jeder Website zu setzen, aber wenn sie ähnliche Objekte verwenden, wird der Code dupliziert.
Wie würden Sie tun?
Danke fürs Lesen.
Danke für Ihre Antwort. Vielleicht können die ViewModels in ein "globales Projekt" definiert werden und bei Bedarf mit bestimmten Einreichungsregeln in jede WebSite übernommen werden. Es sieht immer noch wie Duplikation aus, denn in vielen Fällen werde ich das gleiche Objekt haben, aber es ist wahrscheinlich sauberer. –