開源.NET平臺(tái)業(yè)務(wù)項(xiàng)目實(shí)踐之列出技術(shù)方案
最近一段時(shí)間一直思考和總結(jié),如何快速,方便靈活的開發(fā).NET平臺(tái)的ERP/MIS類型軟件系統(tǒng)。
EPN是一套以O(shè)RM技術(shù)為基礎(chǔ)的C#.NET WinForms開發(fā)工具,框架和業(yè)務(wù)實(shí)踐,名稱取自英文單詞Intellligent Enterprise Solution的簡(jiǎn)寫。隨著時(shí)間的推移,逐步得到完善。
心里也一直想推廣這個(gè)技術(shù)實(shí)踐,雖然還有很多地方不完善,但是沒有源碼,大多數(shù)的開發(fā)人員并不感興趣。曾經(jīng)把源碼,Visual Studio 2008/2010,SQL Server 2005都安裝在一個(gè)虛擬機(jī)里面,供開發(fā)人員直接下載使用框架進(jìn)行開發(fā),效果也不好。對(duì)于開發(fā)人員,對(duì)微軟的源代碼是沒有什么興趣的,微軟的很多框架,工具表面上不開源,但是你用Reflector同樣可以得到它的源碼,對(duì)此,我深有體會(huì),容易得到的東西,通常都不會(huì)珍惜。
這個(gè)系列的文章,也沒有打算完全把自己的業(yè)務(wù)框架開源,而是想構(gòu)建一個(gè)輕量級(jí)的業(yè)務(wù)框架,并把它開放源碼。輕量級(jí)的含義是指仍然是完整的開源業(yè)務(wù)框架,但是缺少開發(fā)工具的支持,缺少集成的業(yè)務(wù)系統(tǒng),只支持一種數(shù)據(jù)庫。
先搭個(gè)框架頁面,來看看要達(dá)到的效果
這是個(gè)測(cè)試頁面,你可以使用下面這篇文章中提到的源代碼框架,快速建立這個(gè)模型。
請(qǐng)參考文章《Management Console 工具管理類軟件通用開發(fā)框架(開放源碼)》獲取原型框架的代碼。
需求列出
多國語言,要能實(shí)現(xiàn)多種語言的界面,先支持英語,中文簡(jiǎn)體和繁體。
實(shí)現(xiàn)四大類標(biāo)準(zhǔn)的窗體
EntryForm 業(yè)務(wù)單據(jù)窗體 比如輸入采購單,采購送貨
ReportForm 報(bào)表窗體 比如送貨單報(bào)表,采購單追蹤報(bào)表
EnquiryForm 業(yè)務(wù)查詢窗體 查詢已經(jīng)過帳的業(yè)務(wù)單據(jù)窗體
FunctionForm 功能窗體 基本的功能 比如月結(jié)
報(bào)表可以通過瀏覽器訪問,選擇Reporting Services作為報(bào)表方案最合適。
工作流支持。支持簡(jiǎn)單的提醒,審批,日記帳過帳工作流,可自定義流程。
權(quán)限部分 日記帳權(quán)限,系統(tǒng)管理權(quán)限(數(shù)據(jù)庫操作,用戶管理)
數(shù)據(jù)審計(jì) 可對(duì)指定的業(yè)務(wù)數(shù)據(jù),設(shè)定審計(jì),以跟蹤變化。
技術(shù)方案列出
既然是WinForms,肯定要選ORM工具,選擇LLBL Gen 3.1。ORM工具+Data Binding可以減少很多代碼。不選擇NHibernate,也不選擇Entity Framework,因?yàn)閷?duì)這兩個(gè)框架不熟悉,用起來不順手。
數(shù)據(jù)庫選擇SQL Server,穩(wěn)定,容易使用的數(shù)據(jù)庫。如果做.NET開發(fā),SQL Server通常是默認(rèn)的數(shù)據(jù)庫選擇。
應(yīng)用層使用.NET Remoting作為支持?jǐn)?shù)據(jù)訪問的入口,可以處理并發(fā),多用戶在線的情況。
總結(jié):不要打擊開源,源碼總有適合閱讀的人;也不要依賴開源,源代碼也解決不了你的問題,做項(xiàng)目大部分的時(shí)間靠積累,靠沉淀。有機(jī)會(huì)接觸到百萬行級(jí)別的代碼是幸運(yùn),也是不幸運(yùn)的開始,你要從成堆的代碼中理出頭緒,挖掘出骨干框架,也并非容易的事情,***若能以此提煉出開發(fā)框架,也算是一種努力。保護(hù)源代碼,給程序集加密是一回事,分享源代碼中的經(jīng)驗(yàn)是另一回事,愛情向左,婚姻向右,你總得要找出一些事情來做,給自己的生活帶來一絲改變。
原文鏈接:http://www.cnblogs.com/JamesLi2015/archive/2011/09/02/2163304.html
【編輯推薦】