您好,登錄后才能下訂單哦!
本篇內容介紹了“由Winform轉入WCF的實例分析”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
小生是做Winform出身的,最近一直想往BS方面轉,覺得WCF對我是一個好的切入點,于是看了一些WCF的資料,個人感覺,去學習一門技術,是容易的,難的是怎么把這門技術和自己己有的知識融會貫通,我學習WCF的動機比較簡單的,先學習了WCF,把自己現的Winform的系統的業務邏輯封裝在WCF,形成Winform +WCF的結構,然后再著手進行BS的系統。
即
Step 1.Winform + 本地業務邏輯
Step 2.Winform + WCF
Step 3.Winform + Browser + WCF
Step 4.Browser + WCF
但是剛一開始接觸WCF ,感覺很不習慣 ,原因很簡單。
但如我有一個類。
class A{ A(String id); void op(){}; B getB(){}; String p1{get;set;} } class B{ string id; void op2(); }
在這里,我是沒辦法直接將A轉為一個服務的,原因很簡單,如果A作為服務以后,那么B只能作為這個一個服務的數據約來實現。
B的操作op2就實現不了。
剛開始,很不理解 ,覺得這樣設計就相當于沖突了。因為, 即使A,B都作為服務,管理起來也很混亂 。
而網上關于WCF的教程,都是實現方面的。
沒有設計方面的介紹。
自己想了一下,呵呵,達人們不要笑,這個對俺確實很難,俺得弄清楚這些的事的來龍。
覺得在真正的服務的實現中,相當于把一個類的操作和數據分開,來降低粒度和耦合,這和OO的思想是不沖突 。
在WCF中,對A,B的邏輯應該如下處理.
首先對于A,把A分解成ServiceA和DataContractA兩個類,其中ServiceA作為WCF的服務契約,而DataContractA作為數據契約
Code class ServiceA{ DataContractA Op(DataContract A);//對應于A.op() DataContractA GetDataContractA(string id);//對應于A的構造函數 DataContractB GetB(DataContrac A);//對應于A.getB() } class DataContractA{ String p1{get;set;}//對于應A的屬性p1 }
對于Class B也做類似處理。
class ServiceB{ DataContractB Op2(DataContractB b);//對應于B.op2 } class DataContractB{ string id{get;set;}//對應于b.id }
這樣,原來的邏輯很正常過渡到WCF服務了
“由Winform轉入WCF的實例分析”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。