19

私たちのプロジェクトは現在、Silverlightを使用してOdataサービスを利用しています。これにより、ODataサービスを参照するだけで、生成されたサービス参照/エンティティが得られるため、作業が非常に簡単になりました。

ただし、Html(html5)に移行する必要があるかどうかについてはいくつかの議論があります。この変更を行った場合に何が期待できるか知りたいのですが。もちろん、jQueryのようなフレームワークを活用します。

  • 私の主な関心事は、JavaScript/jQueryを介して同じODataサービスをどのように利用するかです。
  • このODataサービスから返されたエンティティをどのように逆シリアル化/シリアル化すると想定しますか?
  • 私たちのデータ契約はハードコーディングされているはずですか(もしそうなら、これは私たちにとって本当に受け入れられません)?

ありがとう!

4

4 に答える 4

16

ODataソースはデータをJSONとして返すことができるため、WebページはデータをXHRして、JSONとして受信し、Javascriptオブジェクトに逆シリアル化して、分解して処理または表示することができます。

開始するための追加のリンクは次のとおりです。

HTH。

于 2012-04-11T19:23:31.870 に答える
11

また、JavaScriptからのODataの消費を大幅に高速化するData.js(http://datajs.codeplex.com/)と呼ばれる非常にクールな小さなライブラリも作成しました。これがCoffeeScriptのサンプルです:

success = (data) -> $("#searchResultsTemplate").tmpl(data).appendTo("#resultsArea")
error = (err) -> $("#resultsArea").text(JSON.stringify(err.message))

do ->
  $("#search").click(->
    OData.defaultHttpClient.enableJsonpCallback = true
    OData.read("http://odata.netflix.com/v2/Catalog/Titles?$top=5", success, error))

そしてそれが生成するJavaScript:

 success = function(data) {
    return $("#searchResultsTemplate").tmpl(data).appendTo("#resultsArea");
  };

  error = function(err) {
    return $("#resultsArea").text(JSON.stringify(err.message));
  };

  (function() {
    return $("#search").click(function() {
      OData.defaultHttpClient.enableJsonpCallback = true;
      return OData.read("http://odata.netflix.com/v2/Catalog/Titles?$top=5", success, error);
    });
  })();

これまでのところ、CoffeeScript、jQuery、Knockout.jsでの使用に成功しています。

于 2012-04-12T00:03:23.737 に答える
3

別の方法として、oDataをサポートしているJayDataにショットを与えることができます-supercooldatajsライブラリに基づいています。複数のストレージプロバイダーまたはプロトコルに抽象データアクセスレイヤーを提供します。そのうちの1つはODataです。

上記のクエリは次のようになります

var  source = new $data.yourOdataContext({serviceUri:"http://odata.netflix.com/v2/Catalog"});

source.Titles
  .take(5)
  .forEach( function(catalog) { render(catalog); });

これが.../Titles?$ filter = 5に変換されるとは思わないかもしれませんが、単純な構文が示唆している場合でも、クライアントで操作は実行されません。

JayDataは、ES5標準フィルター関数を使用してデータをクエリできるJavaScript言語クエリ(JSLQ)を提供します。すべてJavaScriptを使用し、ODataクエリ構文の知識は必要ありません。

于 2012-05-02T13:52:25.620 に答える
1

テーブルにデータを表示し、並べ替え、ページング、検索を使用する場合は、jQuerydataTablesプラグインhttps://www.datatables.net/とODataコネクタhttp://vpllan.github.io/jQuery.dataTablesを使用できます。 oData /

dataTablesが操作を実行するため、追加のプログラミングは必要ありません。

于 2014-03-04T22:47:46.030 に答える