文章目錄
- Tool.Net 3.3.0 版本更新了
- 一、更新内容
- 二、新增函數使用步驟
- 移除SDK
- 取消計劃
- 後續方向
- 今年目标
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 的開發者,我需要開發夥伴,一個人走着難免會累,希望可以尋求到一同維護,共同成長的夥伴。