Frage

Ich habe eine VS-Lösung, mit den folgenden Projekten.

-GUI
-DataAccess
-BusinessLogic
-BusinessObjects

aber wo sollte das Hauptmodellklasse wohnen? Dies ist normalerweise ein Cache einer Reihe von Objekten, die die Ergebnisse von der Datenzugriffsschicht und dem GUI mit virtuellen Gittern sind Daten im Modell anzuzeigen. Die Frage wäre das gleiche mit MVC oder MVP sein

Gedanken?

War es hilfreich?

Lösung

Dies ist eine subjektive Frage, aber oft zu erzwingen, dass Ihre Modell-Objekte haben keine direkten Abhängigkeiten Infrastruktur, die Menschen in einem separaten Projekt setzen sie oft. Sie müssen auch überlegen, was andere Projekte, die diese Modellobjekte verwenden können.

Eine weitere Option für die Funktionalität in einzelne einsetzbare Einheiten Aufspaltung (Baugruppen) ist so, dass die Teams mehr unabhängig voneinander funktionieren können. Separate Projekte auf Basis der Häufigkeit der Einsätze und Team Autonomie.

Schließlich habe ich einige Projekte zu sehen, wo die Modellobjekte remote aufgerufen wurden (wie mit .NET Remoting) und serviert auf einem Applikationsserver getrennt von dem Web-Server. Ich weiß nicht, diesen Ansatz wirklich empfehlen, aber es ist eine Option.

Wenn Sie nicht vorhaben, sie auf die Wiederverwendung, und Sie sind der Tatsache bewusst, dass sie in der gleichen Assembly platzieren können Sie Quer Abhängigkeiten mit irgendetwas anderes in diesem Projekt definiert zu schaffen, aber Sie sind intelligent genug, um es nicht zu tun, können Sie sie alle im selben Projekt platzieren können.

Das heißt, 99% der Zeit, ich habe diese Projekte:

  • UI
  • Kern
  • Persistence
  • Tests

Aber Sie haben noch Ihr Projekt nehmen muss berücksichtigt werden.

Andere Tipps

Ich neige haben

  • Justice.Project.Core - das POCO-Domäne-Modell - das heißt, Business-Objekte)
  • Justice.Project.Data - NHibernate Zuordnungen usw., wo die Persistenz-Schema befindet
  • Justice.Project.Services - Repositorys sowie Business-Logik, die in die Business-Objekte nicht leicht passen werden kann
  • Justice.Project.(Web|UI)

Das Modell ist - oder sollte -. Die Business-Objekte

Meine Lösungen 3 (Nicht-Test) Projekte

  1. UI - offensichtlich
  2. Kern - alle Domänenobjekte und Business-Logik
  3. Data Access - Repository Muster zum Bestücken / Speichern von Modellobjekte
  

Ich bin damit einverstanden, dass die Modell-Objekte gehen in   POCO. so lässt ich eine Bestellung sagen haben   Objekt. Meine Frage ist, wo ich habe   die Klasse, die eine Sammlung speichert von   Aufträge ??

Das hängt von Ihrem Unternehmen. Wahrscheinlich finden Sie eine Sammlung von Aufträgen in ein paar verschiedenen Orten haben ...

Auf Ihrem Kundenobjekt, sollte jeder Kunde eine Sammlung von Aufträgen haben, so würden Sie eine dort haben.

Wenn Sie Abteilungen haben, sollte jede Abteilung eine Sammlung von Aufträgen haben sie geschaffen.

Wenn Sie Lager haben, jedes Lager kann eine Sammlung von Aufträgen haben sie verantwortlich sind für die Erfüllung.

Einige Objekte haben keine Eltern, und das ist in Ordnung. In meinem System haben wir Kunden. Die realen Eigentümer der Kunden sind wir (das Geschäft), aber es gibt kein „Us“ Objekt im System. Wenn Sie schauen, um eine Liste Ihrer Kunden (in unserem Fall) erhalten abfragen wir das Repository für sie.

IRespoistory<Client> repository = new Repository<Client>();
IList<Client> clients = repository.GetAllClients();

Das gleiche für Ihre Bestellungen können.

Ich würde empfehlen, dieses Buch DDD Check-out: http: //www.amazon .com / gp / product / 0321268202 / ref = s9k2a_c1_at1-rfc_p-3237_p? pf_rd_m = ATVPDKIKX0DER & pf_rd_s = center-1 & pf_rd_r = 1BWAPTN787CTZXJDV5BA & pf_rd_t = 101 & pf_rd_p = 463383351 & pf_rd_i = 507.846

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top