Что запустить ORM: Telerik Open Access VS Subsonic VS linq to sql VS Active Record - PullRequest
8 голосов
/ 19 февраля 2009

Мы изучаем использование ORM, и мне нужны были некоторые мнения / сравнения

Основными критериями для ORM являются: простота в использовании / настройке (короткая кривая обучения), гибкость, возможность абстрагирования, простота обслуживания

Вот список того, на что мы смотрим ORM и каковы наши первые впечатления

  1. Открытый доступ - кажется действительно простым для простых вещей, но, похоже, не обладает большой гибкостью, стоимость не является проблемой, которой мы уже владеем
  2. Ling to SQL - выглядит очень простым в использовании и настройке, но в нем отсутствуют некоторые функции
  3. Активная запись - NHibernate стало проще
  4. SubSonic - выглядит очень многофункциональным, но на самом деле не очень-то с ним играл

вот ORM, которые мы рассмотрели и исключили

  1. Сущность все еще находится в бета-версии
  2. У NHibernate есть большая часть кривой обучения (у нас нет 3 недель, чтобы научиться этому)

Ответы [ 7 ]

6 голосов
/ 04 мая 2009

Я бы сказал, что вам стоит взглянуть на DataObjects.NET (http://www.x -tensive.com ). Это многофункциональный и довольно простой в использовании. Тем не менее, он абсолютно привязывает вас к вашей объектной модели, так как он решает, какая структура базы данных должна быть основана на том, как выглядит ваша объектная модель. При этом, если вы хотите иметь возможность игнорировать существование базы данных, это очень приятно. Мы использовали его в течение многих лет и имели большой успех.

4 голосов
/ 19 февраля 2009

В настоящее время мы используем SubSonic (2.0.3), и это был абсолютный спасатель. Я не могу не подчеркнуть, насколько это круто. ОДНАКО, сейчас мы смотрим на переход от него по разным причинам (возможно, на NHibernate или Entity). Вот мои плюсы и минусы:

Плюсы:

  • Очень прост в настройке и использовании.
  • Множество замечательных и полезных инструментов и функций
  • Использует философию "соглашение о конфигурации", поэтому очень мало конфигурации. Это "просто работает". (Пока ты делаешь все так, как хочет ... :))

Минусы:

  • Дизайн вашей базы данных очень тесно связан с дизайном вашего домена. Внесите изменения в свою БД, и вам нужно изменить свой код / ​​дизайн домена.
  • По умолчанию SubSonic использует шаблон ActiveRecord для всего доступа к данным вместо шаблона репозитория, что затрудняет его «абстрагирование». (Хотя я считаю, что с версией 3.0 вы можете поменять шаблоны ActiveRecord по умолчанию для использования шаблона репозитория).
  • Множество пессимистических слухов о будущем SubSonic. Но слухи - это всего лишь слухи.
3 голосов
/ 19 февраля 2009

Для всех парных копеек это может стоить:

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

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

Это, конечно, еще один способ сказать: «Знай свои инструменты». :)

1 голос
/ 06 июля 2010

Используйте шаблоны T4, чтобы создать свой собственный. В Интернете есть несколько установленных шаблонов, особенно для шаблонов T4. Знание T4 также позволит вам создавать элементы, которые могут иметь большую область действия, чем макросы, но меньшую область, чем написание специального приложения для создания необходимого сценария. Надеюсь, это поможет!

1 голос
/ 19 февраля 2009

У большинства людей будет небольшой опыт работы с одним или двумя из них, но немногие будут иметь доступ ко всем. Я рекомендую пробную концепцию с каждым из ваших фаворитов. Настройте каждый из них, потратив не более , чем n часов на инструмент ORM ( n = сколько бы времени вы ни решили, разумно.) У вас нет для реализации всей вашей объектной модели подойдет функциональное подмножество.

К тому времени, как вы закончите, вы уже поработаете над настройкой и некоторым их использованием. Затем вы можете записать вскрытие, и команда может решить, какое соотношение боли и возможностей лучше.

0 голосов
/ 30 августа 2013

Если вы не используете элементы управления Telerik, для быстрого обучения следует выбрать LINQ to SQL - в Интернете огромное количество различных учебных пособий, видео и книг.

0 голосов
/ 19 февраля 2009

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

...