<input id="ohw05"></input>
  • <table id="ohw05"><menu id="ohw05"></menu></table>
  • <var id="ohw05"></var>
  • <code id="ohw05"><cite id="ohw05"></cite></code>
    <label id="ohw05"></label>
    <var id="ohw05"></var>
  • GeneralUpdate20220323里程碑版本發布

    大家好我是juster,GeneralUpdate的開源項目作者。這次將發布GeneralUpdate里程碑版本,該版本發生了巨大改變歷時4個月的時間終于要和大家見面了。開源不易希望大家能多多支持。可能或多或少會有些bug希望大家多多反饋,這里也有一個小小的心愿希望這個開源項目能上1000star,拜托各位小伙伴了。

    • github:https://github.com/WELL-E/AutoUpdater

    • gitee:https://gitee.com/Juster-zhu/GeneralUpdate

    • 在線幫助文檔:http://justerzhu.cn/  (后續將會按組件拆分成對應的文檔)

    • Nuget版本管理參考標準:https://docs.microsoft.com/zh-cn/nuget/concepts/package-versioning

    • 應用程序集版本管理參考標準:https://docs.microsoft.com/zh-cn/dotnet/standard/assembly/versioning (被組件更新的客戶端程序,說通俗點就是你公司的產品;組件的操作將按照這個標準執行。)

    • 本次版本發布會有很多改變,不是平滑升級(追求穩定或不想改動慎用)。本項目正在逐漸穩定后續將會平滑升級避免開發者再度修改。

    • 如果發生“烏龍事件” 例如:發布更新包內容自身錯誤或更新過程中發生意外,不可回滾。目前解決方案(1)重新請求更新,(2)通過推送機制發送緊急修復版本更新包;來解決此類問題。

    • 關于“不可回滾”這個問題,如果有更好的辦法希望各位可以直接在issues中提出您的看法;目前社區中有兩種聲音(1)出現意外情況希望組件可以將本地程序回滾至原來的版本,保證哪怕更新失敗也要用戶可用。(2)更新組件的意義就是將組件推向新的版本讓本次的版本發布有效,如果更新失敗那么讓它更新成功為止;只許前進不許退。

    GeneralUpdate力致于支持多操作系統、多UI框架、多.NET框架版本達到“通用更新”。本開源項目有企業生產環境落地的實踐作為支撐,并由本人及社區在持續做新特性的迭代、維護管理。接下來的內容相信大家都會感興趣,我想到了很多有意思的想法這里會逐個分享給大家。

     

    1.開發歷程

    本次發布版本是從2022年1月1日開始,重構、設計、開發、修復、編寫文檔GeneralUpdate到2022年3月22日。在這將近4個月的時間里幾乎所有的休息時間都在做開源;有時候寫到凌晨躺在床上因為寫代碼導致的大腦興奮一直睡不著長期的睡眠不足導致凝血功能失常,依舊在項目中對迭代、設計和社區建議中做出努力。非常感謝社區的小伙伴的支持、建議和幫助,這里再次向.net社區發起招募希望可以有更多的小伙伴加入到開源中來。依舊保持之前所說的獎勵機制(https://mp.weixin.qq.com/s/jP4T_M1pqpZ49g7cSs2rnw)或根據貢獻難度分配給參加開源的開發者們。

    補充:需提交功能性、重要修改PR(“蜻蜓點水”的PR不算在獎勵分配的考慮范圍內)、重要平臺調研或測試工作。

    特別感謝@Weihan Li 、@lindexi 、 @walterlv 以及@github參考的開源項目作者們(參考代碼均為MIT協議不會發生其它協議混淆造成“代碼感染”),在此期間的技術解答和參考的技術文章、代碼。如果沒有社區的小伙伴的支持GeneralUpdate將會很難進步。

     

    2.開源建設

    我的目前的想法如下,不知道合不合適。如果有任何想溝通交流的可以郵件聯系我zhuzhen723723@outlook.com

     

    • (1)捐贈10元,提供使用解答,在線文檔。

    • (2)捐贈100元,提供最新版本的GeneralUpdate簡易設計文檔、使用教學視頻(文檔將以郵件的方式發送至捐贈者的郵箱中)。

    • (3)捐贈1000元,提供針對本組件的技術支持。

    • 需要特別說明的是,在使用開源項目的過程中遇到的問題希望在github或gitee上提交issue或PR以方便大家在網絡上搜索問題及解決方案,請勿單獨私聊(在平臺上提交issue或PR我這里都是有郵件通知的會第一時間進行回復和解答)。

    • 所有的文檔及視頻教程將在版本發布后陸續補充(發布之日起一個自然月內補齊)。

    以上所有的捐款將會透明公開、并用于開源項目的建設中。所有的捐贈者提供捐贈截圖和個人郵箱(不公開)登記記錄,并會在GeneralUpdate的readme.md中記錄在捐贈墻上。另外會將提交PR的開發者記錄在readme.md中記錄在貢獻墻。

    捐贈通道目前考慮的是集中在gitee的捐贈功能當中,這樣捐獻的資金大家都看到見。(https://gitee.com/Juster-zhu/GeneralUpdate

    *這里,特別說明一下為什么會制定這樣的捐贈規則。

    • GeneralUpdate項目是基于MIT(https://baike.baidu.com/item/MIT%E8%AE%B8%E5%8F%AF%E8%AF%81/6671281)協議開放的不會收取使用者(企業、個人)的任何費用;

    • 在開源社區中所有的開源工作者都需要支持和鼓勵,為保持開源項目的持續進行和避免沒有其他開發者愿意參與開源。

    • 有了社區的捐贈會帶來更多的開發者加入到開源回饋給社區更好用的開源項目,這樣的一個良性循環改善.NET開源社區的環境。(捐贈并非購買版權或服務,純屬捐贈者認可和支持)

    有錢的捧個錢場,沒錢的捧個star。并向各位致以最大的敬意。

     

    3.發布內容

    這里先看看發布的版本號以及這次大版本的更新發生了哪些改動(共8個部分)。

    組件名稱 版本號(old) 版本號(new) 狀態
    GeneralUpdate.AspNetCore 1.0.0 1.1.0 正常
    GeneralUpdate.ClientCore 1.1.2 2.3.6 正常
    GeneralUpdate.Core 3.6.10 4.10.12 正常
    GeneralUpdate.Differential - 1.0.0 正常
    GeneralUpdate.Common 1.0.0 - 移除

     

    【1】組件GeneralUpdate.AspNetCore

    (1)[NEW] 添加了最新版本推送功能,VersionHub對象。主要解決臨時需要推送緊急修復重大bug的版本。

    var builder = WebApplication.CreateBuilder(args);
    builder.Services.AddSingleton<IUpdateService, GeneralUpdateService>();
    builder.Services.AddSignalR();
    var app = builder.Build();
    
    app.MapHub<VersionHub>("/versionhub");
    
    app.Use(async (context, next) =>
    {
       var hubContext = context.RequestServices.GetRequiredService<IHubContext<VersionHub>>();
       await CommonHubContextMethod((IHubContext)hubContext);
       if (next != null)
      {
           await next.Invoke();
      }
    });
    
    async Task CommonHubContextMethod(IHubContext context)
    {
       await context.Clients.All.SendAsync("clientMethod", "");
    }

     

    【2】組件GeneralUpdate.ClientCore

    (1)[NEW] 在GeneralClientBootstrap中重載了配置方式,該方法簡化為只需要傳遞遠程服務器地址例如http://127.0.0.1 和更新程序名稱即可,簡化了開發者需要關心的參數組件內自動獲取。

    public GeneralClientBootstrap Config(string url, string appName = "AutoUpdate.Core");

    (2)[NEW] 添加了最新版本接收推送功能,VersionHub對象。主要解決臨時需要接收緊急修復重大bug的版本,可以在GetMessage回調函數中可添加更新操作。

    VersionHub<string>.Instance.Subscribe($"{ baseUrl }/{ hubName }", "TESTNAME", new Action<string>(GetMessage));

     

    【3】組件GeneralUpdate.Core

    (1)[FIX] 修復下載中途斷網,到達超時時間沒有異常上拋問題。

    (2)[REFACTOR] 重構多任務下載設計。

    (3)[FIX] 修復FileUtil.Update32Or64Libs在某些情況下會拋出異常。

    (4)[REFACTOR] 重構默認更新策略設計。

    (5)[NEW] 添加了最新版本接收推送功能,VersionHub對象。主要解決臨時需要接收緊急修復重大bug的版本。開發者可以在GetMessage回調函數中可添加更新操作。

    VersionHub<string>.Instance.Subscribe($"{ baseUrl }/{ hubName }", "TESTNAME", new Action<string>(GetMessage));

    (6)[NEW] 支持7z壓縮包的解壓功能。

    (7)[REMOVE] 移除了GeneralUpdate.Core與GeneralUpdate.ClientCore 中重復代碼,通用代碼通過鏈接文件解決冗余問題。

    (8)[NEW] 支持增量更新功能,例如:只更新了一個文件,那么就只將該文件打包。

    (9)[NEW] 支持二進制差分功能,例如:temp.dll 發生了修改產生了新版本的文件,那么將會把temp.dll的新版本文件和老版本文件做一個差分。最后生成一個.patch的補丁文件,按照正常項目迭代那么這個.patch的補丁將會是kb級的。再配合7z的高壓縮將更新包的大小做到目前狀態下的極致節省流量和帶寬占用。特別需要說明的是,如果在新版本中添加了新文件還是會將新增文件原封不動的打包到更新包中。

     

    【4】組件[NEW]GeneralUpdate.Differential

    在GeneralUpdate中新增組件Differential,該組件主要提供以下功能:

    (1)[NEW] 新增二進制差分更新,生成.patch補丁文件。

    (2)[NEW] 新增增量更新,例如:version 1.1.1.1原有10個文件這次版本發布修改了其中3個文件那么只會將修改的文件進行打包。

    (3)[NEW] 更新配置文件(目前只支持.json配置文件且內容深度為1級),例如:客戶端程序使用.json格式文件作為配置文件,那么將會保留客戶端原有配置內容的前提下更新配置文件內容。假設客戶端原有配置文件(.json)中包含內容:

    {
      "ip":"123456789",
      "port":9999
    }

    服務端新的配置文件結構為:

    {
      "ip":"0",
      "port":0,
      "path":"c://"
    }

    那么將會把,“path”字段更新到客戶端本地配置文件中并保留原有內容為:

    {
      "ip":"123456789",
      "port":9999,
      "path":"c://"
    }

     

    【5】組件GeneralUpdate.Zip

    (1)[REFACTOR] 重構壓縮組件設計,將支持.zip和.7z壓縮包格式。

    (2)[NEW] 添加7z解壓功能。

     

    【6】組件[REMOVE]GeneralUpdate.Common

    (1)移除該組件,解除GeneralUpdate.Core與GeneralUpdate.ClientCore 耦合,發現目前版本并不需要。

     

    【7】組件GeneralUpdate.Single

    本次未更新實際功能。

     

    【8】測試用例 Example

    為簡化開發者在驗證、測試過程中編寫用例開發工作。在GeneralUpdate解決方案中添加了以下測試用例:

    • AutoUpdate.ClientCore

    • AutoUpdate.Core

    • AutoUpdate.MD5

    • AutoUpdate.Differential

    • AutoUpdate.ZIP

    • AutoUpdate.MinimalService

    • AutoUpdate.Test

     

    以上組件將會同步到github、gitee、nuget平臺,歡迎大家轉發、關注、支持、打賞。GeneralUpdate最新動態將優先在本公眾號發布,關于本次發布分享到這里,感謝各位的閱讀。

    posted @ 2022-03-23 23:30  justerzhu  閱讀(221)  評論(6編輯  收藏  舉報
    国产美女a做受大片观看