Что такое хороший выбор ORM для сайта электронной коммерции? - PullRequest
2 голосов
/ 25 ноября 2008

Я использую C # 3.0 / .NET 3.5 и планирую создать сайт электронной коммерции.

Я видел NHibernate, LLBLGEN, Genome, Linq to SQL, Entity Framework, SubSonic и т. Д.

Я не хочу кодировать все вручную. Если будет какое-то конкретное узкое место, мне удастся оптимизировать базу данных / код.

Какой ORM будет лучше? В тот день столько всего доступно, что я даже не знаю, с чего начать.

Какие функции я должен использовать?

Ссылки, скринкаст и документация приветствуются.

Ответы [ 4 ]

3 голосов
/ 25 ноября 2008

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

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

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

Это зависит от архитектуры модели данных. Я могу говорить об эффективности SubSonic, так как я нахожусь в процессе запуска веб-приложения, которое оно поддерживает.

У меня возникли проблемы с JOIN и DISTINCT при использовании SubSonic. Оба раза все, что мне нужно было сделать, это исправить исходный код и восстановить библиотеку DLL. Теперь я совсем не против этого, но вы могли бы быть.

Помимо этих двух проблем, SubSonic очень удобен в использовании. Выбор очень легкий и плавный. Он довольно близко сопоставляется с SQL, почти так же, как и LINQ. Кроме того, SubSonic поставляется с функцией скаффолдинга, которая должна иметь возможность предварительно создать определенные страницы для вас. Я не уверен, насколько это эффективно, так как мне нравится делать это самому.

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

Это мои два цента.

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

Я действительно могу говорить только о LINQ-SQL и могу сказать, что это:

  • Простота в использовании
  • Быстрый, чтобы начать работу
  • Подходит для простых схем и объектных моделей

но он начинает падать, если:

  • Вы используете несвязанную (многоуровневую) архитектуру, поскольку для ее точек данных требуются одинаковые экземпляры объекта для выполнения отслеживания и параллелизма (хотя существуют способы обойти это).
  • У вас сложная объектная модель / база данных
  • Плюс к этому есть некоторые другие проблемы и странное поведение

Я сам собираюсь попробовать EF, а MS, похоже, тихо отказывается от LINQ-SQL в пользу EF, что не совсем звучит как рекомендация LINQ-SQL:)

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

Я начал использовать Linq to SQL, так как вся интеграция с linq великолепна, но если вы хотите сделать Model First, а не Schema First, и хотите иметь модель с богатым доменом, тогда nHibernate \ Fluent nHibernate - действительно путь , Мы перешли на это и гораздо проще, лучше поддерживаются, чем l2s. Однако для прямого перетаскивания вашей схемы в генератор кода dbml отлично подойдет linq to sql. Я также слышал очень хорошие вещи о Mindscape Lightspeed, но не использовал его.

...