最近一段時間一直思考和總結,如何快速,方便靈活的開發.NET平台的ERP/MIS類型軟體系統。
在此之前,寫過一個系列的文章來表達我的理解,一共有以下八篇文章
- 資訊化基礎建設 總體結構
- 資訊化基礎建設 開發架構
- 資訊化基礎建設 表單開發
- 資訊化基礎建設 表單特性
- 資訊化基礎建設 報表開發
- 資訊化基礎建設 Reporting Services報表開發
- 資訊化基礎建設 訊息引擎
- 資訊化基礎建設 工作流程開發
之後,又對這個系列的主題文章進行補充完善,有以下八篇文章
- 資訊化基礎建設 持續改進架構
- 資訊化基礎建設 資料庫文檔
- 資訊化基礎建設 資料字典
- 資訊化基礎建設 業務報表
- 資訊化基礎建設 ERP代碼產生器(開源,提供源碼下載)
- 資訊化基礎建設 多種程式設計語言開發
- 資訊化基礎建設 裡程碑
- 資訊化基礎建設 ORM 常見錯誤
一共是十六篇文章,以分享自己的.NET平台商務專案實踐經驗。
這個過程中,也開放了少量的代碼和工具,請到epn.codeplex.com上擷取相關的源碼和文檔。
EPN是一套以ORM技術為基礎的C#.NET WinForms開發工具,架構和業務實踐,名稱取自英文單詞Intellligent Enterprise Solution的簡寫。隨著時間的推移,逐步得到完善。
心裡也一直想推廣這個技術實踐,雖然還有很多地方不完善,但是沒有源碼,大多數的開發人員並不感興趣。曾經把源碼,Visual Studio 2008/2010,SQL Server 2005都安裝在一個虛擬機器裡面,供開發人員直接下載使用架構進行開發,效果也不好。對於開發人員,對微軟的原始碼是沒有什麼興趣的,微軟的很多架構,工具表面上不開源,但是你用Reflector同樣可以得到它的源碼,對此,我深有體會,容易得到的東西,通常都不會珍惜。
這個系列的文章,也沒有打算完全把自己的業務架構開源,而是想構建一個輕量級的業務架構,並把它開放源碼。輕量級的含義是指仍然是完整的開源業務架構,但是缺少開發工具的支援,缺少整合的業務系統,只支援一種資料庫。
先搭個架構頁面,來看看要達到的效果
這是個測試頁面,你可以使用下面這篇文章中提到的原始碼架構,快速建立這個模型。
請參考文章《Management Console 工具管理類軟體通用開發架構(開放源碼)》擷取原型架構的代碼。
需求列出
- 多國語言,要能實現多種語言的介面,先支援英語,中文簡體和繁體。
- 實現四大類標準的表單
EntryForm 業務單據表單 比如輸入採購單,採購送貨
ReportForm 報表表單 比如送貨單報表,採購單追蹤報表
EnquiryForm 業務查詢表單 查詢已經過帳的業務單據表單
FunctionForm 功能表單 基本的功能 比如月結
- 報表可以通過瀏覽器訪問,選擇Reporting Services作為報表方案最合適。
- 工作流程支援。支援簡單的提醒,審批,日記帳過帳工作流程,可自訂流程。
- 許可權部分 日記帳許可權,系統管理許可權(資料庫操作,使用者管理)
- 資料審計 可對指定的業務資料,設定審計,以跟蹤變化。
技術方案列出
- 既然是WinForms,肯定要選ORM工具,選擇LLBL Gen 3.1。ORM工具+Data Binding可以減少很多代碼。不選擇NHibernate,也不選擇Entity Framework,因為對這兩個架構不熟悉,用起來不順手。
- 資料庫選擇SQL Server,穩定,容易使用的資料庫。如果做.NET開發,SQL Server通常是預設的資料庫選擇。
- 應用程式層使用.NET Remoting作為支援資料訪問的入口,可以處理並發,多使用者線上的情況。
總結:不要打擊開源,源碼總有適合閱讀的人;也不要依賴開源,原始碼也解決不了你的問題,做項目大部分的時間靠積累,靠沉澱。有機會接觸到百萬行層級的代碼是幸運,也是不幸運的開始,你要從成堆的代碼中理出頭緒,挖掘出骨幹架構,也並非容易的事情,最後若能以此提煉出開發架構,也算是一種努力。保護原始碼,給程式集加密是一回事,分享原始碼中的經驗是另一回事,愛情向左,婚姻向右,你總得要找出一些事情來做,給自己的生活帶來一絲改變。