码迷,mamicode.com
首页 > Web开发 > 详细

Phenix Framework 7 for .net core 3 发布地址

时间:2019-10-27 20:22:43      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:调用   算法   mes   command   star   引擎   adb   gis   register   

Phenix Framework 7 for .net core 3 发布地址:
https://github.com/phenixiii/Phenix.NET7

 

20190522
1,发布轻量级的持久化引擎,支持Oracle、MySQL,封装ADO.NET,可操作多个数据库,也为系统的分库分表策略提供持久化层面的便利
2,提供数据库的数据字典的查看方法,示例见Demo.Phenix.Core.Data.Schema
3,提供存放日志到本地或数据库的通用方法,示例见Demo.Phenix.Core.Log.EventLog
4,提供系统唯一的序列号,支持多线程、多进程、分布式应用,示例见Demo.Phenix.Core.Data.Sequence
5,提供连续递增的序列号,支持多线程、多进程、分布式应用,示例见Demo.Phenix.Core.Data.Increment
6,提供直接读取数据库数据DataReader功能,示例见Demo.Phenix.Core.Data.Common.DataReader


20190706
1,提供岗位资料类以便用于岗位配置管理,示例见Demo.Phenix.Core.Security.Position,表结构见Phenix Data Model目录Security.sql文件
2,提供团体资料类以便用于组织架构管理,示例见Demo.Phenix.Core.Security.Teams,表结构见Phenix Data Model目录Security.sql文件
3,提供用户资料类以便用于注册用户的权限管理(申请、审核、担任岗位和所属团体),示例见Demo.Phenix.Core.Security.User,表结构见Phenix Data Model目录Security.sql文件


20190715
1,完善轻量级的持久化引擎,入口为Phenix.Core.Data.Database类,Fetch用法参考如下:
         IList<Teams> teamsList = Database.Default.MetaData.FindSheet<Teams>().SelectEntity<Teams>(p => p.Id == 559064445621642);
2,提供Phenix.Core.Data.Model.EntityBase<T>实体基类,封装持久化引擎、动态刷新等基础设施功能,Fetch代码可简化为:
         IList<Teams> teamsList = Team.Select(p => p.Id == 559064445621642);
      示例见Demo.Phenix.Core.Data.Model.EntityBase
3,持久化引擎支持在实体属性上打System.ComponentModel.DataAnnotations.ValidationAttribute派生标签,提交对象/属性时会自动完成属性的有效性验证(验证失败抛出ValidationException)
      以下默认规范会自动添加,不必手工打标签:
          System.ComponentModel.DataAnnotations.RequiredAttribute,如果属性值不允许为空的规范是按照表字段NOT NULL的话;
          System.ComponentModel.DataAnnotations.StringLengthAttribute,如果字符串属性值长度要求是按照表字段长度规范的话;
     一旦手工打上标签,可覆盖它们
4,持久化引擎支持在实体上实现System.ComponentModel.DataAnnotations.IValidatableObject接口,也可以实现Phenix.Core.Data.Validity.IValidation接口,提交对象时自动完成对象的有效性验证(验证失败抛出ValidationException)
5,提供实体类代码生成工具Phenix.Tools.EntityBuilder工程源码,分为for Oracle和for MySQL两套工程文件


20190804
1,提供Phenix.Services.Host工程,为WebAPI框架服务端源码,分为for Oracle和for MySQL两套工程文件
2,提供phenix7.js,为WebAPI框架客户端源码,见Phenix.Services.Host\wwwroot\lib目录,测试代码见Phenix.Services.Host\wwwroot\test


20190807
1,Phenix.Services.Host可部署在KestrelServer+Docker环境中
2,提供‘Phenix.Services.Host.部署方法.doc‘文档供参考


20190809
1,提供Phenix.Core.Data.Schema.Table配置项ClassNameByTrimTableName,可根据自己Build Entity的需要,规定ClassName属性的取值是否取自被整理的表名(如果第4位是"_"则剔去其及之前的字符),默认是false
2,提供Phenix.Core.Data.Schema.View配置项ClassNameByTrimViewName,可根据自己Build Entity的需要,规定ClassName属性的取值是否取自被整理的视图名(如果第4位是"_"则剔去其及之前的字符, 如果倒数第2位是"_"则剔去其及之后的字符),默认是false


