Что лучше для 3-уровневой архитектуры; Linq для SQL или Nhibernate? - PullRequest
2 голосов
/ 14 ноября 2009

Что является лучшим решением для 3-х уровневой арки. Linq для SQL или Nhibernate? В частности, я буду модернизировать систему с 2-уровневой архитектурой до 3-уровневой архитектуры?

Редактировать: И где я могу найти хорошие учебники или видео для обоих?

Ответы [ 6 ]

4 голосов
/ 14 ноября 2009

Если вам когда-либо нужно поддерживать только одну платформу БД и у вас уже есть модель базы данных, LINQ-to-SQL имеет смысл.

Однако вы также можете использовать FluentNHibernate для генерации сопоставлений для вас.

Если важна поддержка нескольких БД, а также детальный и гибкий контроль отображений, перейдите в NHibernate. Иначе, LINQ-to-SQL подойдет. Избегайте LINQ-to-Entities, как чума, пока, по крайней мере (v4.0 может улучшить положение).

1 голос
/ 14 ноября 2009

что является лучшим решением для 3tier, я бы сказал, ни то, ни другое.Ответ печенья не существует, у каждой выбранной вами структуры / библиотеки будут компромиссы.Чтобы принять это решение ORM, вам нужно посмотреть на потребности вашего бизнеса и определить, какая из множества возможностей лучше всего поможет вам в достижении наших целей своевременным и поддерживаемым способом.Насколько сложна ваша модель домена и может ли она адекватно описать их в linq to sql.

1 голос
/ 14 ноября 2009

Я бы сказал, перейдите с LINQ to SQL, если вашему приложению нужны только базовые функции, в противном случае используйте NHibernate. Я знаю немного о LINQ, и я изучаю NHibernate, и из того, что я могу сказать, NHibernate является лучшим долгосрочным решением, поскольку оно более абстрактное, чем L2S (который довольно тесно связан с базой данных), но L2S легче выбрать и обеспечивает более быстрое решение.

Не зная больше о вашей конкретной проблеме, я бы сказал, используйте NHibernate, поскольку он более гибок и реагирует на изменения, хотя и с немного более «корпоративной» кривой обучения, чем Linq to Sql. Для хорошего ресурса NHibernate я рекомендую проверить сериал Стива Болена "Лето NHibernate" .

1 голос
/ 14 ноября 2009

Не знаю, верно ли это для .NET, но если бы я решал эту проблему с помощью Java и Spring, я бы начал с интерфейса, который бы скрывал выбор реализации.Клиенты не должны знать, выполняет ли это LINQ или NHibernate.Spring позволил бы мне внедрять одну или другую реализацию по своему усмотрению, не мешая клиентам, до тех пор, пока оба реализовали согласованный интерфейс.

1 голос
/ 14 ноября 2009

если база данных уже существует, я бы пошел с linq to sql (генерирует сопоставление из базы данных просто перетаскиванием), другими способами я бы выбрал Nhibernate (помогает генерировать базу данных на основе вашей модели)

0 голосов
/ 14 ноября 2009

Я не использовал Nhibernate, но я знаю, что Microsoft подтвердила, что, хотя она будет поддерживать LINQ to SQL в будущем, они больше не будут разрабатывать эту конкретную технологию.

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