Как стать автором
Обновить

ADO.NET Data Services — что нас ждет в будущем

.NET
Примерно чуть больше года назад мы с вами увидели новую тогда платформу для построения сервисов – ADO.NET Data Services. Ее появление ознаменовало начало широкого использования REST-подхода большим количеством разработчиков. Тогда эта платформа представлялась как удобный инструмент для получения доступа к данным через протокол HTTP.

За прошедшее время можно уже понять, что этот инструмент является действительно удачным – огромное число разработчиков начали немедленно использовать его в своих проектах. Причина этому вполне логична – использование ADO.NET Data Services позволяет сократить расходы на реализацию наиболее типичных сценариев при работе с сервисами. Это не означает что SOAP-сервисы и WCF ушли в прошлое, однако, в сценариях обращения к данным предпочтение стали отдавать ADO.NET Data Services.

Несмотря на то, что эта платформа имела некоторые изъяны при работе в нестандартных ситуациях, ее реализация получилась достаточно успешной. Поэтому среди разработчиков могло сложиться неправильное впечатление о том, что развитие проекта ADO.NET Data Services остановилось. Это не так. Здесь я расскажу о том, что нам предстоит увидеть в новых версиях этого продукта и о том, куда вообще движется это направление.

Как известно в статусе RTM сейчас находится ADO.NET Data Services 1.0. Впоследствии в планах стоит выпуск версии 1.5, которая будет частью .NET 4.0 и Visual Studio 2010. На данный момент версия 1.5 находится в состоянии CTP2.

Что интересно, дальнейшее направление развитие проекта выбиралось исходя из комментариев, которые шли от сообщества разработчиков. Таким образом, версия 1.5 сфокусируется на более тесной интеграции с приложениями WPF/Silverlight, расширит возможности по выполнению серверных запросов и позволит еще более удобно использовать сервисы на клиентской стороне.

Новых возможностей ADO.NET Data Services 1.5 действительно много и мы будем обсуждать их с вами в ближайшее время. А сейчас я хочу сделать небольшой обзор того, что нам предстоит увидеть в новой версии.

  • Одно из слабых мест ADO.NET Data Services на данный момент является то, что в каких-то сценариях мы вынуждены загружать на клиент избыточное количество данных. Например, если сущность содержит 40 полей, то при обращении к соответствующей коллекции мы вынуждены загружать все эти 40 полей. На данный момент для таких ситуаций предлагается разбивать сущности на более мелкие и работать с ними отдельно, а для общей выборки генерировать представление с объединением. Однако, все это создает дополнительные проблемы при разработке. Другой еще более неприятной проблемой является то, что в случае необходимости получить количество объектов в коллекции мы вынуждены загружать всю коллекцию целиком и уже на клиенте считать количество объектов. В новой версии ADO.NET Data Services этим проблемам уделено особое внимание. Теперь мы сможем выбрать на клиенте проекции каких-либо данных, а не только целиком всю сущность. Например, при помощи запроса мы можем выбрать только несколько полей и работать с ними. Кроме того, появился новый оператор $count, который позволит получить количество сущностей в коллекции.
  • Поскольку для построения приложений все чаще используют платформы WPF и Silverlight в новой версии ADO.NET Data Services уделено особое внимание связыванию (binding) данных. Этот механизм достаточно успешно применяется в проектах WPF/Silverlight и декларативное связывание с данными стало уже привычным подходом к разработке. В новой версии все сущности, которые генерируются на клиенте будут реализовывать интерфейс INotifyPropertyChanged благодаря чему станет возможным осуществлять декларативное связывание с данными сервиса.
  • Также в новой версии рассматриваемой платформы уделено внимание работе с данными большого объема (BLOB), например, с изображениями. Также поля будут особым образом выделяться в метаданных и загружаться на клиентскую сторону только при необходимости. Кроме того, будет доступен режим принудительного включения режима отображения данных в виде страниц. Это означает, что если вы имеете достаточно большую коллекцию, то пользователю она будет отдаваться только частями. Аналогичный функционал мы могли получить и в первой версии при использовании операторов Take/Skip, но при обращении ко всей коллекции тем не менее выдавались все данные, что могло привести к дополнительной нагрузке на сервер.
  • Взаимодействие с другими платформами. Несмотря на то, что сервисы ADO.NET Data Services строятся на основе открытых стандартов, для работы с этими сервисами, например, из Java необходимо разбирать ответы от сервиса и генерировать запросы вручную. Для облегчения этой задачи в рамках версии 1.5 реализован механизм изменения внешнего вида ответа (feed customization). Кроме того, уже начали появляться клиентские библиотеки для работы с сервисами ADO.NET Data Services, например, PHP Toolkit for ADO.NET Data Services, который мы конечно же также рассмотрим.

Таким образом, видны основные тенденции и направления куда движется проект ADO.NET Data Services и что нам следует ожидать от него в ближайшее время.

Напоследок хочу упомянуть о том, что кроме того, что ADO.NET Data Services существует как отдельный продукт он также используется в качестве основы и для других технологий Microsoft. Например, платформа .NET RIA Services, позволяющая очень удобно строить RIA-приложения на основе Silverlight очень активно использует ADO.NET Data Services для обеспечения взаимодействия серверной стороны и клиента. Еще более амбициозный случай – проект SQL Azure, который позволяет разместить ваши данные в облаке в рамках облачной платформы Windows Azure. Это еще раз подтверждает то, что ADO.NET Data Services – это действительно эффективный и надежный инструмент, которому можно доверить вопросы сервисного взаимодействия.

В ближайшее время мы поговорим более подробно о каждой из возможностей ADO.NET Data Services v.1.5, а сейчас хочу пожелать вам успехов в построении ваших распределенных приложений!
Теги:microsoftado.net data services
Хабы: .NET
Всего голосов 21: ↑13 и ↓8+5
Просмотры1.4K

Похожие публикации

Лучшие публикации за сутки