精心设计的基于组件的C# Win Forms实践 一个框架数据库驱动多个业务逻辑数据库...
設計一個靈活穩定的多層架構的程序不是件容易的事情。當有了成熟的模式和應用之后,還需要經歷各種應用與需求考驗,用直白的話說,就是要經得起折騰。最近在重構自己的EPN框架時,有了一些新的體會實踐,與各位分享。
首先是數據庫的設計,一個框架數據庫驅動多個業務邏輯數據庫,這已經是大家所推薦的模式了。
如圖所示,框架數據庫Framework包含業務數據的基礎配置,它可以驅動一套或多套業務數據庫的運行。
Framework是框架數據庫,它包含基礎的業務規則,查詢,菜單組件,權限,版本管理等。這個框架可以驅動Northwind數據庫,以實現北風貿易程序,驅動emp51以實現ERP程序,等等。
在客戶端程序登陸時,需要選擇數據庫為Northwind以表示登陸北風貿易數據庫。這個地方還有些改進之處,可以將Database改成Company或System以變成更專業的系統名稱,這在后面還有說明。
進入Enterprise Solution系統后,選擇數據庫注冊,調出如下的界面,可以看到它的實現部分
框架數據庫驅動業務數據庫的全部的秘密就在這里了。Connection Parameter是連接字符串參數,在這里配置的是連接本機SQL Server Express的Northwind數據庫,下面的Grid中顯示與這個數據庫相關的業務邏輯與接口。
| Module Name | 模塊的名稱,比如ERP系統中有以下幾個模塊Engineering,Sales,Purchasing,Production Planning等等 |
| Type | 模塊類型是,這里是關鍵的設置點。 IService 接口模塊,它定義功能的接口 Service 實現,實現接口中的功能 一個系統中,必須包含一個接口模塊,可以有多個實現模塊。 BusinessLogic 業務邏輯 為客戶定制的業務邏輯 Presentation 展現層,也是界面層。在這里是用的WinForms技術,也可以換成WPF技術,或是SilverLight,ASP.NET Web/MVC,因為界面層只負責綁定數據,業務邏輯已經完整分離到BusinessLogic層中。 |
| Path | 模塊對應的程序集,通常是一個dll assembly。 |
在這個版本的EPN框架中,實現了框架程序與業務程序的完全解藕。比如需要以Northwind數據庫為基礎設計一個貿易程序,它的解決方案視圖是這樣的
這個視圖就是上面公司注冊中的代碼視圖,接口(IService)與實現(Service),業務邏輯(BusinessLogic),再加一個界面層Administration管理貿易訂單,客戶往來。經由這種設計方法,把業務邏輯及其實現徹底分離出去,以實現通用的C#.NET Win Forms開發框架。
這種設計也有一些缺陷。比如,當業務邏輯過于分散或是完全不相同時,框架數據庫也需要重新調整。這里的調整,是數據庫內容的重新生成,而不需要對代碼作出變更。比如,業務邏輯涉及的查詢,報表,菜單,用戶喜好(Personalize),功能權限,用戶權限都放在框架數據庫中,當重新開發一個新項目時,你需要調用如下的系統功能,重新生成這些基礎的數據以適應新系統的要求。
功能及其權限
菜單定義
報表定義也需要重新配置參數。
啟動查詢設計師重新設計查詢,以適應新的業務邏輯需要。
最后一項工作內容是翻譯資源的重新調校,您需要根據業務需要對翻譯作出適當的修改。比如,Style 可翻譯為樣式,在制衣行業的系統中,應當翻譯為款式。
經過這些數據準備工作,新項目的就差不多完成了一半。后面的部分就是完成針對客戶的要求,做出各種設計,以確保您的項目準時交貨。
轉載于:https://www.cnblogs.com/JamesLi2015/archive/2011/12/21/2295416.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的精心设计的基于组件的C# Win Forms实践 一个框架数据库驱动多个业务逻辑数据库...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通过注册表修改键盘映射
- 下一篇: C#托管代码与C++非托管代码互相调用一