Lind.DDD.Manage项目核心技术分享

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

关于Lind.DDD.Manager的培训与学习

讲解:张占岭

花名:仓储大叔

主要框架:Lind.DDD,Lind.DDD.Manager

关于Lind.DDD.Manager

由于数据模型,数据库初始化(Code.First自动升级数据库或者进行数据库版本的迁移)控制器,View视图,css,js等元素组件的一套标准的后台管理系统框架,可以直接应用到任何一个系统上,可以它将发布到Nuget上,以后安装和更新更加方便。

 

如何为你的项目安装Lind.DDD.Manager

Lind在nuget上早已有了自己的版本,用户在自己的项目上直接从nuget上在线安装即可,它将会把对应的view,content,script,dll等安装到你的对应项目中,你不必担心它的升级,因为一切由nuget来控制!

 

关于几大过虑器,代替配置麻烦和过时的HttpModule

Lind.DDD.Authorization.Mvc.AuthorizationLoginFilter:对用户登陆后的授权

Lind.DDD.Filters.ActionAuthorityAttribute:对指定Action添加操作权限的标识

Lind.DDD.Filters.ActionLoggerAttribute:对指定Action进行操作日志的记录

Lind.DDD.Filters.ActionTrackAttribute:对action执行时间的跟踪

Lind.DDD.Filters.ExceptionErrorLoggerAttribute:对action执行过程中,异常的捕获

Lind.DDD.Manager.Filters.ManagerUrlAttribute:对指定Url与系统Url进行对比,用于菜单权限的控制

 Lind.DDD.Manager.Filters.ManagerActionLoggerAttribute:后台操作日志记录,它继承自ActionLoggerAttribute类,主要实现了后台日志持久化机制

关于控制器与模块

后台模块设计,要求每个模块属于一个controller(控制器),这样可以更好控制每个action的行为权限。

关于角色-菜单-操作权限的设计

 

关于Action中添加权限特性标识

行为类型的枚举

为每个Action应用自己的行为特性

关于Action中添加操作日志特性标识

由于自己的业务系统在记录日志时的持久化方式比较多,所以我们将获取日志的逻辑与持久化的逻辑进行分离,获取放在Lind.DDD里,而持久化的逻辑放在具体的项目中,如Lind.DDD.Manager项目,它有自己的操作日志过滤器,它项目里的Action应用它的ManagerActionLoggerAttribute即可,代码如下

 

在Action上应用代码如下

 

关于数据集权限

对业务平台的相关数据表的某些字段进行控制,根据不同的角色,为业务平台返回不同的数据集合,而对于业务平台来说,它们将成为对表进行过滤的一种条件!

模型的设计

 

先添加数据集的类型,用于从业务平台选择需要筛选的所有数据

 

然后添加对应的值,选对应的类型,可以被筛选出来的目标数据

 

业务平台可以根据自己的用户编号userid,表名type和字段名field来获取指的数据,框架中提供了/WebDataSetting/GetDataSet方法,返回为目标值组成的字符串,每个值用逗号做分割。

关于菜单权限的安全设计

在Lind.DDD.Manager里,菜单权限会被分配到每个角色中,而用户登陆后,会根据它的角色来显示对应的菜单列表,这通常表现在左侧的导航菜单上,而如果用户在地址栏直接输入菜单的URL进行访问时,我们也有对应的ManagerUrlAttribute对它进行控制,主要逻辑是使用数据库里的菜单与当前角色所拥有的菜单进行比对,如果存在这个权限,菜单对应的页面才可以被访问。

感谢各位对Lind.DDD框架的关注,让我们一起把框架做的更好!

感谢各位!

本文转自博客园张占岭(仓储大叔)的博客,原文链接:Lind.DDD.Manage项目核心技术分享,如需转载请自行联系原博主。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
4月前
|
设计模式 安全 Go
|
5月前
|
中间件 BI 测试技术
【实践篇】领域驱动设计:DDD工程参考架构
领域驱动设计(DDD)参考架构旨在为团队提供DDD实践的起点,强调业务与技术的分离,考虑多种架构风格如分层、六边形等。它包括多限界上下文结构,每个上下文内有应用层(不含领域逻辑)、领域层(含领域模型和事件)和网关层。接入层负责外部请求的处理,业务层协调不同上下文。组件包括Start(启动)、Common(通用)、API、Facade、Application Service、External API、Query、Domain和Gateway,各组件有明确的职责和依赖关系,如Gateway处理技术细节并作为系统与外部的接口。架构设计是多因素权衡,适应实际工程需求。
237 0
|
缓存 领域建模 数据库
cloud Alibaba电商后台组件实战:架构演进,了解领域驱动设计,项目公共模块编写(1)
cloud Alibaba电商后台组件实战:架构演进,了解领域驱动设计,项目公共模块编写(1)
cloud Alibaba电商后台组件实战:架构演进,了解领域驱动设计,项目公共模块编写(1)
|
运维 架构师 前端开发
小团队也能做DDD-上篇(1)
小团队也能做DDD-上篇(1)
265 0
小团队也能做DDD-上篇(1)
|
算法 NoSQL Java
工程化的项目中使用什么作为唯一ID(附代码) | 架构篇
工程化的项目中使用什么作为唯一ID(附代码) | 架构篇工程化的项目中使用什么作为唯一ID(附代码) | 架构篇
工程化的项目中使用什么作为唯一ID(附代码) | 架构篇
|
缓存 前端开发
小团队也能做DDD-上篇(3)
小团队也能做DDD-上篇(3)
173 0
小团队也能做DDD-上篇(3)
|
算法 数据挖掘 程序员
小团队也能做DDD-上篇(2)
小团队也能做DDD-上篇(2)
156 0
小团队也能做DDD-上篇(2)
cloud Alibaba电商后台组件实战:架构演进,了解领域驱动设计,项目公共模块编写(2)
cloud Alibaba电商后台组件实战:架构演进,了解领域驱动设计,项目公共模块编写(2)
线上分享-- 基于DDD的.NET开发框架-ABP介绍
前言 为了能够帮助.Net开发者开拓视野,更好的把最新的技术应用到工作中,我在3月底受邀到如鹏网.net训练营直播间为各位学弟学妹们进行ABP框架的直播分享。
1165 0