天天看點

Tool.Net-3.3.0Tool.Net 3.3.0 版本更新了一、更新内容二、新增函數使用步驟移除SDK取消計劃後續方向今年目标

Tool.Net-3.3.0Tool.Net 3.3.0 版本更新了一、更新内容二、新增函數使用步驟移除SDK取消計劃後續方向今年目标

文章目錄

  • Tool.Net 3.3.0 版本更新了
  • 一、更新内容
  • 二、新增函數使用步驟
  • 移除SDK
  • 取消計劃
  • 後續方向
  • 今年目标

Tool.Net 3.3.0 版本更新了

他是一個正式版本,可以用于線上營運,使用 Apache-2.0 證書授權,可放心使用,

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

一、更新内容

  1. 新增 UseIgnoreUrl 攔截器 用攔截部分請求
  2. 新增 ApiOut.PathViewAsync(“檔案夾路徑”) 檔案夾路徑對象
  3. 新增 Api 輸出 Json 方法允許攜帶序列化對象
  4. 新增 AshxRouteData.GetNewJsonOptions() 方法擷取全新的 JsonSerializerOptions 配置對象
  5. 新增 AddAshx 下面配置 JsonOptions 變量 允許注冊Api全局 JsonSerializerOptions 配置對象
  6. 優化 Api底層,優化性能
  7. 優化 Api 異常回報,解決異步異常下的錯誤點不明确。
  8. 優化全局Web異常攔截器 app.UseExceptionHandler() 異步改為異步實作。
  9. 新增 JsonConverterHelper 對象,目前下面隻包含時間類型對象的,如果有需要的可以向作者送出建議
  10. 優化 Json 字元串轉 鍵值對或強類型變量的值是不确定的問題,現在已經改的基本滿意了
  11. 優化 Sql 請求統計 類型改為 ulong 存儲更大。
  12. 新增 VerificCodeHelper.GetRandomCodeV2
  13. 移除 VerificationCodeHelper 類 改為 VerificCodeHelper 類
  14. 驗證碼類改進優化較多,不詳細說明,多線程下無問題。

二、新增函數使用步驟

代碼如下(示例):

//允許注冊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 子產品,不會影響架構性能,反之可能是以提高性能。

(因為版本差異導緻的諸多不确定因素,是以解決。)
           
  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. 完善api發生錯誤時,AshxException 對象中将包含請求目前接口所需的全部參數。
  3. JsonConverter 增加 DBNull 類型的值類型改為Null 這是必須的,項目中很需要。
  4. 下一個版本增加 appsettings 檔案修改事件 用于特定操作。支援動态修改資料庫連結配置。
  5. TcpFrame 将繼續更新,下一個版本大概是允許輸出字典對象,外加位元組流,字典值精準限制,目前已在實驗階段,盡可能的滿足更多需求,以及優化底層,允許異步調用等等,提供異步子產品。

今年目标

  1. 從此版本開始,往後所有版本均可使用,無需更新,沒有任何限制,完全遵循 Apache-2.0 授權規則。
  2. 希望有願意一同創新 SDK 的開發者,我需要開發夥伴,一個人走着難免會累,希望可以尋求到一同維護,共同成長的夥伴。

繼續閱讀