20190813
1,Phenix.Core.Data.Database和Phenix.Core.Data.Common.DbCommandHelper的调用存储过程函数ExecuteStoredProc,返回值改为IDictionary<string, object>类型,为存储过程的调用结果集"参数名-参数值",如需转换为JSON格式请调用Phenix.Core.Reflection.Utilities.JsonSerialize(result)
2,提供动态实体类Phenix.Business.DynamicEntity,以便操作IDictionary<string, object>格式的"属性名-属性值"记录数据,如需传入JSON格式请先调用Phenix.Core.Reflection.Utilities.JsonDeserialize<IDictionary<string, object>>(propertyValues)、Phenix.Core.Reflection.Utilities.JsonDeserialize<IList<IDictionary<string, object>>>(propertyValues)进行转换,示例见Demo.Phenix.Business.DynamicEntity
3,增补Phenix.Core.Data.Schema.Table和Phenix.Core.Data.Schema.View的增删改函数,以便操作IDictionary<string, object>格式的"属性名-属性值"记录数据,如需传入JSON格式数据请先调用Phenix.Core.Reflection.Utilities.JsonDeserialize<IDictionary<string, object>>(propertyValues)进行转换
4,增补Phenix.Core.Data.Schema.Table、Phenix.Core.Data.Schema.View、Phenix.Core.Data.Model.EntityBase<T>的查询函数,可返回JSON格式的查询结果


20190814
1,增补Phenix.Core.Data.Schema.Table、Phenix.Core.Data.Schema.View、Phenix.Core.Data.Model.EntityBase<T>的查询函数,可读取DataReader内容返回实体对象或JSON格式的查询结果
2,增补Phenix.Core.Data.Common.DataReader的SelectRecord()函数,直接导出JSON格式的查询结果,JSON格式的属性名为数据源的表/视图的字段名/别名


20190823
1,Phenix Data Model目录添加Log.sql文件
2,提供Phenix.Core.Net.Http.HttpClient类,含Checkin、Logon、ChangePassword、Call等系列函数
3,增补Phenix.Core.Data.Sequence功能从服务端获取64位序号,仅当所在进程里未曾注册过任何数据库连接时,才会尝试向其属性HttpClient所指向的服务发起请求
4,增补Phenix.Core.Data.Increment功能从服务端获取64位增量,仅当所在进程里未曾注册过任何数据库连接时,才会尝试向其属性HttpClient所指向的服务发起请求
5,提供Phenix.Core.Net.Http.OfflineCache类,为系统的客户端提供脱机缓存实时上传报文的功能,示例见Demo.Phenix.Core.Net.Http.OfflineCache
6,增补Phenix.Core.Log.EventLog功能将日志上传到服务端,仅当所在进程里未曾注册过任何数据库连接时,才会利用OfflineCache尝试向其属性UploadBaseAddress所指向的服务提交日志


20190905
1,提供Phenix.Business.UndoableBase<T>可撤销编辑的实体基类,为实体对象的编辑操作提供单级回滚的功能,示例见Demo.Phenix.Business.UndoableBase
2,约定时间戳字段以‘_TIMESTAMP‘后缀命名
3,增补Phenix.Core.Data.Model.EntityBase<T>功能具备乐观锁机制,Update()和UpdateRecord()函数提供checkTimestamp参数(默认true),保证在分布式架构下新数据不会被脏数据覆盖(会抛出Phenix.Core.Data.Validity.OutdatedDataException)
4,增补Phenix.Business.UndoableBase<T>功能具备乐观锁机制,Save()函数提供checkTimestamp参数(默认true),保证在分布式架构下新数据不会被脏数据覆盖(会抛出Phenix.Core.Data.Validity.OutdatedDataException)


