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