做者:聖殿騎士
文章引用來源:http://www.cnblogs.com/KnightsWarrior/ html
前面一篇文章《最近架構隨想》,我提到架構設計的一些構想,其實也是對以前項目經驗的一些概括及總結。今天咱們就以權限系統做爲切入點,談一談怎麼設計權限系統以及怎麼作到系統具備如下特性:數據庫
廢話半天,下面就開始看圖說話環節:編程
架構設計圖:設計模式
部署及組件圖:架構
詳細解決方案:框架
01_Client:存放UI相關的項目,好比Winform, WPF,ASP.NET, Silverlight,ASP.NET MVC或者相關的Web Model及View Model項目。工具
02_Hosting:存放與Service相關的項目,能夠是Direct Service,Remoting Service,Web Service,WCF Service或者Web API Service 。post
03_Domain:業務邏輯相關的全部實體以及操做(根據OO的思想設計類以及類之間的關係)。性能
04_Infrastructure:非業務方面的功能框架 (Data,Common,DataContract,AOP, IOC,Logging,Encryption,Email)。測試
05_Database:數據庫項目(包含全部數據庫腳本,方便開發,部署以及維護)。
06_Tests:全部測試項目(數據訪問測試,框架測試,業務邏輯測試,服務測試以及View Model測試)。
07_ReferenceLibs:項目相關的外部引用。
08_Tools:一些簡單的工具,方便開發,測試以及部署。
各層執行序列 (調用Service以前須要調用Service Adapter,而後根據項目配置來決定調用WCF Service,Web API Service 仍是直接DLL引用):
權限系統設計 (支持多系統,Module多層級,Group多層級,多用戶來源,功能權限,數據權限等):
權限系統數據庫關係圖(三個中心點:Users, Roles, Paths):
權限系統全部表(包括主要表以及備份表,主要是針對中小型項目,若是大型項目則要採用分庫,分表以及分區的策略):
數據庫項目——腳本注意事項以及如何一鍵執行全部數據庫腳本(方便管理數據庫腳本而且對團隊開發以及分工協做幫助很大):
代碼生成器——T4徹底生成數據庫,業務實體,業務層,服務層以及UI代碼 (以前也用Winform和WPF寫過代碼生成器,這是第一次使用T4生成整個項目,感受很是好用,而且隨時修改隨時使用,並且還能夠根據項目進行定製化)。
這篇文章主要是看圖說話,因此若是你有什麼反饋,心得或者建議,不妨留言,我會盡力在今天或者明天進行回覆。關於代碼分享或者開源的問題,因爲目前是幫公司作的,因此尚未時間和精力去抽取代碼,不過會根據反饋,而後在近期內分享更多實現細節!
若是您認爲這篇文章還不錯或者有所收穫,不妨點擊一下右下角的(推薦)按鈕,由於你的支持是我繼續寫做,分享的最大的動力!
做者:聖殿騎士
出處:http://www.cnblogs.com/KnightsWarrior/
關於做者:專一於微軟平臺項目架構、管理和企業解決方案。自認在面向對象及面向服務領域有必定的造詣,熟悉設計模式、TDD、極限編程、領域驅動、架構設計、敏捷開發和項目管理。現主要從事WinForm、ASP.NET、WPF、WCF、WF、Silverlight 、Biztalk、Windows Azure等雲計算方面的項目開發、架構、管理和企業培訓工做。若有問題或建議,請多多賜教!
本文版權歸做者和博客園共有,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接。若有問題,能夠郵件:KnightsWarrior(at)msn(dot)com 微博:聖殿騎士微博 聯繫我,很是感謝。