Tool.Net 3.3.0 版本更新了
他是一个正式版本,可以用于线上运营,使用 Apache-2.0 证书授权,可放心使用,
提示:以下是本篇文章正文内容,下面示例可供参考
一、更新内容
-
新增 UseIgnoreUrl 拦截器 用拦截部分请求
-
新增 ApiOut.PathViewAsync(“文件夹路径”) 文件夹路径对象
-
新增 Api 输出 Json 方法允许携带序列化对象
-
新增 AshxRouteData.GetNewJsonOptions() 方法获取全新的 JsonSerializerOptions 配置对象
-
新增 AddAshx 下面配置 JsonOptions 变量 允许注册Api全局 JsonSerializerOptions 配置对象
-
优化 Api底层,优化性能
-
优化 Api 异常反馈,解决异步异常下的错误点不明确。
-
优化全局Web异常拦截器 app.UseExceptionHandler() 异步改为异步实现。
-
新增 JsonConverterHelper 对象,目前下面只包含时间类型对象的,如果有需要的可以向作者提交建议
-
优化 Json 字符串转 键值对或强类型变量的值是不确定的问题,现在已经改的基本满意了
-
优化 Sql 请求统计 类型改为 ulong 存储更大。
-
新增 VerificCodeHelper.GetRandomCodeV2
-
移除 VerificationCodeHelper 类 改为 VerificCodeHelper 类
-
验证码类改进优化较多,不详细说明,多线程下无问题。
二、新增函数使用步骤
代码如下(示例):
//允许注册Api全局 JsonSerializerOptions 配置对象
services.AddAshx(o =>
{
o.IsAsync = true;
o.JsonOptions = new System.Text.Json.JsonSerializerOptions(System.Text.Json.JsonSerializerDefaults.Web)
{
//IgnoreReadOnlyFields = true,
Encoder = System.Text.Encodings.Web.JavaScriptEncoder.Create(System.Text.Unicode.UnicodeRanges.All),
};
//o.JsonOptions.Converters.Add(JsonConverterHelper.GetDateConverter());
});//注册api。
//屏蔽访问的地址
app.UseIgnoreUrl("屏蔽访问的地址"); //示例: a/a/a
public async Task<IApiOut> Index() => await ApiOut.PathViewAsync("Cs");
//文件夹路径:\wwwroot\Views\类名\(Cs)\方法名.html
//将json字符串序列化成对象
dynamic obj = "[{\"aa\":{\"a1\":\"aa11\",\"a2\":\"https:\\/\\/www.abc.com\\/asfasd8asfad\"}},{\"aa\":{\"a1\":\"aa12\",\"a2\":\"https:\\/\\/www.abc.com\\/asfasd8asfad\"}}]".JsonDynamic();
// 键值对版本
var obj = "{\"aa\":{\"a1\":\"aa11\",\"a2\":\"https:\\/\\/www.abc.com\\/asfasd8asfad\"}}".Json();
//验证码
string code = VerificCodeHelper.GetRandomCodeV2(out int val);//val 结果
var codeImage = VerificCodeHelper.GetVCode(code);
var base64 = "data:image/jpeg;base64," + codeImage.ToBase64();
移除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部分的异步调用(更多的)。
-
完善api发生错误时,AshxException 对象中将包含请求当前接口所需的全部参数。
-
JsonConverter 增加 DBNull 类型的值类型改为Null 这是必须的,项目中很需要。
-
下一个版本增加 appsettings 文件修改事件 用于特定操作。支持动态修改数据库链接配置。
-
TcpFrame 将继续更新,下一个版本大概是允许输出字典对象,外加字节流,字典值精准限制,目前已在实验阶段,尽可能的满足更多需求,以及优化底层,允许异步调用等等,提供异步模块。
今年目标
- 从此版本开始,往后所有版本均可使用,无需更新,没有任何限制,完全遵循 Apache-2.0 授权规则。
- 希望有愿意一同创新 SDK 的开发者,我需要开发伙伴,一个人走着难免会累,希望可以寻求到一同维护,共同成长的伙伴。