今天掙扎着這個。設計一個API:使用數據層對象還是複製/複製?
重寫一個基於web的應用程序;我願做這樣的方式:
- 所有交易都要經過一個Web服務API(類似http://api.myapplication.com),使客戶可以與他們的數據工作我們做的/一切,他們可以通過我們提供的web界面做同樣的方式,他們還可以做編程
- 類庫作爲一個數據層(SQL +實體框架),爲一對夫婦設計的原因,都沒有涉及這個問題
問題是,如果我選擇不暴露實體框架對象救援人員到場呃Web服務,重新創建實體框架對象的「API」版本,然後編寫所有「代理」代碼來複制屬性是很多工作。
這裏最好的做法是什麼?吸取它併爲每個對象創建一個API模型類,或只使用實體框架版本?
任何捷徑這裏從那些你們誰一直沿着這條道路和查處版本/向後兼容,其他頭痛?
編輯:反饋後,讓更多的意義可能是:
- 數據/服務層 - 通過公共網絡接口直接和Web服務API
- 網絡使用DLL服務API - 使用特定於API的對象和代理代碼幾乎精確地複製服務層方法/對象
順便說一句,「我們使用自己的Web服務」背後的想法是,如果做出影響客戶應用程序的決定,我們也會感到痛苦......好主意? – Brandon 2011-02-25 18:16:58
爲您的應用程序使用與提供給客戶相同的服務層是很好的,但是您應該直接使用它(直接調用服務方法),而無需WCF傳輸。 – 2011-02-25 18:20:52
只是爲了闡述一點:WCF在每個請求周圍添加了大量額外的「包裝」。通過強制你的網站不斷創建這個包裝並通過網絡發送它可以大大增加你的內部網絡流量,並因此人爲地降低你的機器的可用性。這是毫無意義的,而且通常是不被接受的。 – NotMe 2011-02-25 18:33:03