какие критерии я должен использовать для оценки ORM? - PullRequest
4 голосов
/ 27 сентября 2011

Здесь есть много вопросов, которые спрашивают, «какой ORM мне следует использовать с x и y», но я не видел ни одного, который бы конкретно спрашивал, как его выбрать.По теме: Почему вы должны использовать ORM? , Какой ORM мне следует использовать для проекта ASP.Net MVC? , Есть ли веские причины не использовать ORM? и больше.

В мире существует множество ОРМ.Я хотел бы получить представление о том, как их сравнить.Я слышал о таких вещах, как модель активной записи и модель предметной области среди других, и я не уверен, что они означают.Итак, какой хороший набор критериев я могу использовать для сравнения одного ORM с другим?

Наша среда, если вам интересно, это C #, MVC, SQL Server.

1 Ответ

5 голосов
/ 28 сентября 2011

(я пытался ответить не специфичным для .NET способом, когда это возможно.)

Наиболее важными критериями выбора ORM являются требования вашего бизнеса.

Я бы сказал, что другим важным критерием является ваша вера в будущую устойчивость ORM. Microsoft имеет тенденцию менять свои технологии доступа к данным каждые два года, поэтому я бы сказал, что будущее Entity Framework неясно. NHibernate может следовать тем же путем, что и NUnit - когда Microsoft выпустила MSTest, NUnit некоторое время томилась, но теперь NUnit снова набирает обороты, поскольку Microsoft в основном игнорирует MSTest. Здесь вы должны прийти к своему собственному заключению, сейчас Microsoft, похоже, придает Entity Framework некоторую любовь, но, насколько я знаю, он все еще не очень хорошо обрабатывает перечисления, и я не слышал, когда это может измениться.

Другим критерием является то, предпочитаете ли вы технологии с открытым исходным кодом или технологии Microsoft или коммерческие сторонние технологии.

В какой-то момент функции ORM будут иметь значение. Вам может потребоваться создать прототип сценария с несколькими ORM, чтобы определить, соответствуют ли функции (и / или производительность) ORM вашим требованиям. NHibernate является наиболее многофункциональным ORM в пространстве .NET.

Вам нужна поддержка определенного поставщика базы данных? Выберите ORM, который поддерживает тот, который вам нужен. SQL Server является наиболее широко поддерживаемым поставщиком баз данных в мире .NET.

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

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

Я ответил на вопрос, связанный ниже, о частичном выборе .NET ORM, предоставив ссылки на все вопросы, которые люди спрашивают, какой .NET ORM им следует использовать в StackOverflow. Прочитав эти ответы, вы получите много пользы.

NHibernate, Entity Framework, активные записи или linq2sql

Нет ни одного правильного ответа, ни одного правильного набора критериев для выбора. Ваши деловые требования - самый важный компонент, чтобы рассмотреть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...