Различия между NHibernate, Castle, Linq - на кого они нацелены?

StackOverflow https://stackoverflow.com/questions/82632

  •  01-07-2019
  •  | 
  •  

Вопрос

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

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

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

-Адам

Это было полезно?

Решение

Когда вы говорите "Замок", я полагаю, вы имеете в виду Активную запись замка?

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

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

Один Или /М - это не обязательно "единственный верный путь".Это зависит от вашей среды, приложения, которое вы разрабатываете, и вашей команды.

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

Другие советы

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top