ASP.NET核心项目实战权限管理系统(2)功能与实体设计-研发项目管理

>>ASP.NET核心项目实战权限管理系统(2)功能与实体设计-研发项目管理

ASP.NET核心项目实战权限管理系统(2)功能与实体设计-研发项目管理

引言:当今社会市场竞争激烈,软件开发企业想要占据前列需要在研发管理上下功夫,“向管理要效益”已经成为软件开发企业的共识,研发项目管理在软件企业中的普及也是大势所趋。国内做软件项目管理工具的开发商翼发云近几年发展十分迅速,越来越多的软件开发企业认识到研发项目管理的重要性,能切实有效降低成本,规范软件开发流程,提高软件产品质量。国内研发项目管理系统、敏捷开发管理工具的领导品牌翼发云敏捷项目管理系统采用可视化业务流程技术,支持瀑布模型等传统软件研发项目管理,同时也支持scrum等敏捷开发流程,是理想的敏捷开发管理工具,涵盖软件项目管理工作的整个生命周期。为提高国内软件开发企业的项目管理水平,分享一篇企业管理相关的知识文章。

0 ASP.NET核心项目物权管理系统(0)

1 ASP。NET核心项目实战的权限管理系统(1)使用adminlte建立前端 scrum

2 ASP.NET核心项目实战权限管理系统(2)功能与实体设计

3 ASP。NET核心项目真正的版权管理系统(3)通过使用PostgreSQL EntityFramework核心 软件项目管理

4 ASP.NET核心项目物权管理系统(4)依赖于多项目分层实施注入、仓储和服务。

5 ASP.NET核心项目实战权限管理系统(5)用户登录 敏捷开发流程

6 ASP.NET核心项目实战权限管理系统(6)功能管理

7 ASP.NET核心项目版权管理系统(7)组织、角色、用户权限 研发项目管理

8 ASP.NET核心项目版权管理系统(8)功能菜单动态加载

GitHub源地址

0功能设计

实现一个最简单最基本的权限管理系统,主要包括组织机构管理、角色管理、用户管理、功能管理、角色授权。

1功能管理包括功能菜单和功能页面按钮两个层次。

2个功能授权是为角色执行的。

3每个用户可以有多个角色,根据联合的多角色罢工用户的实际权限。

Asp.Net Core 项目实战之权限管理系统(2) 功能及实体设计

0、组织管理

实现组织机构(或者叫部门)的相关管理操作,组织机构主要包括部门名称、部门编码、部门负责人、联系电话、备注、上级部门、创建人、创建电话等属性。

组织机构管理包括新增顶级、新增(新增当前选中部门的下级)、编辑、删除等功能。

考虑到组织机构、用户等权限管理相关的基本实体经常会在业务数据中使用,比如要记录业务数据的部门、创建人等信息(以外键形式记录DepartmentId、UserId等),为避免组织机构、用户等信息删除后,业务数据出现找不到相关联的对应实体,即为了保证数据的完整性,对权限管理设计到的实体统一做软删除(采用一个删除标记的逻辑删除,非物理删除)处理。

Asp.Net Core 项目实战之权限管理系统(2) 功能及实体设计

0.1功能管理

系统功能的统一维护,这里进行深一级的控制,管理到各个功能界面业务逻辑操作按钮的级别,以树形格式展示,其中以一个标记属性标识该实体是一个导航菜单,还是菜单下包含的一个操作按钮。以上述组织机构管理为例,功能管理中存在一个名称为组织机构管理的项,其下包括新增组织机构、新增顶级组织机构、编辑组织机构、删除组织机构等子级。

功能管理实体主要包含父级、序号、名称、编码、地址、类型(导航菜单、功能按钮)、图标、备注等属性。

功能管理主要包括,新增顶级、新增、编辑、删除等功能。

0.2角色管理

角色是一组具有相同功能用户的一个抽象,权限管理系统将具体功能的授权赋予角色,实现针对角色的权限管理。

角色实体主要包括角色编码、角色名称、创建人、创建时间、备注等属性。

角色管理主要包括新增角色、编辑角色、删除角色、角色授权等功能。

角色授权是为当前选中的角色授予功能导航菜单及功能页面按钮的相关权限的操作。用户登录后,会根据当前用户获取所属角色,然后取该用户所有角色的功能并集,确定功能菜单及相关功能界面按钮的是否可用状态。

0.3用户管理

用户实体主要包括用户名、密码、用户姓名、邮箱、手机、备注、创建人、创建时间、上次登录时间、登录次数、所属部门等属性。

用户管理主要包括新增用户、编辑用户、删除用户、重置密码等功能。

新增及编辑用户时,需要首先选择用户所属部门,同时必须为当前用户分配对应的角色。

Asp.Net Core 项目实战之权限管理系统(2) 功能及实体设计

1实体设计

根据上述功能设计,对实体类进行如下设计。对所有实体建立一个泛型基类Entity<TPrimaryKey>,默认的主键类型为Guid的实体基类Entity,权限管理系统的所有实体都从Entity基类继承,如果想要实现其他类型主键,新建的实体从Entity<TPrimaryKey>泛型基类继承即可。

