ASP.NET Web API已支持OData v4.0,但WCF不會

jopen 10年前發布 | 17K 次閱讀 ASP.NET

  英文原文:ASP.NET Web API Gets OData v4.0 Support, WCF Will Not

  ASP.NET Web API 2.2 for OData v4.0 每日構建版現已發布。團隊還在 nuget 上發布了 OData 核心庫 6.1 版,其中包含數項 Bug 修復和新功能,尤其是增加了對 OData v4 規范的支持。不過,微軟的團隊表示,WCF 將不會獲得 OData v4 的特有功能。

  最近,OData v4.0 和 OData JSON Format v4.0被采納為一項 OASIS 標準。讀者可以查看 OData v4.0 有哪些新功能

  以下是 ASP.NET Web API 2.2 和 OData 核心庫的改進——

  • 協議和格式從 V3 變到 V4
  • OData 屬性路由
  • 支持在 OData 模型中定義函數并綁定到控制器動作
  • 模型別名——允許 OData 模型和 CLR Types 的類型或屬性有不同的名稱
  • 可以定義模型的哪些屬性能夠過濾、排序、擴展或導航
  • 支持 ETags
  • 支持枚舉
  • 支持$format 查詢字符串選項,因此客戶端可以指定格式
  • 支持單例
  • 支持包含
  • </ul>

      已知的局限性——

    • 還有許多 OData v4 功能不支持——此次發布的重點是與早期版本同等的功能以及少數幾項新功能
    • OData 核心庫能夠序列化 OData v4 Atom 格式,但由于 Atom 規范還沒有進入 CS2 階段,所以這不是官方支持。
    • </ul>

        在客戶端方面,有一個新程序包,但只支持 OData v4.0——如果客戶端需要使用 V1-3 以及 V4 的服務,那么開發人員不得不在應用程序中同時使用新舊程序包。

        一個有些爭議的決定是,在使 WCF 成為一個構建 OData 服務的技術棧方面減少投資。OData Services 團隊是這樣說的——

      ……對于作為創建 OData 服務技術棧的 WCF Data Services,我們確實計劃減少對它的投資。為了減輕由此造成的不便,我們正努力清理代碼,以便使它與 OData v4 兼容,而之后,我們會將該技術棧開源。我們不計劃在將 V4 的特有功能添加到 WCF DS 技術棧方面進行任何重大的投資。

      </blockquote>

        不過,社區仍然希望 WCF 能支持 OData 4.0。Adam 說——

      由于我們的業務層是用 WCF DS 編寫的,所以對于這個決定,我覺得我們被扔在了車輪下。我們已經花費了這么多精力來克服 WCF DS 的弱點(變更跟蹤支持、性能、包含、客戶端代理的可憐的 T4 支持、糟糕的 EF6 alpha 質量提供程序等),愉快地等待新的 v4 版本的發布,想不到事到如今你們竟然放棄了它。這時候切換到 Web API,看來是我們為你們的每個決定買單。我們可是微軟的黃金合作伙伴。

      </blockquote>

        還有其他人要求在 WCF 中支持 OData v4.0。我們只能等等看,微軟是否會改變這項決定。

        讀者可以從編寫一個 OData v4.0 服務入手,并使用 OData 客戶端代碼生成器來生成客戶端代理類。

      來自: InfoQ
                          <span id="shareA4" class="fl">                          </span>
       本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
       轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
       本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!