В настоящее время у нас есть следующий стек:
- VS 2005
- Веб-формы
- SQL Server 2005
- IIS 6
Мы планируем перейти на это:
- VS 2010
- MVC и веб-формы
- SQL Server 2008
- IIS 7
Мой вопрос: когда мы перейдем на MVC с VS 2010, должны ли мы использовать Entity Framework (или другой ORM), микро ORM (например, Massive ) или просто обычный SQL?
Все учебные пособия, которые я читал о VS 2010, направлены на использование Entity Framework для транзакций данных, но будет ли это в обозримом будущем (5+ лет)?
Если это имеет значение, приложения нашего клиента могут иметь от 10 до 1000 активных пользователей.
Ответы:
Недавно я перешел от использования встроенных SQL-запросов к использованию EF, и вот что я нашел:
Pros
Cons
1:0-1
отношения, в которых EF хочет использовать1:0-*
Я не эксперт по EF, поэтому я, вероятно, пропустил некоторые вещи. Это только те элементы, которые я знаю в прошлом при переходе от встроенного SQL к Entity Framework. Я рад, что сделал такой переход, но были времена, когда я действительно ненавидел EF из-за его причуд.
источник
Entity Framework - это инструмент для повышения производительности. Если у вас нет веских причин не делать этого (например, вы используете SQL 2000 или у вас нет времени на освоение этой технологии), используйте лучшие инструменты, которые есть в вашем распоряжении.
При этом я считаю, что концепция сущностей очень хорошо переводится в модель модели MVC. Несмотря на то, что отношения 1: 1 с моделями и таблицами являются плохой практикой, размышления с точки зрения сущностей, как правило, приводят к чистым проектам, легко читаемому коду (особенно с LINQ).
Entity Framework активно поддерживается Microsoft. Ни у кого нет волшебного хрустального шара, чтобы сказать «поддержка продлится Х лет». Я не вижу причин полагать, что Сущность умрет в следующие 5 лет.
источник
Другим потенциальным решением является использование альтернативной библиотеки Entity Framework, отличной от поставляемой с VS. В Интернете есть несколько таких.
Концепция структуры уровней Entity / 3 существует уже некоторое время и работает с несколькими пользовательскими библиотеками, как и многие другие разработчики, до того, как Microsoft выпустила свою собственную «официальную» среду.
Pros
Воспользуйтесь преимуществами инфраструктуры Entity (DAL), не застревая с постоянными изменениями библиотек / структур Microsoft.
Добавление в библиотеку функций, которые могут быть недоступны существующей официальной библиотеке, например, использование нескольких брендов dtabase.
Cons
Приходится поддерживать библиотеку или инструменты. Очень распространено иметь инструмент кода Entity Generator для генерации enitites.
источник
Вы должны принять архитектурное решение, основанное на проблеме и существующем решении. Как и у любой технологии, есть свои преимущества и недостатки.
Я лично обычно использовал бы структуру сущностей для новой разработки, но не переписывал бы работающий существующий код. Затем вы получаете скорость для будущего удаления, но вам не нужно тратить много времени на преобразование кода. Недостатком такого подхода является снижение согласованности.
источник
В вашей ситуации я бы определенно использовал Entity Framework, я обнаружил, что он хорошо работает с MVC.
Вот некоторые реальные причины и указатели.
Однако есть несколько вещей, которые вам необходимо узнать об использовании ORM.
Что нужно учитывать
Я также очень рекомендую подход «сначала код», даже если у вас есть существующая база данных.
источник