В настоящее время лучшие практики Microsoft по созданию уровня данных .NET? А реальность?


13

Команда разработчиков, с которой я работаю, скоро перейдет на .NET 4.0, однако используемая нами библиотека классов доступа к данным все еще использует ADO.NET «classic», то есть SqlDataReader , DataTable и тому подобное. Между тем, похоже, что Microsoft и, вероятно, весь остальной мир продвигаются вперед с Entity Framework и WCF Data Services . В MSDN я не нашел ничего, что указывало бы на то, какая из технологий доступа к данным Microsoft рассматривает как лучшие.

Есть ли у Microsoft предпочтения? Какой доступ к данным в настоящее время использует большинство людей? Есть ли веские причины оставаться с ADO.NET classic и не переходить на Entity Framework?


Хороший вопрос. Один нит: «слой данных» может быть более точным термином. «Уровни» также могут означать части распределенной системы, работающие на отдельных блоках.
ажеглов

1
@azheglov, «слой данных» был моей первой мыслью, но потом я посмотрел на это и решил использовать любую терминологию, которую видел на MSDN: msdn.microsoft.com/en-us/library/bb384398.aspx . Я согласен, что уровень данных более точный, хотя.
Т. Вебстер

Вебстер: спасибо за поиск и уточнение
ажеглов

Ответы:


4

В моей фирме мы используем EF. Это хорошая ORM, подходящая для нашего небольшого проекта. На самом деле люди используют EF или NHibernate. Обе рамки хороши. EF имеет отличную поддержку MS, и вы можете найти отличные инструменты в комплекте с Visual Studio. NHibernate считается лучше, чем EF, но есть большая «кривая обучения», поэтому вы потратите больше времени на его принятие.

Я думаю, что если вы находитесь на Ado.Net "классический" попробуйте EF. Создайте простой проект и замените некоторые методы DAL. Проверьте, как это работает и как вы можете управлять / изменять код. Сравните это с простыми методами «SqlDataReader» и решите, что лучше. Помните, что для каждого технологического сдвига требуется некоторое время для внедрения, поэтому вам необходимо рассчитать, будет ли это изменение полезным для вашей компании в долгосрочной перспективе.


5

Моя команда находит реальность перехода на EF немного болезненной. Дело не в том, что EF плох или бесполезен, а в том, что конвертация наших существующих уровней данных (довольно массивных) из строго типизированных наборов данных, происходящих из ADO.Net framework 2.0, в EF - это просто большая интенсивная работа, которая на самом деле не приносит нам что-нибудь. Из-за новых вещей мы все еще довольно разорваны, потому что у всех нас есть мнения и цели. Для наших проектов Silverlight мы ориентируемся исключительно на сервисы EF и RIA, но для веб-проектов (веб-форм и MVC 3) мы в основном используем Linq2Sql.

Мы находим меньше головной боли и ускоряем разработку с использованием Linq2Sql, но я знаю, что Microsoft продвигает повестку дня EF (особенно с услугами WCF и RIA). Linq2Sql никуда не денется, но все новые игрушки и интересные функции будут сосредоточены на EF. Я бы сказал, что если у вас есть выбор на раннем этапе, EF будет хорошим началом. Если вы уже в середине потока, я не знаю, что будет очень легко переключаться.


3

Entity Framework является предпочтительным способом. LinqToSql будет поддерживаться и поддерживаться, но основное внимание при разработке уделяется Entity Framework. Выбор между ADO.NET Entity Framework и LINQ to SQL


а чем ты сейчас пользуешься?
Т. Вебстер

2
Я думаю, что все используют linq2sql
Cnd

@nCdy: Хотя некоторые члены нашей команды считают, что Linq2Sql слишком «болтливый», мы все считаем, что EF автоматически генерирует слишком много ненужного мусора, который L2S просто обходит.
Джоэл Этертон
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.