Какую проблему пытается решить Microsoft со всеми этими стратегиями доступа к данным? - PullRequest
12 голосов
/ 13 июля 2009

Похоже, у Microsoft много разных стратегий доступа к данным. Это «классический» ADO.NET, Linq2Sql, ADO.NET Entity Framework, службы данных ADO.NET, динамические данные ADO.NET. Я уверен, что я скучал по некоторым. Мне кажется, что существует много путаницы вокруг того, где каждый фреймворк вписывается в архитектуру приложения. Какую проблему пытается решить Microsoft со всеми этими методами доступа к данным?

Ответы [ 5 ]

15 голосов
/ 13 июля 2009

Я не вижу смысла в этом вопросе. На самом деле, это немного троллей.

  • ADO.NET - это оригинальная технология доступа к данным из .NET 1.0. Это явно не относится ни к какому обсуждению новых "стратегий" доступа к данным
  • LINQ to SQL является одним из оригинальных поставщиков LINQ. Он обеспечивает взаимно-однозначное сопоставление между структурами базы данных и типами, используемыми в программе. Он должен был работать с SQL Server
  • ADO.NET Entity Framework более гибок. Он предназначен для работы с любым провайдером ADO.NET и имеет уровень отображения, поэтому программа работает с классами, которые ближе к бизнес-объектам, чем к таблицам базы данных. Например, один объект может включать в себя данные из нескольких таблиц. Microsoft решила тратить больше усилий на EF, чем на LINQ to SQL.
  • ADO.NET Data Services - это слой служб над EF. Если вы собирались создать свой собственный сервис, чтобы ничего не делать, кроме как раскрыть свои данные, тогда это достойная ставка. Он использует интерфейс REST и может предоставлять данные в формате ATOM.
  • ASP.NET Динамические данные не являются стратегией доступа к данным. Смотри http://www.asp.net/dynamicdata/.

Различия достаточно ясны, чтобы их можно было легко понять с помощью тривиальных исследований.

5 голосов
/ 13 июля 2009

Они пытаются решить проблему увеличения продаж и доли рынка. С этой целью различные группы в Microsoft пытаются решить проблему привлечения большего числа разработчиков и конечных пользователей к своим продуктам. Разные группы разрабатывают разные технологии, и, как и любая крупная компания, Microsoft пытается сохранить свои технологии согласованными, а группы работают в одном направлении. Кроме того, по мере появления новых технологий им необходимо поддерживать (или еще лучше устанавливать) темпы, а также продолжать поддерживать более старые технологии, в которые инвестировали их клиенты. Конечным результатом для любой достаточно крупной компании, включая Microsoft, является несколько запутанный выбор технологий.

3 голосов
/ 13 июля 2009

У них была стратегия данных целую вечность. Фактически вы можете и должны искать «Стратегия доступа к данным Microsoft», и вы найдете ссылки старые и новые (т.е. 1998 год и их стратегию OLEDB).

Я думаю, что вы ищете здесь с 2007 года, который, хотя ему уже 2 года, относится к XML, ADO.NET, Data, LINQ, SQL Server, Visual Studio Orcas, Entity Framework. ... они отвечают на вопрос Есть ли у Microsoft стратегия доступа к данным? :

Да, оказывается, мы делаем. Microsoft предусматривает Entity Data Platform, которая позволяет клиентам определить общее Модель данных сущностей через службы данных и приложения. Данные сущности Платформа является многоцелевым видением, с будущими версиями отчетности инструменты, репликация, определение данных, безопасность и т. д. все строится вокруг общая модель данных сущностей. ...

Майк Пиццо, Архитектор, Данные Программируемость

Надеюсь, это поможет.

3 голосов
/ 13 июля 2009

Ваша путаница - наше разочарование. Многие из нас, кто принимает эти архитектурные решения для наших веб-сайтов, подняли руки из-за отсутствия ясности и хороших методов разработки Microsoft по этому вопросу.

Моя команда наверняка сгорела от Linq2Sql.

Теперь мы создаем наш веб-сайт с использованием подхода, ориентированного на домен, и, в частности, Onion Architecture Палермо (http://jeffreypalermo.com/blog/the-onion-architecture-part-1/). Бизнес-объекты являются просто POCO и не зависят от инфраструктуры.

Инфраструктура теперь обрабатывается NHibernate и заказным ORM для нашей CMS. Тяжелые начальные затраты на них были значительно перевешены осознанием того, что сообщество продолжит движение NHibernate в лучшем направлении, и мы контролируем источник нашего ORM. Что еще хуже, Microsoft выпускает нечто действительно привлекательное, работающее в архитектуре DDD, нам просто нужно переписать наш уровень инфраструктуры.

1 голос
/ 13 июля 2009

Я нахожу статью на http://msdn.microsoft.com/en-us/magazine/cc700331.aspx хорошим техническим введением в Entity Framework, если вы не знакомы с базовыми концепциями.

Вот раздел, имеющий отношение к этому вопросу, объясняющий некоторые цели EF и связь с ADO.Net ...

ADO.NET Entity Framework - это эволюция ADO.NET и первая конкретная реализация EDM, обеспечивающая более высокий уровень абстракции при разработке на основе реляционной базы данных. В версии 1.0 команда сконцентрировалась на создании основы платформы, а не просто простого ORM, который позволит разработчикам работать с концептуальной или объектной моделью с очень гибким отображением и способностью приспосабливаться к высокой степени. дивергенции от основного магазина.

Эта высокая степень гибкости и отклонения от базового хранилища является ключом к раздельному развитию базы данных и приложений. Когда в схему базы данных вносятся изменения, приложение изолируется от изменений Entity Framework, и вам часто не требуется переписывать части приложения, а просто обновлять файлы сопоставления, если это необходимо, чтобы учесть изменения.

Чтобы начать развитие платформы ADO.NET, платформа Entity Framework построена на основе существующей модели поставщиков ADO.NET 2.0, при этом существующие поставщики немного обновлены для поддержки новой функциональности Entity Framework и ADO.NET 3.5. Мы решили реализовать поверх существующей модели провайдера ADO.NET, чтобы обеспечить модель провайдера, знакомую сообществу разработчиков.

...