Lightspeed против NHibernate - PullRequest
       18

Lightspeed против NHibernate

13 голосов
/ 09 апреля 2009

Какой опыт у LightSpeed ​​? Сравнение, предоставленное Mindscape, не говорит слишком много о NHibernate. Lightspeed кажется гибким, но я не вижу много о производительности. Насколько хорошо работает Lightspeed? Также есть ли недостатки в использовании Lightspeed?

Ответы [ 6 ]

11 голосов
/ 09 апреля 2009

В течение последних шести месяцев я использовал NHibernate с Active Record на работе и LightSpeed ​​дома в свободное время.

Преимущества / недостатки До сих пор я обнаружил, что LightSpeed ​​и NHibernate с Active Record просты в освоении.

Я не нашел недостатков с LightSpeed ​​(пока). Функции, которые мне нравятся больше всего:

  • Соглашение по конфигурации. Это экономит много времени и обеспечивает согласованный код.
  • Класс модели и генератор конфигурации.
  • Поддержка Linq и MySQL 5.

Функции, которые мне больше всего нравятся в Active Record:

  • Не требуется настройка XML, наиболее распространенные параметры конфигурации предоставляются автоматически.
  • Гибкость NHibernate по-прежнему доступна, когда это необходимо (например, критерии запросов).

Недостатки Active Record для меня:

  • Кажется, что примеров кода на Ruby on Rails больше, чем на C #

Производительность Я (пока) не сравнивал оба продукта рядом и не проводил тесты производительности на обоих одинаково.

Я бы предположил, что NHibernate страдает от более глубокой иерархии классов. Оптимизируя мой код с помощью ANTS Profiler, я обнаружил, что для простого запроса есть вызов за вызовом через классы NHibernate до того, как будет создан фактический запрос SQL.

Разумеется, производимый запрос будет влиять на конечную производительность ORM.

И LightSpeed, и NHibernate предлагают ленивую загрузку, а Active Record облегчает это для NHibernate.

Я думаю, что проще оптимизировать ваши запросы с помощью Lightspeed с Linq, и это станет более понятным для людей, поддерживающих ваш код. Принимая во внимание, что обычно не рекомендуется писать NHibernate HQL.

7 голосов
/ 09 апреля 2009

По производительности, с этой страницы

Стремительная и ленивая загрузка Нет проблем N + 1. Включает в себя «именованные агрегаты». То есть, давая имя для конкретной нагрузки граф. Смотрите скринкаст.

Не стоит недооценивать это. Это означает, что если вы загрузите список из 200 элементов, во многих случаях MOST ORM будет выполнять 201 запрос. Lightspeed не делает. Это один из (очень) немногих, кто этого не делает.

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

4 голосов
/ 09 апреля 2009

Недавно я сравнил большой набор ORM, включая NH и Lightspeed. Я профессионально использую NH, поэтому я немного предвзят, статья написана здесь .

4 голосов
/ 09 апреля 2009

Я недавно взглянул на оба. Что меня поразило в Lightspeed:

  • Их инструменты, которые работают очень хорошо (я думаю, лучшие дизайнеры VS, которые я когда-либо использовал).
  • Очень быстрые ответы. Они отвечали на вопросы и добавляли функции.

То, что для меня показало, было то, что они в значительной степени полагаются на условности, и в большинстве случаев, похоже, нет переопределений. Так что мои варианты, когда дело дошло до решения, как именно составить карту, были не так хороши, как я хотел. Предположительно, Lightspeed 3 решит эту проблему, чтобы вы могли больше настраивать.

Я держался в стороне от NHibernate из-за всего XML, но потом нашел Fluent NHibernate, и похоже, что он будет работать довольно хорошо. Там нет поддержки дизайнеров, хотя некоторые могут сказать, что это дизайн (сосредоточиться на ваших объектах). NHibernate также кажется наиболее часто используемым ORM для .NET, поэтому в этом смысле это «безопасная» ставка. Пока что мне удалось отобразить большую часть того, что я могу придумать.

Во всяком случае, я не слишком продвинулся в Lightspeed из-за ограничений настройки. Если бы я начинал новый проект, который мог бы соответствовать их соглашениям, это могла бы быть другая история. Компания настолько отзывчива, что мне бы очень хотелось использовать один из их продуктов:).

2 голосов
/ 09 апреля 2009

Я использую Lightspeed в течение нескольких месяцев, но я новичок в .NET, поэтому никогда не использовал NHibernate. До сих пор я обнаружил, что его довольно легко использовать с небольшой кривой обучения, и он постоянно обновляется. Большим плюсом для меня является поддержка. На запросы обычно получают ответ в течение очень короткого промежутка времени, и любые найденные ошибки часто исправляются на следующий день и доступны в ночной сборке. Не уверен, что вы подразумеваете под "насколько хорошо работает Lightspeed"? Этот парень кажется довольно счастливым {: o) http://omarbesiso.spaces.live.com/blog/cns!70A5B53D721071B7!473.entry

0 голосов
/ 09 апреля 2009

Я беседовал с одним из ведущих разработчиков этого продукта (Джереми Бойдом) в последние годы TechEd в Окленде, Новая Зеландия, и задал именно этот вопрос. Казалось, он думал, что это на несколько порядков быстрее, чем NHibernate. Это, конечно, его продукт, поэтому он скажет это, но я подумал, что стоит упомянуть.

...