客戶端開發雜記

記錄並介紹一下在.net客戶端項目開發中的一些瑣碎東西,也許會有人有點用或者有點同感。

一個項目,架構爲服務端基於JAVA開發的WEBSERVICE,客戶端使用.NET 技術開發,因爲在設計客戶端時,公司的領導提出要求但願將來能作成可擴展的而且能夠給第三方的提供接口的可擴展的客戶端,而當時在各類因素下,不能採用WPF進行開發,因此只能作成WINFORM形式的,而且考慮到爲了給第三方留口子,因此使用了MAF。sql

而後關於系統自己因爲保密條款所限,不能講太多業務上的東西。
1.本地數據 因爲系統大量數據是放在ORACLE的,因此對於咱們客戶端來講,本地只須要存放少許的比對數據便可,當時採用了sqlite做爲本地小數據庫。而且,本地數據須要作到定時清理。對於sqlite的數據操做,網上一大把,具體不用詳述。
2.數據傳輸 以前博文裏有,因爲數據量是很是的大,舉例來講,以前咱們的甲方的一個部門又上了個新系統,採購一家在業內屬於該業務龍頭地位的國外大型跨國公司的產品,和咱們具備相同功能的模塊,就是因爲數據量大,致使甲方的網絡癱瘓,最後老外強調,是甲方的網絡不行,不支持千兆以上的。。。。但實際上,他們業務部門用的全是我開發的系統,至今都是,因此這點咱們能夠自豪。固然,咱們的系統仍是能夠更優化,同時向老外學習一些的。咱們首先在數據傳輸上進行了壓縮。其次儘可能減小在xml中的一些無心義的編碼(這點目前在新版的設計中已經改了,xml仍是太大)。
3.因爲採用了MAF的形式,那麼對於客戶端的窗體考慮到業務需求,咱們採用了weifengluo的那個dock,而且修改了其中一些bug以及自行調整了一下。
4.整個系統中最重要的模塊實際上是一個列表窗口。而且是一個只讀的列表窗口。首先列表的字段是能夠設置的,固然這並無什麼。這個列表的特色是數據多,要求能根據某特定查詢條件多開。而且操做方便,支持全鍵盤。由於原來使用這個窗口的業務人員,他們的業務工做至關繁忙,而且,不太會操做鼠標,以及原來不少都是玩相似dos的這種窗口的系統。同時這個窗口須要30秒刷新一次。而且對於此次刷新和上一次的數據若是有不一樣,須要經過顏色來顯示。同時,又不能讓當前使用的人感覺到刷新了,也就是不能跳屏。對於全鍵盤操做,其實這就簡單了,截獲鍵盤輸入,而後進行一些處理。
貼點代碼圖
 
而後是數據的更新和比對問題。
數據的更新那就是比較簡單了,在子線程裏跑,而後處理完了丟到主線程裏更新界面。須要提一下的是,當每打開一個窗口的時候,會把這個窗口對於的查詢條件的數據請求丟到一個觀察者裏,而後當數據發生更新後,通知宿主進行處理。
 
當每次數據變化後通知宿主
對於界面上的操做,
對於界面的操做必需要同步進行
對於界面上一些操做,差很少這些應該能說明點問題吧。
 
還有項目中有個甘特圖,我就不截圖了,直接改的別人家的控件,難度是至關的大,功能也是至關的強大。記得之前截圖和司徒正美的網頁版的甘特比較過,嘿嘿。
 
作這個老版本的系統就2我的寫客戶端,那是至關的累啊。如今新版本的系統已經在開發了,雖然人多了,惋惜原來另外一個小夥伴已經不在了,唉神傷。新版本的是WPF的,會更好,更強。
相關文章
相關標籤/搜索