Реализация бизнес-объектов C # (CSLA) - PullRequest
2 голосов
/ 19 января 2010

Мы собираемся реализовать CSLA от Rocky Lhotka в качестве среды разработки приложений для наших решений Visual Studio 2008. Я хотел бы протестировать воду на SO и особенно заинтересован в мнении разработчиков о подходе по сравнению с другими ORM, такими как Entity Framework или nHibernate.

Кроме того, какова кривая обучения и насколько легко (как я слышал) поддерживать приложения, написанные по этой методологии?

Также было бы очень интересно услышать от любого государственного сектора (особенно правительственных учреждений), которые внедрили это.

Спасибо

MaS

Ответы [ 5 ]

8 голосов
/ 19 января 2010

CSLA не является платформой ORM. Это основа для реализации бизнес-объектов. Тем не менее, есть доступные генераторы кода, которые могут генерировать код доступа к данным для вас. Структура CSLA основана на шаблоне Active Record. Этот шаблон не будет масштабироваться для крупномасштабного проекта. На мой взгляд, вы должны реализовать прототип. Целью прототипа должно быть:

  1. Определение схемы расслоения
  2. единичная тестируемость классов
  3. Как фреймворк хорошо сочетается с другими фреймворками
  4. Как это сочетается с другими инструментами сопоставления ИЛИ
  5. Кривая обучения

Если ваша оценка, по-видимому, положительна по отношению к вышеуказанным пунктам, то сделайте это Короче говоря, должно быть надлежащее обоснование для использования такой основы. Вы не должны следовать чьему-либо совету, а попробовать его самостоятельно.

4 голосов
/ 01 февраля 2010

Кривая обучения CSLA не так уж и плоха, но будьте готовы потратить некоторое время на чтение книги. Мы позаботились о многих аспектах обучения для вас, сгенерировав для вас DAL (параметризованный SQL или поддержка хранимых процедур), поэтому он добавляет ощущение ORM в CSLA только потому, что он управляет DAL для вас, если вы выберете. Но вы можете полностью использовать его как набор шаблонов BO. Я считаю, что активное поколение значительно упрощает обновление до более новых версий CSLA, а также добавляет функциональность без острой необходимости в промежуточном классе.

Спасибо Блейк Немийски (Автор шаблонов CodeSmith CSLA )

2 голосов
/ 26 февраля 2010

CSLA - это инфраструктура бизнес-объектов. Существует много стратегий для доступа к данным - между ORM и доступом к данным много общего. Я имел большой успех, используя Linq-to-SQL на уровне доступа к данным, чтобы упростить разработку. Я думаю, что это подход, который будет работать для вас - особенно учитывая (основываясь на ваших комментариях) вашу потребность поддерживать как SQL Server, так и Oracle.

Использование отдельного DAL хорошо задокументировано в книге Рокки и на примерах www.lhotka.net

Что касается TFS - это инструмент ALM для управления исходным кодом, управления проектами и автоматизации сборки. Вы хотели бы поставить исходный код CSLA, как и любой другой код. Самый простой подход - включить CSLA в ваше решение.

Другой подход заключается в том, чтобы скомпилировать его отдельно и использовать ссылку на файл в ваших проектах на CSLA.DLL. В TFS Automated build есть группа свойств, в которую вы можете поместить путь к этой DLL на вашем сервере сборки.

Наконец, Рокки продает обучающие видео CSLA на своем сайте по адресу http://download.lhotka.net/default.aspx?t=Core38

2 голосов
/ 19 января 2010

Я люблю CSLA.

Я использовал его для реализации некоторых приложений ASP.NET 2.0, некоторые очень большие. Это легко понять (после того, как вы поймете объекты Root, Child и Switchable), но вы будете сильно полагаться на генерацию кода (например, CodeSmith).

Главный вопрос: вам нужно CSLA ? Какая функция вам нравится, или вам просто нужно использовать ORM? Сегодня я пишу новые приложения с помощью ADO.NET Entity Framework, и это более продуктивно , чем CSLA.

Имейте в виду, что CSLA - это не методология, а всего лишь инструмент: вам необходимо это понять и настроить в случае необходимости.

1 голос
/ 19 января 2010

Вы можете проверить мысли Рокки о SOA в следующей трансляции:

http://www.slickthought.net/post/Minneapolis-Developer-Roundtable-Podcast---Talking-REST.aspx

Главное, что вам нужно понять, это то, что CSLA - это бизнес-структура. Несмотря на то, что ORM могут предоставить вам базовые функции проверки (и другие), они, на мой взгляд, не компенсируют отсутствие надежного бизнес-уровня. Конечно, вы можете использовать ORM с CSLA (в примерах CSLA приведен пример использования EF, а NHibernate используется в качестве примера в проекте CSLA Contrib), но технологии просто бесплатны.

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

...