開發ERP軟體應該遵守的22條規則

來源:互聯網
上載者:User
文章目錄
  • 介面篇
  • 資料庫篇
  • 加密保護篇
  • 程式開發篇

總結一下做管理軟體,有哪些項是經過檢驗的條款,必須遵守的。

介面篇

1  要儲存使用者的偏號(profile/favourite)。 ASP.NET 2.0引入此功能,當使用者修改預設的控制項的屬性時,架構應當儲存使用者的修改。顯而易懂的例子是grid控制項中的列順序。使用者修改之後,關閉表單時,要可以儲存起來,當使用者再次開啟時,應當載入使用者上次的修改。

2  介面中的資料要有通一的匯出方案。匯出類型一般是Mircrosoft Excel, Microsoft Access, Text,CSV。Excel為第一需要考慮的匯出格式。

3  半形全形輸入轉化。對於全形輸入,應當轉化為半形。全形半形長度不一樣,但在介面中它的字元是一樣的,應當預設的將使用者全形的輸入轉化為半形。或是直接提示使用者切換IME,不允許全形輸入。

4  使用標準的流行的報表開發技術和設計工具。自訂報表設計師很難控制穩定性,fyireport就是這樣,即使有新功能也很難加入。再次,它的學習成本也比較高。推薦直接選擇Crystal Report或是Reporting Services。

Crystal Report一直都沒有大的改動,Reporting Services因為SQL Server昂貴的授權費用,因而產生了一些優秀的報表工具。但我仍然推薦用成熟的Crystal Report技術。

5  做好系統的三個門面表單: Login, Splash,About。

登陸視窗的背景色要與主表單一致,給使用者的第一感覺的地方,要以穩重為主。我選擇以微軟網站的藍色基調為主色。

Splash顯示當前的程式的版本,授權使用者資訊。About對話方塊中顯示license資訊,以及客戶服務連絡方式。

6  介面中調用一項系統服務時,應該先檢查它是否存在。比如即將顯示報表介面,應當先檢測報表格服務是否存在,進行環境檢測。運行事務時,應該先檢測MSDTC服務是否已經啟動。以.NET 4.5 為Target產生程式版本時,需要先檢測.NET 4.5是否已經安裝。

7  保持與伺服器的串連,斷線後要禁用使用者輸入。這需要引入心跳機制。

 

 

資料庫篇

1  給每個日記帳表添加額外的五個欄位。用來儲存這筆記錄的建立人,建立時間,最後修改時間,修改日期:

Created_By, Created_Date, Revised_By, Revised_Date

另一個欄位是為維護資料(data fix)時,方便使用:添加一個自增列,identity(1,1) ,設定為每一個表的第一列。名字可以是RECNUM(record number), LineNO(line number) 等等。

2  統一的資料位元數方案。比如

行號類: LineNo/EntryNo/RecordNo/Recnum 不顯示小數點,

數量類:Qty/Quantity 6位小數

金額類:Amt/Amount 4位小數

3  對於通用的資料表,比如物料主檔,客戶主檔,供應商主檔,應該保守的留20個備用欄位,以供客戶填寫自訂的資訊。再完善的資料庫欄位,都有可能考慮不周到的地方。20個備用欄位,應該可以滿足大部分需求。

4  修改資料庫定序,一般預設為USA標準的SQL_LATING_CP1_CI_AS。這樣可以減少預存程序出錯的機率。

另外,在安裝SQL Server時,也要選取這個定序。

 

加密保護篇

1 使用者登陸表中的密碼,不能以明文儲存。可以用鹽或是MD5加密,或是可逆的加密,或是字串混淆(比如給每個字元都加一定規則的字串,到檢測密碼時,再反過來還原密碼)。

2  提供幾種方式的使用者驗證機制。認證類型:PASSWORD, DOMAIN。

傳統的密碼驗證需要輸入密碼,如果改成域DOMAIN驗證,不用輸密碼,根據目前使用者直接登陸系統。

3  完善的license許可授權機制。虛擬機器檢測,硬體檢測,到期時間檢測,功能限制檢測,試用版到期檢測。

4  混淆.NET程式集,增加反編譯難度。

 

程式開發篇

1  提供通用的跟蹤機制解決方案。比如應有Debug.WriteLine輸出跟蹤資訊,再截獲這個輸出,顯示到log viewer程式中。或是應用UDP連接埠發送跟蹤資訊,再捕獲顯示到介面中。下面的代碼可做參考

Trace.Listeners.Add(new TextWriterTraceListener("TextWriterOutput.log", "myListener"));Trace.TraceInformation("Test message.");// You must close or flush the trace to empty the output buffer.Trace.Flush();
 

2  提供通用的附件管理功能。附件可以上傳到資料庫中,也可以直接儲存一個路徑引用。同時,需要寫一個附件瀏覽器,可查看所有的帶附件的功能的內容。

3  介面中Tab鍵的順序要合理,遵守從上到下,從左至右的順序。還可以做到Enter轉成Tab,斷行符號間轉成Tab鍵。

4   原始碼中,數字類型的值的格式要統一。0x開頭的16進位,預設的是10進位。這兩個格式應當統一。可以使用Windows 7的計算機功能實現快速修改一個16時制數為10時制數。

5  提供標準的資料操作功能。

資料存檔(Archieve):可以把資料匯出為EXCEL或是其它的格式

資料清理(Cleanup):可以清除資料表

資料再開始(Restart):只清除日記帳資料,而保留系統設定和主檔資料

資料匯入(Load): 從備份檔案中載入資料,相當於匯入資料。

6 介面上長時間的操作,要轉成後台線程。介面中可以有BackgroundWorker,代碼邏輯中,應該調用System.Threading.Thread的後台線程來計算。與此同時,介面中的游標也需要改變

this.Cursor=Cursors.WaitCursor;...... long operationthis.Cursor=Cursors.Default; 

 

7  經常留意代碼效率改善方法,並把它應用到系統中。舉例如下

1) 不要用string ax=”” 判斷ax是否為空白, ax.Length==0的效率高於ax==string.Emptyu 一般用as.IsNullorEmpty
2) 對於不改變的變數,用常量代替
3)  用Linq代替大量的foreach查詢
4)  MyType t=(MyType) t和t as MyType的效率比較
5)  List<T>代替Array,Haset<T> ,Dictionary<K,V> 代替Hashtable

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.