WCF變更行為基本意義淺析
WCF服務的操作是一個比較靈活的操作技巧,如果想要徹底掌握這些應用技術(shù),就需要我們不斷的去實踐中總結(jié)經(jīng)驗。首先我們來了解一下什么事WCF變更行為。在進行如何處理變更之前,需要解釋一下WCF變更行為是什么意思。以下列出構(gòu)成變更的一些行為(按照契約類型列出):#t#
數(shù)據(jù)契約
添加數(shù)據(jù)成員
刪除數(shù)據(jù)成員
重命名數(shù)據(jù)成員
改變數(shù)據(jù)成員類型
服務契約
添加操作
刪除操作
重命名服務契約
操作契約
重命名操作
改變操作簽名
這些WCF變更行為可能會導致新的商業(yè)需求,硬件整合,業(yè)務合并,新的規(guī)則或者一些其他的外部因素。底線是在開發(fā)者的控制變更以外的一些東西,并且軟件必須進行調(diào)整。在WCF世界中處理變更是好消息或壞消息不斷出現(xiàn)的過程。你可以很容易的處理一些方案,而其它的會引導你給出"yes, but…"這樣可怕的回應。
在WCF中的版本控制和WCF變更行為WCF變更行為
在.NET世界中,處理變更***個需要考慮的問題就是版本控制。你可以組合版本允許在以后組件的修訂版本中有意料之外的或是終止的變更。這樣以來,受到影響的客戶可以繼續(xù)使用舊版本的組合,你也可以避免因為這終止性的變更而感到頭疼。
正常合乎邏輯的問題是“WCF支持版本控制嗎?”回答也是那個可怕的"yes, but…"。當你在WCF中創(chuàng)建一個數(shù)據(jù)契約的時候,該契約會產(chǎn)生一個XML構(gòu)架。Consumers引用這個構(gòu)架并使用它生成一個代理類。嚴格的說,這個數(shù)據(jù)不能驗證這個構(gòu)架是否能繼續(xù)進行。但是你將會看到,這個有時候會對導致服務 consumers一些意外的而且是令人沮喪的行為。
- namespace SampleService
- {
- [ServiceContract]
- public interface IPersonService
- {
- [OperationContract]
- Person GetPerson(int personId);
- [OperationContract]
- void UpdatePerson(Person p);
- }
- public class Person
- {
- private string _firstName = string.Empty;
- private string _lastName = string.Empty;
- [DataMember]
- public string FirstName
- {
- get { return _firstName; }
- set { _firstName = value; }
- }
- [DataMember]
- public string LastName
- {
- get { return _lastName; }
- set { _lastName = value; }
- }
- }
- }
以上就是我們對WCF變更行為的相關(guān)介紹。