20190911
1,除了主键(后缀‘_ID‘)、制单人(后缀‘_ORIGINATOR‘)、制单时间(后缀‘_ORIGINATE_TIME‘)、制单团体(后缀‘_ORIGINATE_TEAMS‘)等水印字段外,约定系统自定义的水印字段用后缀‘_WM‘进行标识,以便在新增记录以后的历次修改中,这些字段都不会再被改动(即使编辑过实体对象也不会被持久化)
2,仅允许用户增删改查操作自己所在团队的记录,当前用户的所属团队Identity.CurrentIdentity.User.Name/Id会被作为查询的过滤条件(即单库切片),前提是聚合根对应的表结构务必含制单团体(后缀‘_ORIGINATE_TEAMS‘)字段)
3,如果系统在Phenix.Core.Data.Database对象上用RegisterSubDatabase()函数注册过分库(顺序为1-N),当前用户在增删改查操作时会被自动路由到其中一个库上,路由算法是当前用户的所属团队Identity.CurrentIdentity.User.Id哈希值的N+1余数,分库路由顺序为主库0、分库1-N,相当于其所属团队的所有用户都在这个库上进行操作


20190919
1,提供Phenix.Business.BusinessBase<T>可操作聚合树的业务基类,为聚合根对象的整颗聚合树提供编辑操作和持久化的功能
2,一旦为聚合树中某个节点的业务对象打上删除标记(IsSelfDeleted=true),调用SaveDepth()函数持久化时,只要数据库中存在物理外键,将会对它及其下的所有从业务对象(包括未加载到内存)的记录做级联删除


20190920
1,规定将WebAPI服务的Controller代码编写在各自的工程里,程序集的命名以"*.Plugin.dll"作为后缀,默认会被Phenix.Services.Host自动加载并装配到ApplicationParts中
2,发布Phenix.Services.Host时,可自动将Docker相关的文件写入到Publish目录中,方便部署到Docker


20190927
1,提供用户消息PULL和PUSH两套方法,具体见测试网页user-message.html
2,提供服务接口IGateService以扩展系统自身的个性化的登录功能,示例代码见Phenix.Services工程里的GateService类,注入方法见Phenix.Services.Host工程Startup类里的AddGateService()代码行


20191011
1,升级至for .net core 3.0,开发工具 Visual Studio 2019 16.3.x及以上版本
2,提供服务接口IFileService以扩展系统自身的个性化的文件上传下载功能,示例代码见Phenix.Services工程里的FileService类,注入方法见Phenix.Services.Host工程Startup类里的AddFileService()代码行,用法见测试网页file.html


20191013
1,增补‘Phenix.Services.Host.部署方法.doc‘内容
2,调通Phenix.Services.Host部署在Docker的方法


20191014
1,重构Phenix.Core.Net.Http.HttpClient类
2,调通Demo.Phenix.Core.Net.Http.OfflineCache工程
3,phenix7.js、Phenix.Core.Net.Http.HttpClient类的Call函数,补充‘是否加密上传数据‘、‘是否解密返回数据‘参数


20191017
1,增补Phenix.Core.Message.UserMessage的订阅消息(PUSH)功能,与phenix7.js的subscribeMessage()函数功能一致,示例见Demo.Phenix.Core.Message.UserMessage_Subscribe
2,增补Phenix.Core.Data.Sequence、Phenix.Core.Data.Increment、Phenix.Core.Message.UserMessage带httpClient参数的系列函数,可直接指定调用的WebAPI服务,实现一层层调用WebAPI服务直到最后一层服务是直连数据库为止的穿N墙效果,或者说可实现N层负载均衡的应用服务器部署效果


20191020
1,增补Phenix.Core.Net.Http.HttpClient的文件上传下载功能,与phenix7.js的uploadFiles()、downloadFile()函数功能一致,示例见Demo.Phenix.Core.Net.Http.HttpClient_UploadFile_DownloadFile
2,Phenix.NET7解决方案,拆分为Phenix.NET7_ORA.sln和Phenix.NET7_MySQL.sln
3,撤销Phenix.Extensions目录,其子目录都迁移到根目录里
4,从Phenix.Core工程里提取出Business相关基类,独立为Phenix.Business工程


20191021
1,提供业务类代码生成工具Phenix.Tools.BusinessBuilder工程源码,分为for Oracle和for MySQL两套工程文件
2,整理本升级日志

 

Phenix Framework 7 for .net core 3 发布地址

标签:调用   算法   mes   command   star   引擎   adb   gis   register   

原文地址:https://www.cnblogs.com/phenixiii/p/11748749.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!