Реализация бизнес-объектов C # (CSLA)

2

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

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

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

Спасибо,

MaS

Теги:
business-objects
csla

5 ответов

4
Лучший ответ

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

Спасибо -Blake Niemyjski (автор CodeSmith CSLA Templates)

  • 0
    Спасибо и отличная работа над шаблонами. Мы стремимся продвигать их вперед в нашей среде SQL 2008 / Oracle 10g / Visual Studio 2008 / TFS 2008, и поэтому, если у вас есть какая-либо дополнительная информация о том, как наилучшим образом интегрировать CSLA в эту установку, я был бы очень признателен.
  • 0
    Спасибо! В одном из этих выпусков, возможно текущем, мы планируем добавить поддержку Oracle и MySQL. Реализовать поддержку Oracle было бы очень просто (максимум небольшая часть дня). Если вы заинтересованы в помощи, дайте мне знать.
8

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

  • Определить схему расслоения
  • Проверка работоспособности классов
  • Как среда хорошо работает с другими фреймами
  • Как он подходит для других инструментов отображения OR.
  • Кривая обучения

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

  • 0
    Это хороший совет. Мы уже находимся в процессе разработки прототипа. Мы также используем CodeSmith для генерации шаблонов.
  • 0
    +1 за прототип
Показать ещё 4 комментария
2

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

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

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

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

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

2

Мне нравится CSLA.

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

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

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

  • 0
    Спасибо, Рубенс, ты вообще использовал CSLA с TFS?
  • 0
    это время было VSS ...
1

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

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню