2009-01-21 138 views
1

我希望在WCF中爲建模服務和操作提供一些指導。WCF中的設計服務和操作

我有一系列的業務領域,每個領域都有我想通過WCF使用的定製方法。我想一個面向對象的看法是這樣的:

interface IBusinessDomain1 
{ 
    MyClass1 Method1(...) 
    MyClass2 Method2(...) 
} 

interface IBusinessDomain2 
{ 
    MyClass3 Method3(...) 
    MyClass4 Method4(...) 
} 

我的自然傾向是讓每個接口的服務,並且每個方法的操作,我有這個問題是個別領域內的操作很可能需要完全不同綁定配置。即Method1可能需要同步,Method2可能需要異步。

當爲WCF定義服務和操作時,更好的方法是從數據類型和數據需要發送的方式來考慮嗎?也許所有業務領域的方法都需要以特定的方式工作,並將這些方法放在一個服務中?我想知道其他人如何解決類似的情況?我見過

大多數WCF教程和示例傾向於使用相當瑣碎的車型,往往是一個「計算器」服務產品「加」,「減」等操作,這些操作都有着相同的約束力。

有關如何處理定義我的服務和操作的建議將受到高度讚賞,或者只是一些指向進一步閱讀的鏈接,因爲我找不到太多東西。

由於提前, 將

回答

3

我認爲你的分組一起合同中關於他們是否被稱爲異步方式是一個壞主意。您仍然應該保留合理的邏輯分組,使其合理。

您還需要詳細說明可能適用於您的合同的不同綁定配置。如果您需要異步調用客戶端上的合同的方法,那麼這是不是該服務商與關心本身,客戶可以選擇生成支持異步操作的合同(在那裏你會得到*開頭和結束*渠道工廠將爲您生成的合同方法)。然而,如果你正在做一些事情,比如讓服務返回一個客戶端返回給服務來檢查狀態的令牌,那麼你可能需要考慮一個回調接口,因爲它可以使你的設計更加乾淨。

如果不同的綁定配置與端點的變化(例如傳輸通道)有關,那麼您可能會考慮針對不同端點的不同合約,但我沒有得到您所尋找的印象這裏。

+0

感謝卡斯帕這是一個有用的答案,給了我一些事情要對閱讀起來。 – WillH 2009-01-23 20:24:10