做者:圣殿骑士
文章引用来源: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 微博:圣殿骑士微博 联系我,很是感谢。