Microsoft は先日、抽象構文ツリーを結合したメタデータに$filterと$orderby表現を解析する機能を提供するODataLib ContribからUriParserをサポートしたWCF Data Services 5.2.0をリリースした。これは通常、WCF Data ServicesとWeb APIといった、高いレベルのライブラリで使われている。
filter表現の解析は、FilterClauseオブジェクトを返すParseFilter()メソッドを使う必要がある。このメソッドは以下の4つの引数を受け付ける。
public static FilterClause ParseFilter(string filter, IEdmModel model, IEdmType elementType, IEdmEntitySet entitySet)
FilterClauseオブジェクトのExpressionプロパティには、filter表現の抽象構文ツリーのルートノードが含まれている。単純なswitch-caseプログラムでは、Kindプロパティを使ってノードを解析することができる。
orderby表現の解析は、ParseFilter()メソッドに非常に似ているODataUriParser.ParseOrderByを使う必要がある。MicrosoftのProgram ManagerであるAlex D James氏は、彼のブログで、ODataUriParserを使った $filterと$orderbyの詳細機能を検証した。
WCF Data Services 5.2.0は、非常に巨大なモデルのコード生成でVisual Studioがクラッシュするバグフィックスを提供する。また、新しいJSONフォーマットでIgnoreMissingPropertiesが正しく動作しない問題と、クライアントが新しいJSONフォーマットを使うように設定されている場合、Atomレスポンスが読み込めない問題も修正されている。最新のリリースでは、サービスモデルがenumプロパティを公開してよりよいエラーメッセージを提供する。
"私たちは、全体の安定性とWCF Data Servicesのパフォーマンスに少し投資しており、次のいくつかのリリースで拡張を継続していきます。" とMicrosoftのSQL Connectivityチームで働くdpblogsは言う。
WCF Data Services 5.2.0は、以下のフォーマットで提供されている。
"WCF Data Servicesは多くの機能を持っており、Visual Studio 2012 / LightSwitchとの下位互換がないものがある可能性があります。OData 5.0にはサービス拒否の脆弱性が存在していました。先日リリースされた新しい5.0のリリースでは、この問題を解決しています。" とMicrosoftのVisual Studio製品チームのMatt Evans氏は言う。