& lt总结& gt;/ / /;/ / / / / / & lt泛型类实体;/摘要&gt;/ / / & lt;typeparam名称=“tprimarykey”& gt;& lt / typeparam &gt;公共密钥类型;抽象类实体&lt;tprimarykey &gt;综述& gt;& lt { / / / / / / / / /关键;&lt /摘要&gt;公共虚拟;TPrimaryKey Id { } };准备;/ / / & lt;总结& gt;/ / /定义默认的主键类型GUID类实体/总结& gt抽象/ / / &lt;阶级;实体:实体&lt;GUID &gt;{ }

1组织实体

&lt summary&gt / / / / / / / / / Department;; entity < /summary> public class Department: Entity &lt {/ / / / / / / / /; summary> /summary> the name of the Department of < public string Name {get; set; &lt summary>} / / / / / / / / / department number; &lt / summary> public; string Code {get set;}; / / / < summary> / / / / / / Department of < /summary&gt public; string Manager {get; set; &lt summary>} / / / / / / / / / telephone number; < /summary> public string ContactNumber {get; set; &lt summary>} / / / / / / / / / note; < /summary> public string Remarks {get set; summary> <} / / /; / / / ID / / / parent department of < /summary> Public Guid ParentId {get; set; &lt summary>}/ / / / / / / / / /总结;&lt;&gt;公Guid CreateUserId {得到;集;& lt总结& gt;} / / / / / / / / /创建时间;&lt;/摘要&gt;时间?创造时间{得到;集;& lt总结& gt;} // /;/ / / / / /删除& lt;/摘要&gt;public int isDeleted {得到;集;& lt总结& gt;} / / / / / / / / /;包括用户& lt;/总结& gt公共;虚拟ICollection &lt;用户& gt;用户{得到;集;& lt总结& gt;} // /;/ / / / / /创建信息& lt;/摘要&gt;公共虚拟User CreateUser {开始};};

1.1个功能实体

&lt summary> / / / / / /; / / / &lt menu function entity; /summary> public class Menu: Entity {/ / / < summary> / / / / / / parent ID < /summary> public Guid ParentId {get; set; &lt summary>} / / / / / / / / / serial number; < /summary> public int SerialNumber {get set;}; &lt summary> / / / / / / / / / menu name; < /summary> public string Name {get; set; &lt summary>} / / / / / / / / / menu; encoding < /summary&gt public; string Code {get; set; &lt summary>} / / / / / / / / / address menu; < /summary> public string Url {get set; summary> <} / / /; / / / type: 0 navigation menu; 1 operation button. //公共公共目录;类型;

1.2角色的实体

公开课的作用:实体字符串{代码} {得到公众;集;字符串名称{设置;公共的GUID;} CreateUserId {有}公开;设置;日期时间?创造时间{得到;设置;公共} { }的言论得到字符串;设置;公共虚拟User CreateUser {设置;公共虚拟;} ICollection &lt;用户& gt;用户设置;} {得到公众;虚拟ICollection &lt;菜单&gt;设置菜单{有} };

1.3用户实体

Public class User: Entity {/ / / / / / / / / < summary> /summary> public name < string UserName {get; set; &lt summary>} / / / / / / / / / password; < /summary> public string Password {get; set; &lt summary>} / / / / / / / / / user name; < /summary> public string Name {get; set; &lt summary>} / / / / / / / / / email address; < /summary> public string EMail {get; set; &lt summary>} / / / / / / / / / mobile phone number; < /summary> public string MobileNumber {get; set; &lt summary>} / / / / / / / / / note; < /summary> public string Remarks {get; set; &lt summary>} / / / / / / create; People /summary&gt public Guid; / / / < CreateUserId {get; set; &lt summary>} / / / / / / / //创建时间;&lt;/摘要&gt;时间?CreateTime {get; set; &lt summary>} / / /; / / / / / / last login time < /summary&gt public; DateTime LastLoginTime {get set;}; / / / < summary> / / / / / / log number < /summary&gt public; int LoginTimes {get; set; &lt summary>} / / / / / / / / / Department of ID; < /summary> public Guid DeptmentId {get; set; &lt summary>} / / / / / / is deleted; / / / < /summary> public int IsDeleted {get; set;} / / / < summary> / / / Department entity / / / < /summary > public virtual Department Department {get set;}; / / / < summary> / / / create / / / /summary> public entity < virtual User CreateUser {get; set; &lt summary>} / / / / / / / / / role set; < /summary> public virtual ICollec角色;集合;角色{ } };

2总结

本次主要针对一个最简单的权限管理系统进行了功能及实体的设计,项目中新增了相关实体类文件,目前解决方案结构如下下所示:

Asp.Net Core 项目实战之权限管理系统(2) 功能及实体设计

接下来会介绍如何在Asp.Net Core中通过EntityFramework Core使用PostgreSQL数据库。

文章从互联网整理而来,旨在传播scrum、软件项目管理、研发项目管理、敏捷开发管理工具的知识与应用,帮助软件开发企业真正了解研发项目管理的价值和意义,如果本文侵犯了您的权益或者您需要具体了解更多国内做研发项目管理系统的公司翼发云敏捷项目管理系统的相关信息,欢迎和我们联络:

【网址】www.effapp.com

2018-02-24T06:10:16+08:002018-02-24 06:10:16|Categories: scrum项目管理|