企業應用開發模式 ERP項目中應用到的技術和工具

1、基礎技術選型

C# .NET 3.5/4.0  這兩個版本的.NET已經至關方便(Linq, Lambda,Parallel),語法簡潔,配合WCF和WF兩項技術,能夠知足快速開發,維護方便的目標。數據庫

Win Form  因ERP項目涉及大量的表單(Entry),查詢(Enquiry),報表(Report),我覺得WinForm仍然是首選技術。自定義控件,數據綁定,自定義窗體,這三項技術組合起來可產生無窮的威力。編程

SQL Server 2005  取兼容性最好的一個版本。2008/2008 R2/2012均不向後兼容,舊版本數據一旦附加到新版本中後,便不能夠在舊版本的SQL Server中附加,備份集也不能夠向後兼容。性能優化

 

2、五大核心模塊

爲保持ERP產品的可配置性,可維護性,首先定義如下基礎模塊,構建基礎的ERP功能集合。這些基礎模塊是我從工做中接觸到的幾個ERP產品中總結出來,具有表明性。框架

菜單設計器 Menu Designer   ERP項目的菜單,導航應該具有可編輯,可調整的特性。菜單和導航數據通常保存於數據庫中,或是Xml文件中。工具

查詢設計器 Query Designer ERP項目涉及大量的數據表單,數據查詢的需求很是頻繁。SQL Server Management Studio是開發人員的查詢設計器,在此基礎上作一個封裝,限定可查詢的數據庫和資料表,考慮查詢權限,拒絕任意的數據修改和刪除語句片斷以保護數據,最後將數據以列表或網格形式呈現。佈局

報表設計器 Report Designer  同查詢的需求同樣,若是須要將數據打印成完整的格式,ERP項目應該具有增長自定義報表的特性。兼容當前流行的Crystal Report和Reporting Services。性能

工做流設計器 Workflow Designer  ERP項目有內建的約定的流程,同時也應該知足批覈,通知等特性。單元測試

窗體設計器 Form Designer ERP項目應該具有調整和自定義佈局的特性。不一樣的權限和用戶,所看到界面應該有所差別。藉助於此窗體設計器,調整窗體佈局,知足個性化佈局的須要。開發工具

 

3、實體映射框架層模式

1  Entity Framework , LLBL Gen,NHibernate測試

ORM的基礎原理是在數據庫與面向對象編程中的對象之間作一層封裝,以簡化數據讀寫。在性能的反應上,ADO.NET是最好的,它直接工做在數據庫驅動層上。ORM則在ADO.NET上作一層封裝。關於可維護性,代碼生成器可彌補ORM對數據庫修改的感知。當發生數據庫變動時,直接以生碼生成工具從新生成實體代碼便可。關於可編程性,強類型的對象,可知足數據綁定時的數據感知需求,節省開發和維護時的成本。

2 ORM高級查詢,SQL語句追蹤,性能優化

應用ORM作數據訪問層的難點在於數據查詢,拋棄現有的SQL語句知識,應用OOP語言來作查詢,十多行代碼是爲達到一個子查詢的目的,一句SQL語句可替代。涉及數據問題時,還須要藉助於SQL Server Profiler工具來診斷問題。

 

4、界面層模式

1 自定義控件,窗體基礎類型定義的原理與實現,數據綁定技術

以WinForm技術而言,繼承是爲代碼重用的重要收益。定義如下幾個基礎窗體

Entry Form:數據輸入窗體,好比銷售單,採購單,工做單。

Enquiry Form:數據查詢窗體,好比銷售單日記賬查詢,採購送貨查詢。

Report Form:報表窗體,讀取報表的參數信息,從數據庫中抓取數據並呈現報表。

自定義控件是爲知足數據綁定的須要,還增長其它特性,好比限制輸入長度,只讀,可寫,大小寫,半角全角自動轉化等控制。

2 業務邏輯與業務驗證

應用ORM編程帶來的一大收益是界面與邏輯分離。OOP對象既可表明數據庫中的表在內存中的實體,也可包含豐富的自定義邏輯,再加上驗證框架,這二項內容的分離和耦合,極大的加強代碼的可維護性。

ASP.NET MVC已經強制模型M和界面V的分離,用控制器將它們聯繫在一塊兒,在數據呈現和數據邏輯方面,相對於Web Form不管是開發,仍是維護都輕鬆不少。

 

5、功能開發模式

1  框架數據庫與業務邏輯數據庫,定義代碼模塊(Module),定義功能(Function)

由於多增長一個數據庫框架,與系統通用功能相關的信息都放置於框架數據庫中,好比賬套配置,好比查詢定義,好比菜單和導航信息。框架數據庫承擔系統方面的功能載體,與具體的業務功能分離。

2  窗體界面設計 查詢(Enquiry)和查找(Lookup)設計,業務邏輯,驗證

在第二項內容(五大核心模塊)的基礎上,ERP項目繼續以插件的方式,定義模塊,定義功能。一個模塊能夠簡單的理解爲一個Visual Studio 項目文件,相關的功能都彙集在其中。銷售Sales模塊中有報價單,銷售單,銷售送貨,銷售退貨等功能。

模塊中的功能,以第四項內容中說起的方法分三類Entry,Enquiry,Report三大基礎業務功能。

此項內容爲ERP開發中的平常任務。以ERP的任務分類,Enhancement,Bug Fix,Data Fix三大分類,絕大多數的任務均在此目錄中。因Bug帶來的數據修復,會給ORM技術團隊帶來壓力。系統產生的數據問題,再也不是能夠簡單的從系統中拷貝一些SQL語句,ORM作爲基礎的數據訪問沒有SQL。以個人體會,ORM並非要你忘記SQL的存在,在應用ORM保存數據以後,我常會以SELECT * FROM table之類的語句去審查數據表中的記錄,以確保數據值和數據驗證,數據關聯爲正確。

 

6、開發工具推薦

SQL Toolbet  SQL Server領域中的Intellisense,比如Visual Studio中的智能提示同樣,必備工具。

JetBrain Resharper  當實體與實體間的關係,接口與實現的關係日益複雜以後,Find Usage和Go to Implementation兩項功能,可幫助診斷問題,必備工具。

Resharper的Test功能也至關優秀,直接對一個測試方法啓動調試,我對單元測試的熱愛,源自於此功能。作好一個基礎功能,會一樣作一個測試方法,以此功能調試跟蹤,觀測代碼的執行。

Code Smith 輔助代碼生成工具,必備工具。具有大量的例子,入手容易,案例多,應用普遍。

相關文章
相關標籤/搜索