Lightspeed vs NHibernate

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

Ответы

Ответ 1

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

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

Я не нашел недостатков с LightSpeed ​​(пока). Я больше всего люблю:

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

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

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

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

  • Похоже, что больше примеров кода Ruby on Rails, чем примеры С#

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

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

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

Оба LightSpeed ​​и NHibernate предлагают ленивую загрузку, а Active Record упрощает NHibernate.

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

Ответ 2

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

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

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

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

Ответ 3

Недавно я быстро взглянул на обоих. Что впечатлило меня Lightspeed:

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

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

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

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

Ответ 4

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

Ответ 5

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

Ответ 6

У меня была беседа с одним из ведущих разработчиков этого продукта (Jeremy Boyd) в последние годы TechEd в Окленде NZ и задал этот вопрос. Казалось, он думал, что он на несколько порядков быстрее, чем NHibernate. Это его продукт, конечно, поэтому он собирается это сказать, но я думал, что стоит упомянуть.