2010-05-11 66 views
7

一段時間以來,我和我的團隊一直在Web服務外觀(使用WCF)中包裝我們的數據訪問層,並從業務邏輯層調用它。與此同時,我們可以簡單地使用存儲庫模式,其中業務邏輯層通過接口在本地使用數據訪問層,並且在任何時候,我們都可以改變它以創建服務(如果需要)。包裝或不包裝:在服務外觀中包裝數據訪問

問題是:什麼時候將數據訪問層包裝在服務門面中,何時不是它?現在看起來主要優勢在於其他應用程序可以使用該服務,但是如果它們是使用.NET編寫的內部應用程序,那麼它們可以僅使用.NET程序集。將DAL包裝在我不知道的服務中是否還有其他優點?

+0

即使對於內部應用程序,如果您的程序集有許多用戶,直接使用.NET程序集也可能是PITA更新,但webservice會更加流水線化。 – Nate 2010-05-11 15:06:36

+0

這是一個很好的問題...與序列化/傳輸/反序列化有關的開銷可能非常昂貴,因此考慮其他模型是有意義的。另一方面,擁有服務外觀可以使數據更容易豐富和轉換。這種模式的另一個不錯的方面是能夠整合排隊的端點以滿足即時存儲需求。 – JoeGeeky 2010-05-13 20:36:31

回答

2

這真的取決於數據服務將被使用的方式/方式。如果只有少數應用程序,這並不是什麼大問題,但是如果你有很多應用程序和數據方面的很多變化,那麼推出更新的版本並確保你不會中斷現有的應用。

有了WCF,你可以版本服務,這將有助於緩解這種風險。所以實際上很大程度上取決於消費者的數量,消費者的位置(內部/外部)以及更新的頻率。

這至少是我在評估時使用的。