Есть ли убийца NHibernate там? - PullRequest
5 голосов
/ 21 января 2010

Это, вероятно, длинный выстрел.

В мире .NET кто-нибудь нашел ORM (коммерческий или открытый), обладающий гибкостью NHibernate для поддержки доменного дизайна с хорошей поддержкой Linq? Linq to sql мертв, Entity Framework еще не очень хорошо поддерживает POCO, ленивую загрузку или первичную разработку объектов, и ни один из старых резервов, таких как LLBLGen, кажется, тоже.

Кто-нибудь найдет что-то новое и интересное на рынке ORM?

Спасибо!

Ответы [ 5 ]

4 голосов
/ 22 января 2010

См. ORMBattle.NET - он точно не ответит на ваш вопрос (кстати, я вряд ли признаю это возможным), но есть некоторая информация о качестве поддержки LINQ.

Примечание (или отказ от ответственности): я один из тех, кто связан с созданием ORMBattle.NET, а также один из DataObjects.Net авторов.

2 голосов
/ 22 января 2010

О какой версии .NET Framework вы говорите? 3,5? 4,0

Существует довольно много ORM, и некоторые из коммерческих могут на самом деле удовлетворить ваши потребности (или работать над новыми выпусками, которые отвечают вашим потребностям). Конкурировать с NHibernate и Entity Framework с коммерческой точки зрения довольно сложно. Microsoft сделала намного труднее, чем необходимо, написать провайдера Linq, поэтому так мало ORM. Создание ORM, ориентированного на предметный дизайн, который поддерживает несколько поставщиков баз данных, также довольно крутой путь.

NHibernate, безусловно, имеет все импульсы прямо сейчас, но это не значит, что он непобедим. Трудно конкурировать с бесплатным программным обеспечением с открытым исходным кодом, которое имеет многолетний успех, даже для компании с финансовыми ресурсами Microsoft.

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

1 голос
/ 29 мая 2010

Я бы не назвал это «убийцей NHibernate», но SubSonic работает хорошо. Он прост в использовании, позволяет выбирать между использованием шаблона Active Record и Repository. Он поддерживает POCO, позволяет использовать разработку на основе объекта, а настройка отложенной загрузки достаточно проста.

1 голос
/ 22 января 2010

Нет, я не знаю ни одного. Поскольку NHibernate популярен и очень хорош в том, что он делает, и EF, вероятно, заберет большую часть оставшихся (особенно разработчиков, которые не хотят отклоняться от предоставленных Microsoft фреймворков), барьер для входа для нового игрока очень высоко. Другой ORM должен был бы добавить что-то существенное сверх того, что предлагает NHibernate в настоящее время, чтобы получить любой разумный уровень интереса.

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

0 голосов
/ 19 апреля 2011

CQRS можно считать убийцей NHibernate. Основная предпосылка заключается в том, что ваши доменные объекты не используются для поддержки вашей модели чтения и запросов приложений. Таким образом, вы можете начать использовать что-то более похожее на хранилище документов для хранения вашей совокупности или даже использовать источник событий. Чтобы обновить вашу модель чтения, вы должны прослушивать события, опубликованные вашим агрегатом, чтобы он мог соответствующим образом обновлять себя. Используя этот архитектурный стиль, мы смогли устранить нашу зависимость от NHibernate. Теперь, если мы решим использовать СУБД, это связано с сильными сторонами базы данных, а не с выбором по умолчанию.

...