1. 程式人生 > >[連載]《C#通訊(串列埠和網路)框架的設計與實現》- 0.前言

[連載]《C#通訊(串列埠和網路)框架的設計與實現》- 0.前言

                              目       錄

  1. 前言

前言

      剛參加工作,使用過VB、VC開發軟體,隨著C#的崛起,聽說是C++++,公司決定以後開發軟體使用C#,憑藉在書市5塊錢買C#程式設計入門書籍,開始了職業生涯。開發C/S、B/S結構的軟體是必不可少的,又涉及到Remoting、WebService、執行緒、非同步等不知所云的技術。到現在為止,不敢妄稱精通,卻也使用熟練;研讀Framework原始碼,不敢說全部搞懂,卻對技術提高有很大幫助。

      身在傳統行業,確實感覺到引入網際網路的思維方式的重要性,在傳統行業產品、使用者群體的基礎上實現增值服務。親自設計、開發遠端E服務系統,客戶端、服務端、Web管理系統、移動APP(Android)程式等,無不身先士卒。整個系統雛形基本完成,領導也是眼前一亮,讚歎是個好東西。作為有理想、有目標的程式猿,只為能夠推動公司發展、進而實現個人的發展。奈何當時還沒有 “網際網路+”的概念,職能部門之間存在認識上的差異,專案推進緩慢,處於半死狀態。對於不見兔子不撒鷹的做事風格,對新鮮事物反應遲鈍也屬於情理之中的事。

       想想多年來,有什麼拿的出手的作品呢,對於認為開發軟體是一門藝術的人來說是值得思考的問題。思考良久,只有通訊(串列埠和網路)平臺(SuperIO)能拿來和大家分享,形成了產品,可以供大家進行二次開發。

       當年,拿著框架的介面和簡要介紹去面試,被錄用後,到談薪水時,部門領導說這個“軟體”很簡單。如果是為了壓低薪水,是可以理解的。但是,作為工程師、開發者、設計者、構架師等一類人群,最反感聽到某某人說:這個很簡單;這個很容易實現;這個很短時間就能完成……諸如此類的話。SuperIO作為一個輕型通訊框架,可以提高複用、降低工作量,那麼就是有價值的。

       說到框架,網際網路上有很多供我們使用的框架。通訊框架、訊息佇列框架、分散式任務框架、Web開發框架等等,而且都是免費的。所以,我們應該感謝網際網路,對於技術方面更多元、更開放、更高效。

       對於工程師來說,很崇拜、羨慕那些造輪子的人,我也是如此。但是,大部分人都是在用輪子,站在巨人肩膀上前進,更多關注實現的業務。我算不上造輪子的人,也只是根據公司的業務形成了一個通用的軟體框架。

       什麼是好的框架?不是自己說了算。從開發者的角度來看,過了N年,還有修改的動力、還有擴充套件的餘地;從二次開發者(應用)的角度來看,的確提高了開發效率、降低了成本;從使用者應用的角度來看,執行的確很穩定。從不同主體角度看問題的關注點不一樣。

       SuperIO經過多年的完善、迭代,的確支撐起公司的眾多裝置、眾多協議,在整合專案的資料採集、互動方面發揮了重要作用。提高了複用和開發效率,降低了時間成本和人力成本。也有很多網友在免費使用,有人反饋說SuperIO有點像組態軟體。說實話,比組態軟體差遠了,但是核心通訊方面是類似的。

       SuperIO的核心思想是把不變的部分做穩定,把變的部分(顯示、資料處理和儲存、服務等)做靈活。同樣的,用Java、Python、QT等其他語言也可以完成同樣框架,更多的體現在思想方面。

       計劃寫連載文章對SuperIO的設計與實現進行整體的介紹,並指出哪裡需要改進。希望通過交流能夠共同提高。

連載文章規劃的目錄如下:

前言
第1章    通訊框架介紹
通訊的本質
應用場景
解決現實問題
框架簡介
框架應用特點
框架設計特點
外掛式應用框架
開發環境
第三方元件
小結

第2章    框架總體的設計
宿主程式設計
通訊機制設計
層次示意圖
模型物件示意圖
小結

第3章    裝置驅動的設計
(介面)
執行裝置介面設計
虛擬裝置介面設計
協議驅動設計
命令快取設計
資料持久化設計
資料互動設計
通訊狀態設計
定時任務設計
執行優先順序設計
授權設計
事件響應設計
上下文選單設計
IO通道監測設計
裝置管理器
小結

第4章    串列埠和網路的IO設計
統一IO介面
IO管理器
串列埠IO管理器
網路IO管理器
小結

第5章    通訊控制器的設計
控制器
串列埠控制器
網路控制器
小結

第6章    總體控制器的設計
組裝部件
介面職能
事件響應
資料中轉
小結

第7章    外部介面的設計
外掛介面
圖形顯示介面
資料匯出介面
服務元件介面
小結

第8章    外掛引擎設計
框架的契約-介面
實現介面
外掛的雛形-抽象類
反射機制
動態載入外掛
小結

第9章    宿主程式詳細設計
配置檔案設計
載入裝置驅動
載入介面檢視
載入資料匯出
載入服務元件
DockPanel應用
檢測執行授權設計
中英文切換
全域性異常監測
小結

第10章    偵錯程式設計
除錯介面
用介面方式除錯
命令列方式除錯
小結

第11章    中英文版本切換設計
不用自帶的資原始檔的理由
自定義配置檔案
語言管理類
小結

第 12 章 License設計
設計思想
程式碼實現
小結

第13章 二次開發及應用
構建主程式
裝置驅動的開發
圖形顯示的開發
資料匯出的開發
服務元件的開發
小結

第14章 配置工具的應用
引數配置設計
驅動掛載設計
小結

第15章 OPC服務端和客戶端的開發和設計
OPC服務端設計
OPC客戶端的設計
小結

作者:唯笑志在

QQ:504547114

.NET開發技術聯盟群: 54256083