0

所以在過去,我工作的網站依賴於單層體系結構,將數據訪問直接與應用程序和視圖代碼混合在一起。我最近確信團隊實施數據訪問服務層(API)的優勢;特別是最近關於水平縮放(原生移動應用等)的討論。API數據服務層的最佳解決方案

現在想到的實現方法是使用Entity Framework將數據庫映射到Data Contract類,客戶端將使用WCF服務請求這些類。
我以前在小範圍內使用過這種方法,但現在已經有了大量數據對象的範圍,每個數據對象都有很多標準可以查詢,我在設計如何構建API時遇到了問題。

數據類的示例清單:

  • 產品
  • 商家
  • 品牌
  • 分類
  • 用戶
  • 評價
  • 問題
  • 解答

(希望這些對象是相關的方式已相當明顯,使我的觀點)

服務要求

  • 服務必須與語言無關(.net,php,java,objective c )
  • 模式必須允許作爲一個API(說我們的用戶存儲在MSSQL服務器幾個不同的數據源,我們的評論系統,MySQL和我們的產品都從XML提要)
  • 一定能夠實現目標從API端緩存

這些數據對象中的每一個本質上都需要基於它的幾個列進行查詢(以返回單個對象或集合)。雖然我可以爲每個不同的場景編寫一個新的API方法,但我認爲必須有一個更優雅的方法來完成這個任務。

請求示例:

  • 通過ID獲取單品。
  • 獲取按「創建日期」,「價格」或「折扣」排序的特定商家,品牌或分類的產品列表。
  • 獲取由用戶
  • 所有提交的評論得到一個產品
  • 的所有評論...

在我的研究中,我遇到了這個MSDN Article概述了幾種創建API的標準方法。我有興趣瞭解每種方法的優缺點,以及哪種方法似乎適合我上面描述的最佳模型。

回答

1

基本上有很多模式可以做到這一點。 UI層=>數據訪問層=>核心層 EF用於DAL,CORE中的模型和邏輯。 Core爲其他其他圖層聲明接口和模型。

請在工作模式「庫模式」單位」控制選購。 反轉一些閱讀如果你準備把50USD桌子上,有上http://Pluralsight.com一些優秀的視頻教程,指導您完成這些概念。即使示例應用程序等。50USD在我看來,(1個月的訂閱)用得其所。

我特別朱莉·勒曼建議在pluralsight的視頻EF和企業架構。 一些非常好的建議那裏。

我使用了這樣的圖案,而且效果非常好,

+0

我有複數訂閱。我會檢查出來的。感謝您的指導。我一直在做的所有研究一直在引導着我在很多不同的方向,我開始忽視我需要的東西。 – NSjonas

+0

查看史蒂夫史密斯視頻,然後Julie Lerman視頻,然後查看GLANCE例子的ACCOUNT。如果你沒有研究時間,請直接舉個例子。它使用這樣一種模式,並且他們會完成如何做到這一點。爲旅程開始的人提供了很好的介紹。在一天結束時,像http://my.safaribooksonline.com/book/programming/csharp/0131857258和http://my.safaribooksonline.com/book/software-engineering-and-development/0321125215這樣的實體設計原則是更重要 。 –

+0

再次感謝,我對學校的這些模式/原則有了很高的理解,但我從未親自實施過這些模式/原則。 – NSjonas