[連載]《C#通訊(串列埠和網路)框架的設計與實現》- 0.前言
目 錄
- 前言
前言
剛參加工作,使用過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