軟體架構(C#)

來源:互聯網
上載者:User

學過軟體工程的朋友應該都知道,合理的軟體架構(Software Architecture)對後期的維護、新功能的添加是極為有利的。我對研究 Windows 的架構非常有興趣,自己也想動手實踐一下。但是很遺憾,我沒有什麼大軟體的代碼可以拿來研究,說句實話,就算是有,可能我也沒時間去鑽研。


我只好拿我以前寫的一個小軟體來改造,這個軟體最早的一些版本結構顯得不太清晰(我已經寫了20多個版本啦)。也許你會覺得這對一個小軟體來說沒有必要,但這隻是一個實驗性的東西,將來這個架構也可以用於更大一些的軟體。要知道系統結構對大型軟體來說非常之重要,一個合理的結構會節省很多的工作量。

先簡單介紹一下我的改造對象吧。AoouchWare(R) Date Convert 可以用於修改檔案的建立時間、修改時間、訪問時間,支援批量更改。可以對系統時間進行即時追蹤。本軟體基於Microdoft.NET技術編寫,正常的使用需要首先安裝 Microsoft.NET Framework 1.0 版或更高的版本。

從下面的圖中可以看到在 SP2 版中外殼層和管理層是分開的,但是最初的 Release 版上面兩層是和在一起的。所以從 SP1 版我就開始了對它的改造工作,要把一開始就定義為一個整體的兩個層次完全的分開並不容易,所以我分了兩步進行。SP1 版算是一個半改造的東西吧,上面兩層並未完全的分離,只是把各個模組中的 文字資訊提取到了一個檔案 Notify.dll 中,這樣的架構還不算完美。現在我的這個版本已經基本上把我頭腦中的架構實現了,儘管對記憶體的最佳化還要放在下個版本中(.NET 程式的記憶體佔用實在是太大了)。

 

下面簡單談一下我的研究成果吧。其實說是研究成果,只不過是把我頭腦中的一些想法變成現實罷了。

 

 

我的思路說明:我的目標就是要把它分成3個層次,也就是外殼層(Shell Layer)、管理層(Manage Layer)和核心層(Kernel Layer)。外殼層主要包括 Notify.dll 和 UShell.dll,這兩個是使用者直接接觸到的,他們的任何更改對軟體功能都沒有直接影響。管理主要由主程式來實現,主程式中沒有任何可以進行實質性工作的代碼,只是提供了對介面的管理功能,目的是把上下兩層有效銜接起來。這樣即使要更新下層的代碼或介面,都不會牽涉到使用者層,也就是說,軟體更新包的大小不會很大。核心層包括兩部分,一個是環境監測(Environment),包括 EnvirChk.dll、VerRep.dll,這兩個模組主要實現的是檔案版本管理和環境變數管理,如果使用者在更新時留下了不屬於目前的版本的檔案,程式是不會啟動並執行。還有一部分當然就是實現軟體功能的執行(Execution)模組了,包括 FileEvt.dll、TimeChkR.dll,這個我就不多介紹了。

各個模組的具體作用:

  • Notify.dll   用來儲存使用者介面上的文字資訊,也可以被其他模組調用以發出提示資訊。這也為多語言程式的開發提供了便利。
  • UShell.dll   這是介面部分,主程式的介面是從這個檔案中繼承的。這樣一來便實現了換膚功能。
  • DateCov.dll   這就是主程式,實現了對上下兩層的銜接和管理。
  • EnvirChk.dll   這個模組用作檢測環境變數,和版本管理。不合理的變數是不能被引用的,同樣錯誤的版本將導致程式不能運行。
  • VerRep.dll    用來返回各個模組現在正確的版本號碼。
  • FileEvt.dll    用來調用開啟檔案(夾)對話方塊,以及執行對檔案的更改。
  • TimeChkR.dll    可以返回當前的系統時間,以及實現對使用者輸入時間的標準檢測,這樣可以避免很多不必要的錯誤。

 

Date Convert + SP2 : http://free.efile.com.cn/aoouch/AoouchWare/DCSP2/DCSetup_CHS.exe

PlusPack for SP2 : http://free.efile.com.cn/aoouch/AoouchWare/DCSP2/DCPSetup_CHS.EXE

關於軟體的下載:我發布的那個安裝包是綠色的,如果你還不放心可以用 WinRAR 來解開。英文版的安裝包我就不提供了,如果想用英文版的朋友可以下載 PlusPack 來實現。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.