Вопрос по orm, asp.net, asp.net-mvc – ASP.NET MVC и ORM Выбор

28

Мы готовимся приступить к реконструкции большого устаревшего внутреннего корпоративного приложения. Мы решили использовать ASP.NET MVC, но мы рассматриваем, какой объект реляционного сопоставления (ORM) выбрать. Конечно, существует множество открытых и платных реализаций ORM. Тем не мение,NHibernate кажется, держит самый большой разум, в то время какEntity Framework это новый жар от Microsoft.

В то время как мы проводим исследования и общаемся с обоими, мы хотели сообщить сообществу, какой ORM (NHibernate, Entity Framework или иным образом) они предпочитают и почему.

Несколько похожие вопросы о Stackoverflow

What are you favorite .NET ORMs? (good list, but w/o justifications) ASP.NET MVC + ORM (focuses primarily on Castle Project AR) What object mapper solution would you recommend for .NET? [closed question]

Дополнительное чтение .NET ORM

ORM in .NET 3.5 Why use the Entity Framework? Why use the Entity Framework? Yeah, why exactly? Best .NET ORM Tool
Без обид, но, кажется, об этом уже спрашивали:stackoverflow.com/search?q=.net+orm . stackoverflow.com/questions/380620/… был закрыт как дубликат. Corbin March
Ничего себе, я не знаю, как я не нашел этот вопрос, когда искал. И Google, и поиск SO провалились. На закрытии не было обид, поскольку я бы не задал вопрос иначе. :) ahsteele
Помечено как ответ. ahsteele
Приведенный ниже комментарий IainMH имеет достаточную ценность, поэтому вопрос не следует удалять. Robert Harvey♦
Поскольку я согласен с тем, что это, вероятно, следует закрыть, лучше удалить вопрос или проголосовать за его закрытие? ahsteele

Ваш Ответ

3   ответа
13

Вы должны взглянуть наОстрая архитектура каркас приложения ASP.NET MVC, использующий NHibernate.

За последние пару лет я использовал несколько O / RM, и никоим образом не выбрал бы ничего, кроме NHibernate.

It's the most mature. It's got a huge set of features. It's got a good community behind it. It's got some fantastic ancillary projects such as Fluent NHibernate.

Я не знаю, какую дополнительную информацию люди смогут дать вам сверх того, что вы связали.

Ссылка указывает на несуществующий домен
@Storm Спасибо, похоже на гниль ссылок. Я обновил URL, чтобы он указывал на репозиторий github.
0

Короткий ответ: используйте оба (я действительно использую оба) ...

С ORM существует множество возможностей, все зависит от того, что вы хотите.

Как настоящий картограф ORM я настоятельно рекомендуюNHibernate а такжеFluent NH отображения. Вам нужно много исследований, чтобы создать красивую архитектуру, но тогда ничто не мешает вам. С минимальными компромиссами вы получаете настоящую гибкость.

EF6x (ядро не прод. готово IMHO) называется ORM, но то, что оно генерирует, ближе к DAL. Есть некоторые вещи, которые вы не можете эффективно делать с EF6. Тем не менее, это мой любимый инструмент для модели чтения, хотя я комбинирую его с NHibernate (где NH я использую для модели DDD / записи).

Сейчасperformance - это всегда за и против. Если вы глубоко в глубине ORMarchitecture (см. мою статью:избегать вредных привычек ОРМ) тогда вы найдете интуитивно понятные способы сделать это быстрее. Вот еще одна моя статья о том, как сделать EF6x 5xfaster (по крайней мере, для ситуаций чтения):EF6.x в 5 раз быстрее

2

Ответ сумасшедшего разговора: нет.

Нельзя сказать, что ORM не являются удивительными частями технологии при правильном использовании. Но в 2011 году они быстро становятся универсальным молотком, где не все проблемы являются гвоздями. И в современных ОРМ так много всего происходит, что, особенно для людей, не очень хорошо разбирающихся в них, они могут больше путать, чем помогать. Или иногда все достаточно просто, чтобы прямой SQL был лучшей альтернативой. Неважно, насколько хорош ORM, абстракцияwill течь в какой-то момент.

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

ОП четко заявил, что они переделывают свои корпоративные приложения, не начав чему-то учиться. А когда вам нужна настойчивость, в большинстве случаев ORM является самым простым решением.

Похожие вопросы