2009-04-22 7 views
5

Ich wurde gebeten, ein System neulich zu überprüfen, das auf ASP.NET MVC + CSLA + DDD (Domain-Laufwerk-Design) basierte. Die erste Version dieses Systems basierte auf ASP.NET MVC + CSLA. Die zweite Version basierte darauf plus DDD hinzugefügt. Der Grund ist, weil ... nun, ich weiß nicht was. Als ich mir die Diagramme der zwei verschiedenen Architekturen anschaute, war es ziemlich offensichtlich, dass die zweite Version sehr viel komplexer war. Die CSLA-Objekte verwendeten grundsätzlich die Domain-Objekte. Wenn Sie so etwas sehen, wissen Sie, dass es bereits riecht, aber es ist schwer zu rechtfertigen, warum jemand es nicht so machen sollte, ohne A) extreme Kenntnisse über alle Themen zu haben oder B) es für eine lange Zeit zu benutzen. Ich habe keine davon für dieses Thema, aber ich weiß, wenn ich das von Grund auf neu gebaut hätte, hätte ich es nicht so gemacht, und ich würde auch nicht viele Entwickler mitmachen.Ist Asp.Net MVC + CSLA + DDD möglich

Also, lieber Leser, was würden Sie in dieser Situation tun? Meine Gedanken sind, dass, wenn Sie CSLA und MVC und DDD verwenden möchten, Sie Stellung beziehen und das eine oder andere (CSLA oder DDD) wählen. Wenn du nicht da bist, gibt es zu viele Köche in der Küche.

Bitte geben Sie einen Einblick, wenn Sie Meinungen dazu haben.

+0

+1 für "Zu viele Köche in der Küche." –

Antwort

-2

Ich bin nicht sicher, CSLA, die aus dem Speicher einen ActiveRecord Ansatz verwendet, ist besonders geeignet für DDD. Besser mit nHibernate.

+5

CSLA kann jedes ORM-Tool verwenden, es ist nicht an ein ORM-Tool gebunden. –

4

Meine Gedanken sind, dass, wenn Sie zu Verwendung CSLA und MVC und DDD wollen, dann Sie einen Stand machen und wählte einen oder anderen (CSLA oder DDD). Wenn du nicht da bist gibt es auch viele Köche in der Küche.

Ich neige dazu, Ihnen dort zuzustimmen. Wenn jemand DDD mit einer bereits überfluteten DDD-freundlichen Architektur + unterstützenden Frameworks ausführen möchte, würde ich S#arp Architecture über CSLA empfehlen.

Das gesagt, einige Leute glauben, dass es möglich ist, einige der Aspekte von DDD mit CSLA zu übernehmen. Offensichtlich würde ein DDD-Purist bei dieser Aussicht wahrscheinlich zusammenzucken, aber Sie müssen kein Purist sein, um etwas von DDD zu gewinnen. Derick Bailey hat einen interessanten Blog zum Thema: http://www.avocadosoftware.com/csblogs/dredge/archive/2007/02/19/687.aspx

+0

'Das DataPortal entfernen, aber die anderen guten Bits behalten' scheint ein häufiges Thema zu sein.In den CSLA-Diskussionsforen gibt es Leute, die NHibernate mit CSLA integriert haben und in diesem Fall haben sie auch entschieden, auf das DataPortal-Modell zu verzichten ... – rohancragg

2

Meiner Meinung nach hat sich CSLA in seinem Fuß mit der neuesten Version erschossen. Die Meinungen sind unterschiedlich, aber es ist so falsch in meinem Buch, wenn ein Objekt wissen muss, ob es ein Kind ist oder nicht.

0

Es scheint, dass einige Leute da draußen finden, dass CSLA und DDD/Alt.Net nicht ganz füreinander gedacht sind.

Ich würde immer noch zustimmen, dass Sie wahrscheinlich ziemlich viel Arbeit zu tun haben, um die gute Arbeit anzupassen, die Rocky getan hat, wenn Sie entscheiden, dass Sie einen puristischeren und weniger pragmatischen Pfad folgen wollen, und wie Keith vorgeschlagen hat Es könnte leicht sein, nur ein Chaos zu schaffen, wenn Sie nicht vorsichtig sind.

Einige weitere Infos:

Using Dependency Injection with CSLA.NET

Using the Repository Pattern with CSLA.NET

Rocky auf why he's committed to building a 'pragmatic' framework

Verwandte Themen