我想很多人都有想寫一個自己框架的願望,然后各種應用都可以使用。可是由於各種原因,很多時候也是在想象中,並沒有自己一步一步去實現,而我也是這其中的一員。不管你是新手跟着我一起做還是大牛批評指點,歡迎訪問,不管是板磚還是表演既然來了何不留下痕跡做紀念呢?
人生需要規划,架構也一樣,沒有計划的最終會偏離原先的設想。
就像阿甘正傳中給船起名字一樣,沒有名字的船是不吉祥的,所以他給船起了珍妮號,他最喜歡女孩的名字。我也給自己框架起個名字吧,本人光棍一個,就起我外號廣林的縮寫吧GL。
首先,指定我們的初步目標,我希望我的框架涉及以下功能點
1.首先語言使用C#語言
2.我們要做的是CS架構
3.另外我希望我的框架的是靈活可擴展的,所以這是一個插件平台
4.通信方面使用的WCF
5.Client端使用WPF界面展示,這樣就可以做出很吸引人的程序。我記得有一句話是這么說的,一個擁有好的展現手法,爛的框架的項目,可能不會通過,但是一個好的框架,沒有一個很好的表現手法這個項目肯定不會通過。這就像我們都喜歡美女一樣。
6.異常機制不可缺失,沒有異常機制的平台,我想它應該不好
好了,有了我們的初步目標了,下一步就是基本框架設計了
一個服務端對應多個客戶端,每個客戶端在服務端建立相應的Session,客戶端每打開一個頁面,服務端在對應的Session里建立相應的頁面服務,客戶端與服務端數據交換采用WCF,一個簡易的框架涉及這樣就有了,大家覺得有什么不妥的地方或者改進的地方可以留言給我,這只是我的初步設想,沒有接觸到太多架構方面的東西,歡迎大家推薦一些優秀設計交流。
沒有清晰的思路做起事情來就顯得笨手笨腳的,下面就來設計我的頁面接口吧
我覺得頁面的生命周期的初始化與關閉不可少,另外客戶端與服務端通信是必須的,這樣頁面接口清晰明了,我們后面的設計也會得心應手了。
既然有頁面,那么客戶端服務端的頁面就會有很多,如果沒有合理的設計就會混亂,那么頁面管理需求就有了
好吧,我承認我不怎么會用Visio,設計個屬性都不會,返回值參數都沒有,圖示大家能看懂就行了,有潔癖的同學輕拍就好,上圖示例就是簡單的頁面管理器的設計接口,我們的目標又明確一步了。
一個服務端是有很多客戶端連接的,那就離不開Session了
Session的作用就是針對每一個客戶端建立的服務作用域,方便服務端生命周期管理,
有細粒度對象就需要管理,Session管理器就有了
基本設計都有了,設計目標清晰明了,下面就是動手的時刻,這一篇就到這里吧,我們就具體動手實戰了,有興趣的同學歡迎收聽。