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

时间:2023-01-08 18:58:06

回到目录

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

讲解:张占岭

花名:仓储大叔

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

关于Lind.DDD.Manager

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

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

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

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

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

关于几大过虑器,代替配置麻烦和过时的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的行为权限。

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

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

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

行为类型的枚举

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

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

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

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

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

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

在Action上应用代码如下

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

关于数据集权限

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

模型的设计

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

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

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

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

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

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

关于菜单权限的安全设计

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

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

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

感谢各位!

回到目录

Lind.DDD.Manage项目核心技术分享的更多相关文章

  1. Lind.DDD敏捷领域驱动框架~介绍

    回到占占推荐博客索引 最近觉得自己的框架过于复杂,在实现开发使用中有些不爽,自己的朋友们也经常和我说,框架太麻烦了,要引用的类库太多:之前架构之所以这样设计,完全出于对职责分离和代码附复用的考虑,主要 ...

  2. Lind.DDD.Domain领域模型介绍

    回到目录 Lind.DDD.Domain位于Lind.DDD核心项目中,它主要面向领域实体而设计,由一个IEntity的标识接口,EntityBase基类和N个Entity实体类组成,其中IEntit ...

  3. Lind.DDD.API核心技术分享

    回到目录 关于Lind.DDD框架里API框架的技术点说明 讲解:张占岭 花名:仓储大叔 主要框架:Lind.DDD 目录 关于Lind.DDD.Authorization 关于授权的原理 关于Api ...

  4. 关于Lind.DDD.Api客户端的使用与知识分享

    回到目录 关于Lind.DDD.Api的使用与客户端的调用 作者:张占岭 花名:仓储大叔 框架:Lind.DDD,Lind.DDD.Api 目录 Api里注册全局校验特性 1 Api中设置全局的Cor ...

  5. Lind.DDD敏捷领域驱动框架~Lind.DDD各层介绍

    回到目录 Lind.DDD项目主要面向敏捷,快速开发,领域驱动等,对于它的分层也是能合并的合并,比之前大叔的框架分层更粗糙一些,或者说更大胆一些,在开发人员使用上,可能会感觉更方便了,更益使用了,这就 ...

  6. Lind.DDD.ConfigConstants统一管理系统配置

    回到目录 Lind.DDD.ConfigConstants属于新添加的组件,用来帮助我们安全的进行配置消息的管理,我们在开发项目时,有个感觉,你的config配置项会越来越多,越来越难以阅读,随着你引 ...

  7. Lind.DDD.Repositories.EF层介绍

    回到目录 Lind.DDD.Repositories.EF以下简称Repositories.EF,之所以把它从Lind.DDD中拿出来,完全出于可插拔的考虑,让大家都能休会到IoC的魅力,用到哪种方法 ...

  8. Lind.DDD.Repositories.Mongo层介绍

    回到目录 之前已经发生了 大叔之前讲过被仓储化了的Mongodb,而在大叔开发了Lind.DDD之后,决定把这个东西再搬到本框架的仓储层来,这也是大势所趋的,毕竟mongodb是最像关系数据库的NoS ...

  9. Lind.DDD.Events领域事件介绍

    回到目录 闲话多说 领域事件大叔感觉是最不好讲的一篇文章,所以拖欠了很久,但最终还是在2015年年前(阴历)把这个知识点讲一下,事件这个东西早在C#1.0时代就有了,那时学起来也是一个费劲,什么是委托 ...

随机推荐

  1. angularjs 下拉框

    @{ Layout = null;} <!DOCTYPE html> <html><head> <meta name="viewport" ...

  2. Linux中多线程信号的处理

    1. 博文:Linux多线程中使用信号-1  http://blog.csdn.net/qq276592716/article/details/7325250 2. 博文:Linux多线程信号总结  ...

  3. 【CITE】C&num;入门学习-----简单画图程序

    版权声明:本文为博主原创文章,未经博主允许不得转载. 欢迎大家提出意见,一起讨论! 转载请标明是引用于 http://blog.csdn.net/chenyujing1234 通过本实例了解如何在窗体 ...

  4. FMDB使用

    FMDBManager.h #import <Foundation/Foundation.h> #import "FMDatabase.h" @interface FM ...

  5. 加密传输SSL协议2&lowbar;传统加密

    原本到了睡觉的时间,但是做完了SSL的笔记还有GCC和Oracle等的好多的笔记,所以刻苦一点. The Priciple of Encryption/Decryption --conventiona ...

  6. JavaScript定义类和实例化示例

    1.类定义: var UseIScrollDataHelper = { myScroll: null, //iScroll对象 scrollId: 'divscroll',//默认scrollid w ...

  7. 各版本的区别及含义(i386 、x86&lowbar;64 、ppc )

    1.i386:是指兼容Intel 80386处理器     x86或80x86是英代爾Intel首先开发制造的一种微处理器体系结构的泛称.該系列較早期的處理器名稱是以數字來表示,並以“86”作為結尾, ...

  8. 修复错误配置&sol;etc&sol;fstab文件导致系统无法正常启动

      1.文件介绍 /etc/fstab这个文件描述系统中各种文件系统的信息,应用程序读取这个文件,然后根据其内容进行自动挂载的工作.作为系统配置文件,fstab通常都位于/etc目录下,它包括了所有分 ...

  9. &lbrack;C语言&rsqb;&lpar;&ast;p&rpar;&plus;&plus; 与 &ast;p&plus;&plus; 与 &plus;&plus;&ast;p 拨开一团迷雾

    环境:win7 IDE:DEV-C++ 编译器:GCC 1.先说++i和i++的基础 代码如下: #include <stdio.h> //just change simple void ...

  10. Mahout介绍-炼数

    Mahout的中文含义:象夫