Как вы решаете, какой ORM использовать? - PullRequest
1 голос
/ 04 ноября 2008

Замок Active Record? Обычный NHibernate? Дозвуковые? Сущность? Что-то вроде Неттье?

Я хотел бы использовать один, но я не знаю достаточно, чтобы решить. Nhibernate кажется слишком сложным, но широко используемым. Дозвуковая кажется аккуратной и легкой. Но стабильно ли это? У меня есть CodeSmith, и я указал на Nettiers, который, кажется, тоже аккуратный, но и сложный. Как другие оценивают и решают, что использовать? Вы делаете небольшие простые проекты с каждым, чтобы увидеть особенности? Эини, Мини, Минни, Мо?

Ответы [ 4 ]

2 голосов
/ 04 ноября 2008

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

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

1 голос
/ 04 ноября 2008

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

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

0 голосов
/ 24 ноября 2008

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

0 голосов
/ 24 ноября 2008

Поскольку вопрос «как выбрать», а не «что выбрать» ...:

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

Вы также можете вдохновиться http://polepos.sourceforge.net/ это тест производительности базы данных, но в основном для Java-фреймворков. Если вы готовы, вы можете адаптировать исходный код к .net, это не так уж сложно.

Тем не менее, мои текущие фавориты - ActiveRecord и LINQ.

...