前面一篇文章《最近架构随想》,我提到架构设计的一些构想,其实也是对之前项目经验的一些归纳及总结。今天我们就以权限系统作为切入点,谈一谈怎么设计权限系统以及怎么做到系统具有以下特性:
废话半天,下面就开始看图说话环节:
架构设计图:
部署及组件图:
详细解决方案:
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 。
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/p/ACL.html
网页题目:看图说话:架构设计分享之权限系统
URL网址:http://www.shufengxianlan.com/qtweb/news45/353345.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联