Возможно ли использование Asp.Net MVC + CSLA + DDD

На днях меня попросили проверить систему, основанную на ASP.NET MVC + CSLA + DDD (проектирование дисков домена). Первая версия этой системы была основана на ASP.NET MVC + CSLA. Второй релиз был основан на том, что плюс добавил DDD. Причина в том, что..... ну, я не знаю что. Когда я посмотрел на диаграммы двух разных архитектур, стало очевидно, что вторая версия была чрезвычайно сложной. Объекты CSLA в основном использовали объекты Domain. Когда вы видите что-то подобное, вы знаете, что оно уже пахнет, но трудно объяснить, почему кто-то не должен делать это таким образом без A) экстремального знания всех тем или B) использования этого в течение длительного времени. У меня нет ни одного из них для этой темы, но я знаю, что если бы я построил это с нуля, я бы не сделал это таким образом, равно как и многие разработчики, с которыми я связан.

Итак, дорогой читатель, что бы вы сделали в этой ситуации? Я думаю, что если вы хотите использовать CSLA, MVC и DDD, вы делаете ставку и выбираете ту или иную (CSLA или DDD). Если нет, на кухне слишком много поваров.

Пожалуйста, расскажите, если у вас есть мнения по этому вопросу.

4 ответа

Я думаю, что если вы хотите использовать CSLA, MVC и DDD, вы делаете ставку и выбираете ту или иную (CSLA или DDD). Если нет, на кухне слишком много поваров.

Я склонен согласиться с вами там. Если кто-то захочет сделать DDD с уже очищенной архитектурой, поддерживающей DDD + поддерживающими фреймворками, я бы порекомендовал S#arp Architecture поверх CSLA.

При этом некоторые люди чувствуют, что с помощью CSLA можно взять на себя некоторые аспекты DDD. Очевидно, что пурист DDD, вероятно, съежится от этой перспективы, но вам не нужно быть пуристом, чтобы получить что-то от DDD. У Дерика Бэйли есть интересный блог на эту тему: http://www.avocadosoftware.com/csblogs/dredge/archive/2007/02/19/687.aspx

На мой взгляд, CSLA застрелилась в ногу с последней версией. Мнения расходятся, но в моей книге так неправильно, когда объект должен знать, ребенок это или нет.

Кажется, что некоторые люди находят, что CSLA и DDD / Alt.Net не являются полностью перекрестными целями.

Я по-прежнему согласен с тем, что вам, вероятно, придется потрудиться над тем, чтобы адаптировать хорошую работу, которую проделал Рокки, если вы решите, что хотите идти по более пуристскому и менее прагматичному пути, и, как предположил Кит, это может быть легко просто создать беспорядок, если вы не будете осторожны.

Некоторая дополнительная информация:

Использование внедрения зависимостей в CSLA.NET

Использование шаблона репозитория с CSLA.NET

Рокки о том, почему он стремится создать "прагматическую" структуру

Я не уверен, что CSLA, который из памяти использует подход ActiveRecord, особенно подходит для DDD. Лучше с nHibernate.

Другие вопросы по тегам