WCF Data Servicesの新機能 – Feed Customization

WCF Data Servicesの新機能4)Feed Customization をご紹介します。(2/24に実施されたTechDaysセッションのフォローアップも兼ねています)

このシリーズの目次は以下になります。
1) WCF Data Servicesの新機能 – 射影
2) WCF Data Servicesの新機能 – カウント
3) WCF Data Servicesの新機能 – Server Driven Paging(SDP)
4) WCF Data Servicesの新機能 – Feed Customization
5) WCF Data Servicesの新機能 – データバインド
6) WCF Data Servicesの新機能 – カスタムプロバイダ1
7) WCF Data Servicesの新機能 – カスタムプロバイダ2
8) WCF Data Servicesの新機能 – リクエストパイプライン
9)Open Data Protocolの実装 – Share Point Server 2010のデータを操作する

また以下のトピックに関しては1)の記事を参照してください。
■名称の変更
■新バージョン
■更新モジュール(開発環境)
■今回の説明で使用するDataService

■Feed Customization (Web Friendly Feeds)
WCF Data Servfices(ADO.NET Data Services)はAtomPubをフォーマットとして用いるのですが、従来、そこで使われているAuthorやTitleなどの情報をデータとして使用することはできませんでした。
例えば、Blogサービスなどを作成する場合などは、本来のAtomがもつ情報の利用が望ましいはずです。

v1.5では以下のように実装することが可能です。

Entity Data Medelの.edmxファイルをXMLで開きCSDL部分を手で編集します。

まず、CSDLのRootに対して以下のように名前空間を定義します。

<edmx:ConceptualModels xmlns:m2="https://schemas.microsoft.com/ado/2007/08/dataservices/metadata">

次に使用したいメンバーに対して、Atomのどの情報とマップするかを定義します。下記でBoldになっている部分が追記した個所です。この指定は、jobsエンティティのjob_descをAtomのTitleとするように指定しています。

<!--Feed Customization このメンバーをタイトルにする-->
<Property Name="job_desc"
          Type="String"
          Nullable="false"
          MaxLength="50"
          Unicode="false"
          FixedLength="false"
          m2:FC_TargetPath="SyndicationTitle"
m2:FC_EpmContentKind="Plaintext"
m2:FC_EpmKeepInContent="true"
/>

後は通常通り使用するだけです。Jobsエンティティをクエリーすると以下のようにTitleタグにjob_descの値が表示されているのが分かります。

image

下図のようにブラウザの指定(フィードの読みとりビューを有効にするをOnにする)を変更すると・・・

image

いつものXMLではなく、IEならば下図の様なフィードの購読画面においても、Title(job_desc)を確認することができます。

image

他にも設定できる項目がありますので、詳細は下からどうぞ(ただし、現時点では少々古い情報になっています。ほどなく最新になると思いますが。)
https://msdn.microsoft.com/ja-jp/library/ee373839(VS.100).aspx