<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Loading

      在 Aspire 項(xiàng)目下使用 AgileConfig

      什么是 Aspire

      .NET Aspire 是一組工具、模板和包,用于構(gòu)建易于監(jiān)控的、可投入生產(chǎn)的應(yīng)用程序。.NET Aspire 通過一系列 NuGet 包交付,這些包通過啟動或解決現(xiàn)代應(yīng)用開發(fā)中的特定問題來提升開發(fā)效率。 如今的應(yīng)用通常使用大量服務(wù),例如數(shù)據(jù)庫、消息傳送和緩存,其中許多服務(wù)通過 .NET Aspire 集成得到支持。
      Aspire 是微軟發(fā)布的一項(xiàng)新技術(shù)。最近社區(qū)也有人跟我提需求說 AgileConfig 要支持 Aspire。
      因?yàn)檫@不是 Aspire 的介紹文章,所以不過多表述。想要了解可參考以下文檔:
      https://learn.microsoft.com/zh-cn/dotnet/aspire/get-started/aspire-overview

      使用 AgileConfig 的傳統(tǒng)方式

      通常我們使用 AgileConfig 至少需要以下步驟:

      1. 使用 docker run 命令把服務(wù)端跑起來
      2. 配置 admin 密碼
      3. 添加應(yīng)用,設(shè)置 appId,secret
      4. 在客戶端項(xiàng)目添加 client 包,修改 appsettings 配置文件

      通過以上步驟后,你的應(yīng)用至少應(yīng)該是能成功連上 AgileConfig 服務(wù)端了。

      在 Aspire 下使用 AgileConfig

      下面讓我們看看如何在 Aspire 下使用 AgileConfig。
      相信大家肯定看過一些 Aspire 的案例。一些 infrastructure 的組件(比如 Sqlserver 數(shù)據(jù)庫),可以通過 Aspire 直接運(yùn)行起來,通過代碼進(jìn)行一些簡單的配置后,其他項(xiàng)目就可以使用了。
      那么使用 AgileConfig 也是一樣。讓我們直接看代碼吧。

      新建 Aspire 項(xiàng)目

      使用 VS 新建一個標(biāo)準(zhǔn) Aspire 項(xiàng)目。最后我們會得到這樣一個解決方案:

      • AspireProjectWithAgileConfig.ApiService
      • AspireProjectWithAgileConfig.AppHost
      • AspireProjectWithAgileConfig.Web

      他們之間的依賴關(guān)系如下:

      在 AppHost 項(xiàng)目上使用 AgileConfig

      dotnet add package AgileConfig.Aspire.Hosting --version 1.0.0
      

      首先安裝 AgileConfig.Aspire.Hosting。 這個包是 AgileConfig 服務(wù)端的一個擴(kuò)展。使用它配合 Aspire 可以直接啟動 AgileConfig 容器并且簡單配置它。

      安裝完后,我們在 Program 下添加如下代碼:

      using Aspire.Hosting.AgileConfig;
      
      var builder = DistributedApplication.CreateBuilder(args);
      
      var agileConfig = builder.AddAgileConfig(); // 添加 AgileConfig 服務(wù)端,這會啟動一個 Container
      
      var agileConfig_apiservice = agileConfig.AddApp("apiservice"); // 在 AgileConfig 添加一個應(yīng)用 apiservice,客戶端會從這里讀取業(yè)務(wù)
      var agileConfig_webfrontend = agileConfig.AddApp("webfrontend"); // 在 AgileConfig 添加一個應(yīng)用 webfrontend,客戶端會從這里讀取業(yè)務(wù)
      
      
      var apiService = builder.AddProject<Projects.AspireProjectWithAgileConfig_ApiService>("apiservice");
      var webFrontend = builder.AddProject<Projects.AspireProjectWithAgileConfig_Web>("webfrontend").WithExternalHttpEndpoints();
      
      apiService.WithReference(agileConfig_apiservice); // apiservice 項(xiàng)目引用 agileConfig_apiservice 應(yīng)用
      apiService.WaitFor(agileConfig); // apiservice 項(xiàng)目等待 agileConfig container 啟動后再啟動自己
      
      webFrontend.WithReference(agileConfig_webfrontend);  // webFrontend 項(xiàng)目引用 agileConfig_webfrontend 應(yīng)用
      webFrontend.WaitFor(agileConfig); // webFrontend 項(xiàng)目等待 agileConfig container 啟動后再啟動自己
      
      webFrontend.WithReference(apiService);
      webFrontend.WaitFor(apiService);
      
      builder.Build().Run();
      
      

      讓我們解釋一下關(guān)鍵代碼:

      1. 添加 AgileConfig 服務(wù)端
      var agileConfig = builder.AddAgileConfig();
      

      作用:啟動一個 AgileConfig 服務(wù)端的 Docker 容器,作為配置中心。

      1. 在 AgileConfig 中注冊應(yīng)用
      var agileConfig_apiservice = agileConfig.AddApp("apiservice");
      var agileConfig_webfrontend = agileConfig.AddApp("webfrontend");
      

      作用:在 AgileConfig 中注冊兩個應(yīng)用 apiservice 和 webfrontend,它們的配置信息會被客戶端讀取。

      細(xì)節(jié):這兩個應(yīng)用對應(yīng)實(shí)際的后端 API 和前端 Web 項(xiàng)目,后續(xù)客戶端(如 apiService 和 webFrontend)會從 AgileConfig 中讀取它們的配置。

      1. 配置依賴關(guān)系
      // API 服務(wù)依賴 AgileConfig 中的 apiservice 配置
      apiService.WithReference(agileConfig_apiservice);
      apiService.WaitFor(agileConfig); // 等待 AgileConfig 容器啟動
      
      // Web 前端依賴 AgileConfig 中的 webfrontend 配置
      webFrontend.WithReference(agileConfig_webfrontend);
      webFrontend.WaitFor(agileConfig); // 等待 AgileConfig 容器啟動
      
      // Web 前端依賴 API 服務(wù)
      webFrontend.WithReference(apiService);
      webFrontend.WaitFor(apiService); // 等待 API 服務(wù)啟動
      

      作用:定義服務(wù)啟動順序和依賴關(guān)系。

      關(guān)鍵方法:

      WithReference():聲明某個服務(wù)依賴另一個服務(wù)(如配置或另一個項(xiàng)目)。

      WaitFor():確保被依賴的服務(wù)啟動后再啟動當(dāng)前服務(wù)。

      1. 新的依賴關(guān)系如下

      在客戶端項(xiàng)目上使用 AgileConfig.Client

      要連接 AgileConfig 服務(wù)端,我們需要在客戶端項(xiàng)目添加新的包引用:

      dotnet add package AgileConfig.Client.Aspire --version 1.0.0
      

      以 ApiService 項(xiàng)目為例:

      using Aspire.AgileConfig.Client;
      
      var appName = "apiservice";
      
      var builder = WebApplication.CreateBuilder(args);
      
      builder.Host.UseAspireAgileConfig(appName);
      

      客戶端項(xiàng)目現(xiàn)在配置起來就超級簡單了,只需要一行代碼就解決問題了,你甚至不需要去配置 appsettings 來指定 agileconfig 的相關(guān)配置它就能運(yùn)行了。

      運(yùn)行

      下面讓我們運(yùn)行整個項(xiàng)目看看效果吧。

      通過 Aspire 的控制臺我們可以看到 AgileConfig 的相關(guān)資源以及 2 個 project 項(xiàng)目都已經(jīng)啟動了。

      點(diǎn)擊 AgileConfig 的終結(jié)點(diǎn)可以直接打開 AgileConfig 的控制臺。使用 admin/123456 默認(rèn)密碼就可以登錄進(jìn)去。

      打開應(yīng)用配置界面,可以看到 apiService, webfrontend 項(xiàng)目已經(jīng)自動建立起來。

      打開終端界面,可以看到有兩個客戶端連接在服務(wù)端上。

      點(diǎn)擊 webFrontend 的終結(jié)點(diǎn)可以直接打開這個 blazor 項(xiàng)目,可以正常運(yùn)行。

      總結(jié)

      以上我們通過一個簡單的示例演示了在 Aspire 下如何使用 AgileConfig。跟傳統(tǒng)方案比起來,你不再需要關(guān)心:如何使用 docker 運(yùn)行 AgileConfig 的服務(wù)端,不再需要關(guān)心如何在 appsettings 下添加 AgileConfig 的相關(guān)配置。
      可以看到過程還是非常絲滑的。

      源代碼在這:
      https://github.com/kklldog/Aspire.Hosting.AgileConfig

      https://github.com/dotnetcore/AgileConfig

      關(guān)注我的公眾號一起玩轉(zhuǎn)技術(shù)

      posted @ 2025-03-03 01:21  Agile.Zhou  閱讀(514)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 性欧美vr高清极品| 亚洲男人天堂2021| 亚洲理论在线A中文字幕| 韩国精品福利视频一区二区| 日韩剧情片电影网站| 久久精品无码一区二区三区| 熟女人妻视频| 亚洲男人电影天堂无码| 色婷婷av久久久久久久| 日韩 一区二区在线观看| 性色欲情网站iwww九文堂| 亚洲欧美综合中文| 国产 一区二区三区视频| 精品国产美女福到在线不卡| 思思热在线视频精品| 热re99久久精品国产99热| 国产精品中文字幕在线看| 欧美国产日韩久久mv| 国产SM重味一区二区三区 | 欧美激情精品久久| 亚洲激情一区二区三区在线| 3d无码纯肉动漫在线观看| 免费VA国产高清大片在线| 亚洲夂夂婷婷色拍ww47| 日韩在线视频网| 国产精品白丝久久av网站| 沙河市| 国产在线观看播放av| 无码专区 人妻系列 在线| 成人白浆一区二区三区在线观看| 日韩有码中文字幕一区二区| 久久99精品久久久久久9| 色熟妇人妻久久中文字幕| 亚洲尤码不卡av麻豆| 亚洲中文字幕国产精品| 久热这里有精品视频在线| 永久免费在线观看蜜桃视频| 4480yy亚洲午夜私人影院剧情| 亚洲精品中文字幕无码蜜桃| 国产精品国产自产拍高清| 欧美日韩亚洲国产|