2010-07-26 69 views
0

我們在我們公司實施了大量服務,並且遇到了與數據合同有關的版本問題。我們遇到的問題之一是我們的數據合同也被用作服務背後實際應用的模型。我想知道其他人在這種情況下采取了什麼方法,或者僅僅是服務版本。我知道微軟最佳實踐指南,但想知道是否有人對如何版本有任何其他想法。接近WCF服務版本控制

回答

0

我們已經實現的方式是在業務層上構建一個facade層。

外觀層使用數據合同中定義的對象與世界其他地方進行對話。

在將數據發送到業務層之前,外觀層將對象映射到內部對象。

這會將系統的內部功能與數據合同中使用的對象隔離開來。

2

Services,Business Object!= Message Object的第一條規則。基本上,絕對不要將您的業務對象公開爲數據合同。或者正如我想說的,你不能傳真一隻貓。您可以發送貓的傳真,但不能通過電線發送貓。這裏有一個偉大的圖片提醒你:http://www.humorhound.com/2009/04/demotivational-poster-youre-doing-it-wrong/

在更現代的術語中,它確實是MVVM模式。域圖層使用的模型視圖不是爲客戶端構建的,因此您必須爲其他圖層創建單獨的模型和視圖。是的,它看起來有很多工作要做,但最終它是構建面向服務的應用程序的一種更容易和更好的方法。版本控制只是讓生活更輕鬆的一種方式。另一件重要的事情是,你傾向於構建模型,圍繞它將如何使用,並且結束更多的代碼(不太瘋狂的分支)。