Сравните и сопоставьте NHibernate и OpenAccess от Telerik - PullRequest
10 голосов
/ 14 января 2009

Использовали ли вы OpenAccess ORM от Telerik ? Как это по сравнению с NHibernate? Когда я должен рассмотреть возможность использования его через NHibernate?

Ответы [ 4 ]

10 голосов
/ 30 января 2009

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

ОА стоит денег, но вы получаете поддержку. NH свободен, но поддержка, по крайней мере в моем кратком опыте, была известна как ограниченная и медленная.

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

NH использует обычные классы и объекты без украшений для свойств классов. Для OA требуются украшения (красиво сгенерированные графическим интерфейсом OA Visual Studio).

NH требует «сеанса», в котором выполняется единица работы с базой данных; ОА называет это «сфера». Оба используют «транзакцию».

OA имеет интеграцию с Visual Studio и может выполнять прямое и обратное сопоставление с базой данных и из нее. Прямое сопоставление позволяет создавать классы, а затем «сохранять» их в базе данных для сохранения. «Обратное» - это для вас разработчики «доменной модели», что я предпочитаю.

OA определенно претерпевает некоторые важные обновления, так как Telerik играет «в догонялки» после недавнего приобретения и выпуска OpenAccess, ранее принадлежавшего Vanatec (из Германии).

Что касается «простоты использования» и «производительности / масштабируемости», мне бы хотелось знать, где каждый из них стоит. Я уверен, что кто-то мог бы провести честное испытание между ними и сделать эти определения.

Одна вещь, которая мне нравится в NH, - это доступные шаблоны для генерации необходимого кода не только для «тупых» бизнес-объектов (которые все OA генерирует сейчас), но и для BLL и DLL. После долгих разговоров с Telerik у меня сложилось впечатление, что они планируют использовать больше вариантов генерации кода, поэтому OA более полезен из коробки.

Надеюсь, это поможет! Кто-то, пожалуйста, попробуйте получить статистику по вопросам производительности.

9 голосов
/ 14 января 2009

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

Редактировать

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

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

Лично я обнаружил, что поддержка nHibernate на одном уровне и даже лучше с некоторыми коммерческими поставщиками.

Моя цель не в том, чтобы bash OSS, а в том, чтобы подчеркнуть одно преимущество использования программного обеспечения, имеющего совместную поддержку, с полностью укомплектованным и выделенным каналом поддержки.

6 голосов
/ 13 августа 2009

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

1 голос
/ 14 января 2009

Я бы сказал, что nHibernate бесплатен, а OpenAccess стоит 399 долларов. Хотя CodeSmith с шаблонами nHibernate стоит $ 99- 399, если вы хотите, чтобы nHibernate легко автоматизировался. Похоже, что OpenAccess обладает большей прозрачностью на уровне данных и, вероятно, его легче поддерживать. Но если бы вы использовали что-то вроде Spring.Net, вы бы не только nHibernate автоматизировали данные, но и уровень сервиса автоматизирован. Хотя примите это с некоторой долей соли, потому что nHibernate и Spring.Net - еще одна партия файлов конфигурации, которые необходимо поддерживать. Бьюсь об заклад, OpenAccess дружественный графический интерфейс. Любой из них работает, но есть больше информации о nHibernate.

...