Существуют ли доступные альтернативы CSLA?

Моя компания заинтересована в переносе большого бизнес-приложения на .NET. Мы планируем разработать настольную версию и версию Silverlight. Я в основном исследовал структуру CSLA (получив скалистую книгу, на полпути уже) и нашел, что она немного переработана, сторона слоя данных тоже не выглядела настолько полированной.

Есть ли какие-либо другие рамки, которые утверждают, что делают то, что делает CSLA? Я не говорю об инструментах ORM (например, L2S, EF, NHibernate.) Меня интересует инфраструктура, которая поддерживает бизнес-правила, упрощает архитектуру n-уровня, объекты управляются доменом, а не управляются базой данных, безопасность на бизнес-объектах и ​​т.д....

Я знаю, что могу найти небольшие фреймворки, которые будут выполнять некоторые требуемые работы (блок Enterprise Application Block приходит на ум), но я ищу тот, у которого есть все, что включено.

Ответы

Ответ 1

Мне было бы интересно узнать больше о том, почему вы думаете, что CSLA переработано. Я обнаружил, что он очень функциональный, но большинство функций просто реализуют стандартные интерфейсы .NET Framework, и поэтому вся сантехника поставляется бесплатно, и вы определенно должны ее использовать.

Ваши требования, похоже, отлично подходят для CSLA. Другие структуры (такие как ORM) содержат правила проверки/ведения бизнеса, но основная проблема заключается в том, что вы (в большинстве случаев) придерживаетесь своей схемы данных. Это приводит к объектам, которые не подходят для разработки пользовательского интерфейса и заставляют вас знать тонкости вашей базы данных.

Ответ 3

Если бы я был вами, я бы либо выбрал Spring.NET, либо просто начал создавать свою собственную фреймворк вокруг ASP.NET MVC и Fluent NHibernate. Затем медленно добавляйте свои собственные строительные блоки по мере необходимости. Блоки корпоративной библиотеки хороши, но тяжелы по мне и имеют много вещей, которые вам действительно не нужны.