пятница, 25 июля 2008 г.

Сравнительный анализ современных .net ORM

Задача

Необходимо было аргументированно выбрать ORM для большого .Net проекта. Рассматриваемые (пока) ORM: Entity Framework, BLTooklit, SubSonic.

Результат

* Аналитический отчет
* Сводная таблица с баллами, набранными каждой из ORM

Ваша критика/пожелания приветствуется. Надеюсь продолжить этот опыт и рассмотреть еще и другие (не менее интересные ORM)

15 комментариев:

vadimmer комментирует...

Крайне заинтересовало отсутствие NHibernate (который кстати к версии 2.0 упорно приближается). Тем более, что Castle ActiveRecord - надстройка над NH, имеющая свои плюсы и минусы. Скажем, при использовании AR надо бизнес-объекты декорировать атрибутами, на основе которых и генерируется nhibernate mappings (одна из ключевых фич AR). А чистый NH совсем этого не требует.

Yury Skaletskiy комментирует...

гибернейта нету по причине того, что задачей исследвания было на самом деле найти альтернативу гибернейту ;)

так бы конечно он шел бы параллельно EF, только проседал бы по возможностям визуального редактирования маппингов и (может быть) сложности обучения.

Еще интересная технология - LinqToNHibernate, я пока не смотрел, но думаю полезная штука.

vadimmer комментирует...

ага, полезный stuff от ayende :) использование этой штуки вместе с
ну всё же думаю, хайбернейт стоит рассмотреть. хотя бы для меня :) по поводу сложности обучения: summerofnhibernate.com :) . начитался, блин, я всяких блогов чуваков типа айенда :)

по-моему неплохо (если не видели):
http://rabdullin.com/linq-queries-with-parameters-for-your-orm-irepository/

ulu комментирует...

Для NHibernate/ActiveRecord существует генератор классов и маппинга -- ActiveWriter.

По поводу Entity Framework есть некоторые сомнения у уважаемых людей. Во-первых, проблемы с Lazy Loading, о которых упоминается, заставляют мешать бизнес-логику с извлечением данных. Во-вторых, дремучие файлы маппинга создают проблемы с CVS merge.

Анонимный комментирует...

Привет.
Интересная работа. Но есть сомнения по поводу ADO.NET EF:
http://efvote.wufoo.com/forms/ado-net-entity-framework-vote-of-no-confidence/

ulu комментирует...

Есть информация о том, что в следующей версии дела пойдут лучше:
http://blogs.msdn.com/efdesign/archive/2008/06/23/transparency-in-the-design-process.aspx

Yury Skaletskiy комментирует...

Позитивные новости!

Chabster комментирует...

Пытался использовать много коммерческих и некоммерческих ORM.
Вывод 1: хорошие только коммерческие.
Вывод 2: LLBLGen или DevForce. Последний плохо документирован, как для коммерческого продукта (кстати, есть его community версия), но если обуздать - то лучший.

ulu комментирует...

По поводу п.1: А какие были критерии?
Что есть хорошего в п.2?

Анонимный комментирует...

vote-of-no-confidence - полный бред, причем довольно истеричный. :)
Лишний раз укрепил меня в негативном отношении к гибернейту. EF, конечно весьма сыроват и толком не готов, но уж и претензии к нему и, главное, форму этих претензий можно было бы по адекватнее выбрать.

ulu комментирует...

vote-of-no-confidence не имеет отношения к хибернейту, и тем более тон заявления не имеет отношения к качеству продукта.

Хотя, я тоже не фанат.. Но я еще не нашел свой родной тул.

Анонимный комментирует...

LLBLGen Вот твой выбор. Очень серьезный фрэймворк с хорошим саппортом.

ulu комментирует...

Убедите меня!

Анонимный комментирует...

> Chabster
ничего себе у IdeaBlade DevForce мало доков?? у них прямо в инсталляторе просто горы туториалов идут, помимо обычной документации.
а их Cabana это просто сказка - CAB+SCSF + DevForce + DXperience, у меня на собственноручно дописанной кабане уже два года enterprise-level проект работает и горя не знает.
и это, хочу заметить, на довольно старых версиях DF.

Larisa комментирует...
Этот комментарий был удален администратором блога.