2つめは「ADO.NET Data Services」である。これは、XMLやJSONを利用したWebアプリケーションどうしの連携が、当然のように行われるようになってきた流れへの対応である。

たとえばAjaxアプリケーションを作成するときには、クライアント側のJavaScriptからサーバ側にアクセスし、RDBのテーブルが持っているレコードを操作できるようにする必要がある。例を挙げると、社員というテーブルに対し「名前や年齢といったさまざまな属性で検索できるようにする」「社員テーブルの情報だけでなく、社員が所属する部署名などの情報も、部署テーブルから合わせて取得できるようにする」あるいは「検索結果はXMLだけでなく、JSONでも取得できるようにする」など、さまざまな機能が必要となってくる。このような機能を、ひとつひとつのテーブルについて実装しようとすると、それなりの時間と労力が必要となる。そこで、ADO.NET Data Servicesを使用することで、RDBのテーブルなどをモデリングした情報を元にして、外部からレコードを取得するためのWebサービスを簡単に作成できるわけである。

もちろん従来のASP.NETでも、SOAP経由で外部に対してデータの公開を行うことは容易にできた。しかしSOAP自体が、開発ツールによる複雑なスケルトンコードの自動生成機能と静的型付けの言語の利用を念頭に置いていることもあり、JavaScriptやPerl、Ruby、Pythonといったスクリプト言語からは、なかなか利用しにくいという側面があった。

そこで、ADO.NET Data Servicesでは、URI(URL)によってデータの操作方法を指定できる、いわゆるRESTfulなインタフェースをサポートしている。たとえば「http://www.example.com/Service1.svc/persons(123)/」というURLにGETのリクエストを送信することで、PersonテーブルからIdが123のレコードを取得することができる、といった具合である。つまりADO.NET Data Servicesを利用することによって、Ajaxアプリケーションからの接続や、スクリプト言語で記述された外部のWebアプリケーションとの連携も容易に行えるようになるわけである。