Платформа объекта по сравнению с nHibernate для Производительности, Кривая обучения полные функции

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

Мы создаем новое приложение на ASP.NET MVC и должны завершить на инструменте ORM. Мы никогда не использовали ORM прежде и в значительной степени свелись к два - nHibernate и Платформа Объекта.

Мне действительно нужен некоторый совет от кого-то, кто использовал и эти инструменты и может рекомендовать на основе опыта. Существует три точки, на которых я фокусируюсь завершить -

  1. Производительность
  2. Кривая обучения
  3. Полная возможность

Ваш совет будет высоко цениться.

С уважением,

8
задан hadi 20 May 2010 в 13:45
поделиться

2 ответа

Я бы использовал Nhibernate . Я бы выбрал Sharp Architecture как отличный фреймворк, который объединяет NHibernate, ASP.NET MVC и множество других инструментов с открытым исходным кодом в единое целое, которое даст вам прочную архитектурную основу.

Нибернат более зрелый, чем EF4. Это хорошо поддерживается сообществом. Если вы готовы время от времени пачкать руки, вам это понравится.Его поддержка LINQ в настоящее время немного слабая, но она быстро улучшается. Кривая обучения неплохая, но такие вещи, как управление сеансами, поначалу могут немного сбивать с толку. Одна из причин, по которой мне нравится Sharp Architecture, заключается в том, что в них есть все необходимое для NHibernate и множество инструкций по его правильному использованию в проекте ASP.NET MVC.

EF4 имеет печать одобрения MS. Сейчас это неплохо, но все еще отстает от NHibernate. Это совершенно хороший выбор, и вы найдете множество документов от MS, службы поддержки MS и, в конечном итоге, больше разработчиков, которые знакомы с тонкостями. Я также должен упомянуть, что разработчики Sharp Architecture добавляют поддержку EF4 в свою общую структуру. Они по-прежнему будут поддерживать NHibernate, но при желании вы сможете использовать EF4.

10
ответ дан 5 December 2019 в 12:08
поделиться

Я думаю, что изучение NHibernate займет больше времени.

EF предоставляет графический дизайнер , к сожалению, NHibernate не имеет универсального дизайнера. Кстати, это не проблема. Если вы разрабатываете объектно-ориентированный метод (DDD), вы сначала разрабатываете свои сущности, и вам не важна структура базы данных (как вы это делали раньше), NHibernate сделает это за вас.

EF 4 стал ближе к NHibernate . Я бы не стал работать с EF 3.5, в нем много функций.

Если вы думаете, что NHibernate на первый взгляд слишком сложен, вы можете начать с фреймворков, построенных на основе NHibernate . ActiveRecords и Sharp Architect - хорошие примеры.

AFAIR EF 3.5 поддерживал только SQL Server 2000 . Он не мог обрабатывать новые типы данных из SQL Server 2005. У меня нет информации о EF 4, но я полагаю, что он поддерживает эти улучшения.

Если вы используете NHibernate в приложениях Real Word, вы должны построить инфраструктуру . Например. Я реализовал шаблоны Единица работы и Репозиторий , чтобы иметь возможность писать тесты и создавать слои в моем приложении. Вы должны ожидать того же, используя EF. Отсоединение и присоединение объектов в EF 3.5 было непросто, мне пришлось написать сложные методы расширения, чтобы пометить поля как грязные и так далее. Надеюсь, они решили это в EF 4. С NHibernate такой проблемы нет.

Вам не нужно писать HQL-запросы в NHibernate, вы можете использовать LINQ-провайдер . Я считаю это очень важным. :)

В целом NHibernate - зрелый продукт с хорошим сообществом и коммерческой поддержкой . EF - молодая компания, но ее активно поддерживает Microsoft. О, и EF - это единственная вещь Microsoft, хотя вы также можете перенести свои знания NHibernate на Java. Это важно для вас.

2
ответ дан 5 December 2019 в 12:08
поделиться
Другие вопросы по тегам:

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