我眼中的理想系統
本人從事軟件行業也有幾年了,從開始的一直反復的用SQL SCRIPT到后來用ADO.NET,再到后來寫了一些DbInstnace接口,到后來自己寫ORM,可以直接通過對象持久化,才算是跟面向對象搭上了邊。
由于多數據是業務系統,我認為還是采用CS架構較好,但這樣的程序必須具備自動更新的機制。總結一下,需要具備如下特質:
一、程序支持在站點下下載,最簡安裝,需要安裝的組件盡量最少,并支持在線安裝。
二、程序支持自動版本檢測和自動更新,系統啟動時自動檢測版本自動更新,在服務器有更新時,可以發消息給客戶端,通知客戶端執行自動更新程序,甚至需要保存數據后強制重新啟動程序;
三、程序有自己的一套應用控件,而非直接使用系統提供的控件,這樣,有需求變化時可以直接改動,全局自動更新;
四、程序支持多語言;
五、程序的多語言數據信息在服務器中存儲,并且可以根據不同用戶,從服務器下載語言元素,為了減輕服務器的讀取壓力,系統在啟動登錄后根據用戶ID一次性下載所有的語言元素(系統登錄部分的語言元素存在本地;
六、系統啟動時一次性把主數據信息讀取至本地內存,如用戶數據、客戶數據、供應商數據、物料數據等,但當此類數據有更新時,需要通知客戶端增量修改;
七、系統界面元素在服務器端,窗體根據界面元素自動動態生成;
八、系統的任何界面元素都接受服務器端管理,因此系統更新可以得到最及時的應用;
九、由于第八點的原因,所有的元素都可以定制,并可以通過系統信息展示給開發人員,更利于應用,更利于界面調試;
十、所有的數據表都受服務器端管理,可以以超級管理員的身份登錄系統,創建或維護數據表;
十一、根據一個或多個數據表可以創建一個窗體(應用),界面布局可以通過數據記錄;
十二、每一個控件的驗證邏輯可以單獨設置,并且應用的處理邏輯可以支持C#腳本語言。
十三、所有業務應用對象化,可以根據數據表自動生成實體化對象和控制對象的基類,基類可以實現對實體類的增、刪、改、查;
十四、對于驗證邏輯的腳本,可以通過系統生成DLL文件來提高程序的運行性能。
十五、 … …