文章目录
Tool.Net 3.0.0 版本更新了
他是一个正式版本,可以用于线上运营,使用 Apache-2.0 证书授权,可放心使用,
提示:以下是本篇文章正文内容,下面示例可供参考
一、更新内容
备注年前大版本
新增路由自定义模式 MapApiRoute
新增特性 路由 [AshxRoute(“url/{id?}”)] 支持接口/控制,注册
新增DbProviderType.SqlServer1 用于包括新的 SqlServer(SKD:Microsoft.Data.SqlClient)
优化Api命名空间引用复杂问题,简化引用。
优化 TcpFrame 命名空间下的,全部有关部分,重新定义新的协议,支持字节流传输和字符串传输,基础协议更小。
ClientFrame 模块 新增 心跳功能,需要手动开启 AddKeepAlive(5);(心跳模式开启后,将会自动检查是否断开连接)
ApiPacket 允许发起方,发送超过配置包大小的包,系统会自动分包处理
重新优化多宝协议,现在更安全,更可靠。
ClientFrame 转发模式,优化,现在性能可靠。
TcpFrame 模块下存在大量与内存使用有关的资源,目前已经全部通过GC管理起来,内存泄漏无需关心,后期会着重处理有关GC部分。
多个已知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 模块,不会影响框架性能,反之可能因此提高性能。
(因为版本差异导致的诸多不确定因素,因此解决。)
- Microsoft.AspNetCore.Diagnostics
- Microsoft.AspNetCore.Http
- Microsoft.AspNetCore.Routing
- Microsoft.Extensions.Configuration.Json
- Microsoft.Extensions.DependencyInjection.Abstractions
取消计划
项目减小化,推出 Tool.Core 包, 去除所有引用独立包,增加对各种场景的适用性。
理由:因采用 .net5 自生SDK包,解决了引用包过多的问题,现已解决Web部分SDK的引用。
后续方向
增加SQL部分的异步调用。
可能考虑移除掉验证码部分的模块,达到取消掉最后一个SDK包的引用目的。(如果确定取消,源代码将会公开)
今年目标
将解决因Reactor带来的大量频繁操作,导致使用受限问题,希望有大佬提供帮助,需要一个将部分变量混淆的工具,包括内部方法名等等,无需加密。(秉承开源原则)