ADO.NET Data Services: что нас ждет в будущем
Примерно чуть больше года назад мы с вами увидели новую тогда платформу для построения сервисов - 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, а сейчас хочу пожелать вам успехов в построении ваших распределенных приложений!
Автор: sergey.zwezdin
По теме
- .NET станет открытой платформой
- Microsoft предложит клиентам компилятор в виде сервиса?
- Microsoft и Telefonica объединили усилия в создании приложений для ТВ, ПК и телефонов
- Выпущена RC-версия ASP.NET MVC 3
- Microsoft выпустила менеджер пакетов для .Net
- Microsoft выпустила вторую бета-версию WebMatrix
- Microsoft опубликовала предварительную версию ASP.Net MVC 3
- Microsoft начала тестирование бесплатного продукта для разработки веб-сайтов
- ADO.NET Data Services 1.5: проекции
- Microsoft выпустила ADO.NET Data Services v.1.5 CTP2