Tool.Net-3.0.0

在这里插入图片描述


Tool.Net 3.0.0 版本更新了

他是一个正式版本,可以用于线上运营,使用 Apache-2.0 证书授权,可放心使用,


提示:以下是本篇文章正文内容,下面示例可供参考

一、更新内容

备注年前大版本

  1. 新增路由自定义模式 MapApiRoute

  2. 新增特性 路由 [AshxRoute(“url/{id?}”)] 支持接口/控制,注册

  3. 新增DbProviderType.SqlServer1 用于包括新的 SqlServer(SKD:Microsoft.Data.SqlClient)

  4. 优化Api命名空间引用复杂问题,简化引用。

  5. 优化 TcpFrame 命名空间下的,全部有关部分,重新定义新的协议,支持字节流传输和字符串传输,基础协议更小。

  6. ClientFrame 模块 新增 心跳功能,需要手动开启 AddKeepAlive(5);(心跳模式开启后,将会自动检查是否断开连接)

  7. ApiPacket 允许发起方,发送超过配置包大小的包,系统会自动分包处理

  8. 重新优化多宝协议,现在更安全,更可靠。

  9. ClientFrame 转发模式,优化,现在性能可靠。

  10. TcpFrame 模块下存在大量与内存使用有关的资源,目前已经全部通过GC管理起来,内存泄漏无需关心,后期会着重处理有关GC部分。

  11. 多个已知Bug优化。

以上是大致更新说明,详情还请执行查看api文档。

二、新增函数使用步骤

代码如下(示例):

MapApiRoute方法

 //支持路由配置
 routes.MapApiRoute(name: "cs", areaName: null, template: "cs/{controller}/{action}");

AshxRoute特性

	[AshxRoute(template: "v1/Risk/{action}")]
    public class Risk : MinApi
    {
    	[AshxRoute(template: "v2/a.html")]
    	[Ashx(ID = "GetMails", State = AshxState.Post)]
        public async Task<IApiOut> GetMail(string data)
        {
            return await ApiOut.JsonAsyn(new { data });
        }
	}

AddKeepAlive方法

ClientFrame 下面的全新协议,最小包体的心跳机制,自动化,可以智能检测是否需要发送心跳,并非固定心跳。

TcpFrame 命名空间下面的太多

这里就不多说了,主要是优化改进,因为早期第一个版本,性能原因,无法跟上,导致传输流对象,性能出现瓶颈,
本次改进主要是让原本的字符串协议改版升级成字节流协议,大大提高了性能,
同时改进内部多个核心地方的核心方法,让其解析性能提高,同时保证安全性唯一性,测试性能提高60% 
(内部测试仅供参考)

移除SDK

本次移除全部 Web SDK 模块,不会影响框架性能,反之可能因此提高性能。

(因为版本差异导致的诸多不确定因素,因此解决。)
  1. Microsoft.AspNetCore.Diagnostics
  2. Microsoft.AspNetCore.Http
  3. Microsoft.AspNetCore.Routing
  4. Microsoft.Extensions.Configuration.Json
  5. Microsoft.Extensions.DependencyInjection.Abstractions

取消计划

  1. 项目减小化,推出 Tool.Core 包, 去除所有引用独立包,增加对各种场景的适用性。

     理由:因采用 .net5 自生SDK包,解决了引用包过多的问题,现已解决Web部分SDK的引用。
    

后续方向

  1. 增加SQL部分的异步调用。

  2. 可能考虑移除掉验证码部分的模块,达到取消掉最后一个SDK包的引用目的。(如果确定取消,源代码将会公开)

今年目标

将解决因Reactor带来的大量频繁操作,导致使用受限问题,希望有大佬提供帮助,需要一个将部分变量混淆的工具,包括内部方法名等等,无需加密。(秉承开源原则)


版权声明:本文为qq_33484542原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。