@gmf520
2016-03-25T10:51:29.000000Z
字数 2180
阅读 15011
osharp框架的开发计划与进度
osharp
项目开源地址:https://github.com/i66soft/osharp
权限系统
- 基于Microsoft.AspNet.Identity.Core实现身份认证功能
- 定义用户身份认证涉及的实体基类型
- 派生Identity.Core的IUserStore、IRoleStore,定义用户存储基类UserStoreBase、角色存储基类RoleStoreBase
- 使用数据层定义的数据仓储IRepository对用户存储基类、角色存储基类进行基础实现
- 角色指派:设计后台管理页面,对角色-用户之间的映射关系进行指派操作
- 用户登录时生成基于声明(ClaimIdentity)的用户在线信息
- 用户执行系统功能时,使用用户在线信息中的声明信息对用户权限进行认证
- 使用系统初始化时收集的功能信息进行“角色-功能、用户-功能”的功能权限实现
- 定义功能权限相关的实体基类型
- 定义功能权限的存储接口及功能权限存储基类
- 使用数据层定义的数据仓储IRepository对功能权限存储基类进行基础实现
- 设计管理后台页面,对角色-功能、用户-功能之间的映射关系进行指派操作
- 用户执行功能时,根据用户的在线信息中的声明信息,检查相应功能的用户/角色限制,来判断用户是否有权限执行该功能
- 使用缓存来解决功能权限判断的性能问题
- 使用系统初始化时收集的实体信息进行“角色-实体、用户-实体”的数据权限实现
- 定义数据权限相关的实体基类型
- 定义数据权限的存储接口及数据权限存储基类
- 使用数据层定义的数据仓储IRepository对数据权限存储基类进行基础实现
- 设计管理后台页面,对角色-实体(实体属性)、用户-实体(实体属性)之间的映射关系进行指派操作,生成角色/用户对数据的查询子条件封装的FilterGroup信息,存储到数据库中
- 用户执行数据查询操作时,根据用户在线信息中的声明信息,以用户/角色与要查询的目标实体为条件检索出查询子条件FilterGroup信息,以附加条件的形式附加到现有查询条件中进行数据查询,以达到对数据进行权限控制的目标
- 使用缓存来解决数据权限检索的性能问题
- 基于OWin-OAuth的OAuth 2.0的客户端验证支持
- 定义OAuth相关实体基类型及ClientStoreBase存储基类
- 实现基于ClientId-ClientSecret的AccessToken获取,通过RefreshToken刷新AccessToken功能
- 实现基于用户名密码的AccessToken获取,通过RefreshToken刷新AccessToken功能
系统初始化
- 相关的实体数据、功能数据初始化
- 反射所有程序集,使用实体类型查找器查找所有实体类,进行实体信息数据初始化
- 反射所有程序集,查找各个平台的功能查找器查找所有功能,进行功能信息数据的初始化
- 依赖注入初始化
- 反射所有程序集,收集实现了特定接口(ITransientDependency|IScopeDependency|ISingletonDependency)的类型,构建依赖注入映射信息集合
- 收集各个组件的依赖注入映射服务信息
- 调用依赖注入映射注册功能,进行依赖注入映射类型的注册
- 注册Mvc、WebApi、SignalR等平台的相关类型,进行IDependencyResolver的初始化
- 对象映射功能初始化
- 收集对象映射功能的依赖注入服务映射信息
- 解析对象映射构造器与映射解析器,进行映射功能初始化
- 缓存功能初始化
- 数据存储功能初始化
- 收集数据功能涉及的依赖注入服务映射信息
- 解析数据功能初始化器,进行数据功能初始化
- 定义实体映射类(EntityConfigurationBase派生类)的查找器,查找系统中所有的实体映射类型
- 由实体映射类中获取实体与上下文的对应关系,进行上下文类型初始化,并管理上下文与实体类型的对应关系
- 进行上下文种子数据初始化
- 日志记录功能初始化
- 收集日志功能涉及的依赖注入服务映射信息
- 解析日志功能初始化器,进行日志功能初始化
对象映射
- 对象映射通用API设计
- 对象映射的源类型与目标类型查找器配对及初始化流程定义
- DTO与实体类型的类型查找器及类型配对实现
- 基于AutoMapper的对象映射功能实现
依赖注入
- 参照 ASP.NET 5 的依赖注入实现思路,以IServiceProvider为核心的通用依赖注入API定义
- 依赖注入服务映射信息的封装与管理
- 依赖注入映射类型的注册流程定义
- 依赖注入实例解析流程定义
- 基于Autofac的MVC、WebApi、SignalR等平台的依赖注入注册与实例解析的实现
缓存
- 通用缓存API定义
- 分级缓存API定义及功能实现(如内存缓存为一级,分布式缓存为二级)
- 基于Runtime.Cache的缓存实现
数据层
- 通用数据存储操作API定义
- 泛型的数据仓储(Repository)功能的EF实现
- 动态的EF数据上下文
- 上下文动态加载实体类
- 实体类自动定位归属上下文
- 单数据库多上下文支持
- 多数据库多上下文支持
- 多上下文事务支持
- 实体模型变更自动迁移数据库结构
- 实体新增、更新、删除操作自动记录数据日志
日志记录
- 通用日志记录API定义
- 基础日志记录功能
- 数据日志记录功能
- 实体属性变更日志记录功能
- 实体导航属性变更日志记录功能
- 数据日志异步记录
工具组件