Различия между NHibernate, Castle, Linq - На кого они нацелены? - PullRequest
9 голосов
/ 17 сентября 2008

В этом ответе говорится , что Linq ориентирован на несколько иную группу разработчиков, чем NHibernate, Castle и т. Д.

Будучи довольно новым для C #, не обращайте внимания на все окружающие его БД:

  • Существуют ли другие основные, из-за отсутствия лучшего термина, обертки SQL, чем NHibernate, Castle, Linq?
  • Чем они отличаются?
  • На каких разработчиков или разработчиков они нацелены?

-Adam

Ответы [ 4 ]

17 голосов
/ 17 сентября 2008

Когда вы говорите Касл, я предполагаю, что вы имеете в виду Касл Актив Рекорд?

Разница в том, что NHibernate является OR / M и нацелен на разработчиков, которые хотят сосредоточиться на домене, а не на базе данных. Благодаря linq to sql ваша база данных уже существует, и вы связаны, и часть программирования будет зависеть от того, как определена ваша база данных.

Теперь между NHibernate и Castle ActiveRecord - они похожи в том, что вы выгоняете дизайн своего приложения из домена, но с помощью NHibernate вы предоставляете сопоставление XML-файлов (или сопоставление классов с беглым NHibernate), где в Active Record вы используете соглашение по конфигурации (использование атрибутов для определения любых столбцов и параметров, которые не подходят естественным образом). Запись Castle Active по-прежнему использует NHibernate в фоновом режиме.

Один OR / M не обязательно является «единственным верным путем». Это зависит от вашей среды, приложения, которое вы разрабатываете, и вашей команды.

Вы также можете проверить SubSonic . Это здорово для активной записи, но это не для проекта, где вы хотите сосредоточиться в основном на своем Домене. В зависимости от проекта я обычно использую NHibernate (с Castle Active Record) или Subsonic

1 голос
/ 10 сентября 2009

На самом деле мы используем Linq и NHibernate вместе (с Fluent). Если у вас будет немного терпения к кривой обучения, вы быстро влюбитесь.

1 голос
/ 17 сентября 2008

NHibernate и Linq To Sql - это объектно-реляционные картографы, разработанные для облегчения работы с несоответствиями между объектами и РСУБД. Если вы хотите создать тестируемое, постоянное невежественное приложение, NHibernate - это то, что вам нужно. Я всегда рекомендовал бы NHibernate поверх Linq To Sql. Оба инструмента направлены на устранение проблем с доступом к данным. Сколько раз вам действительно нужно писать код доступа к данным?

Castle - это прикладная среда и контейнер Inversion of Control, который не обеспечивает доступ к данным. Он предоставляет средства для использования NHibernate, создавая меньшее трение, а также обеспечивает реализацию шаблона Actuve Record с использованием NHibernate.

1 голос
/ 17 сентября 2008

LINQ - это просто набор новых функций C #: методы расширения, лямбда-выражения, инициализаторы объектов, анонимные типы и т. Д.

С другой стороны, «LINQ to SQL» - это то, что вы можете сравнить с другими оболочками SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...