經驗之談WCF選擇綁定
WCF有很多值得學習的地方,這里我們主要介紹WCF選擇綁定,包括介紹使用綁定等方面。為WCF選擇綁定服務應該遵循圖所示的決策活動圖表。首先需要確認服務是否需要與非WCF的客戶端交互。如果是,同時客戶端又是舊的MSMQ客戶端,選擇MsmqIntegrationBinding綁定就能夠使得服務通過MSMQ與該客戶端實現互操作。如果服務需要與非WCF客戶端交互,并且該客戶端期望調用基本的Web服務協議(ASMX Web服務),那么選擇BasicHttpBinding綁定就能夠模擬
#T#ASMX Web服務(即WSI-Basic Profile)公開WCF服務。缺點是我們無法使用大多數最新的WS-*協議的優勢。但是,如果非WCF客戶端能夠識別這些標準,就應該選擇其中一種 WS綁定,例如WSHttpBinding、WSFederationBinding或者WSDualHttpBinding。如果假定客戶端為WCF客戶端,同時需要支持脫機或斷開狀態下的交互,則可以選擇NetMsmqBinding使用MSMQ傳輸消息。如果客戶端需要聯機通信,但是需要跨機器邊界調用,則應該選擇NetTcpBinding通過TCP協議進行通信。如果相同機器上的客戶端同時又是服務,選擇NetNamePipeBinding使用命名管道可以使性能達到最優化。如果基于額外的標準,例如回調(選擇WSDualHttpBinding)或者聯邦安全(選擇 WSFederationBinding),則應對選擇的綁定進行微調。
注意:即使超出了使用的目標場景,大多數綁定工作仍然良好。例如,我們可以使用TCP綁定實現相同機器甚至進程內的通信;我們也可以使用基本綁定實現Intranet中WCF對WCF的通信。然而,我們還是應盡量按照圖WCF選擇綁定。
使用綁定:每種綁定都提供了多種可配置的屬性。綁定有三種工作模式。如果內建綁定符合開發者的需求,就可以直接使用它們。我們也可以對綁定的某些屬性如事務傳播、可靠性和安全性進行調整與配置,還可以定制自己的綁定。最常見的情況是使用已有的綁定,然后只對綁定的幾個方面進行配置。應用程序開發者幾乎不需要編寫定制綁定,但這卻是框架開發者可能需要做的工作。