精心設計的基於組件的C# Win Forms實踐 一個架構資料庫驅動多個商務邏輯資料庫

來源:互聯網
上載者:User

設計一個靈活穩定的多層架構的程式不是件容易的事情。當有了成熟的模式和應用之後,還需要經曆各種應用與需求考驗,用直白的話說,就是要經得起折騰。最近在重構自己的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 可翻譯為樣式,在制衣行業的系統中,應當翻譯為款式。

經過這些資料準備工作,新項目的就差不多完成了一半。後面的部分就是完成針對客戶的要求,做出各種設計,以確保您的項目準時交貨。

相關文章

聯繫我們

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