跳過到頁腳內容
Iron Academy Logo
C# 應用程式
C# 應用程式

其他分類

在 ASP.NET Core / .NET 8 設置期間訪問設置

Tim Corey
8m 02s

ASP.NET Core 是由 Microsoft 提供的跨平台、開源的網頁框架,可以讓開發者高效地構建現代網頁應用程式和雲端原生應用程式。 在最新版本的 .NET 中,ASP.NET Core 繼續提供一個輕量、安全且靈活的平台,用於開發可在 Windows、Linux 和 macOS 上運行的網頁應用程式。

在本文中,我們將深入探討如何在 ASP.NET Core 的設定過程中存取組態設定,並參考 Tim Corey 的 10 分鐘培訓影片。 Tim 演示了開發者如何在 program.cs 中於依賴注入完成配置前存取組態值,這是創建靈活且易於維護的網頁應用程式的重要技術。

為何提早存取組態很重要

Tim Corey 開始時強調了在 ASP.NET Core 中應用程式設定的重要性。 據 Tim 所說,appsettings.json 是一個 "存儲組態的好地方",因為它允許開發者更改值而無需重新編譯或重新部署應用程式。

在網頁開發中,通常依賴於組態來設定服務,例如設定API的URL或調整特定環境的參數。 通常,在 .NET Core 的網頁應用程式中,開發者通過依賴注入來存取組態:

@inject IConfiguration config

然而,Tim 指出,有時您需要在設定過程中存取這些組態值,例如在 program.cs 中配置 HTTP 客戶端或其他服務時。 這樣做可以確保您的應用程式在不同環境(如開發、測試或生產)中保持靈活和適應性。

設定一個最小化的 Blazor 應用程式

為了演示,Tim 創建了一個簡單的 Blazor 應用程式,關閉互動功能以完全專注於 program.cs。 他強調,ASP.NET Core 的架構允許您將組態與程式碼分開,這使得管理網頁應用程式和雲端原生專案變得更容易。

這種方法也與 .NET 平台的跨平台特性一致,因為相同的組態邏輯可在 Windows、Linux 和 macOS 上不加修改地運行。

使用應用程式設定配置 HTTP 客戶端

Tim 帶領我們通過在 program.cs 中註冊 HTTP 客戶端的情境:

builder.Services.AddHttpClient("LocalAPI", client =>
{
    client.BaseAddress = new Uri("https://localhost:7654");
});

雖然這樣設置有效,但 Tim 解釋了硬編碼 URL 並非理想的方式。 如果 API 端點更改,開發人員必須更新程式碼並創建一個合併請求來部署。 相反,他建議將值存儲在 appsettings.json 中:

{
  "LocalAPI": "https://localapi.fromconfig"
}

這確保框架能夠動態拉取組態,避免重新編譯並減少部署過程中的錯誤。 它還符合安全和維護性良好的網頁應用程式的最佳實踐。

在 Program.cs 中存取組態

Tim 演示了如何在依賴注入前存取組態值:

var localApiBaseAddress = builder.Configuration.GetValue<string>("LocalAPI");

Tim 強調的關鍵點:

  • builder.Configuration 在 builder.Build() 之前可用。

  • 值可以來自 appsettings.json、環境變量、用戶祕密,甚至 Azure Key Vault。

  • 這樣可以動態配置服務、日誌或其他網頁框架組件。

Tim 設置了一個斷點來驗證 LocalAPI URL 是否正確檢索。 他指出此方法在所有支持的平台上都有效,使其成為跨平台開發的理想之選。

處理缺失的組態

Tim 針對組態鍵可能遺漏或為空的情況進行說明。 他展示了如何使用 GetValue 提供默認值:

var localApiBaseAddress = builder.Configuration.GetValue<string>("LocalAPI", "https://localhost:7654");

這確保即便組態未設置,您的應用程式也能準備好運行,提高錯誤處理和開發者的工作效率。 它還降低了在雲部署或不同平台上運行時出錯的可能性。

提早存取組態的好處

Tim 列舉了設置過程中拉取組態的幾個優點:

  1. 動態設置:像 HttpClient 這類服務可以使用特定環境的端點。

  2. 避免重新編譯:更改 URL 或其他設置不再需要改程式碼。

  3. 彈性記錄和服務:使用組態值配置日誌或其他網頁框架服務。

  4. 支持多個來源:組態可以來自 appsettings.json、環境變量、用戶祕密或雲端金鑰保管庫。

他強調這種方法將應用程式保持輕量且易於維護,同時充分利用 ASP.NET Core 框架和 .NET 平台。

運行和測試應用程式 (6:03–7:36)

Tim 示範如何清理程式碼並運行應用程式。他顯示 LocalAPI URL 是從組態中提取的,或者回到默認值:

var localApiBaseAddress = builder.Configuration.GetValue<string>("LocalAPI", "https://localhost:7654");

這種靈活的設置允許開發者繼續構建網頁應用程式,而無需擔心硬編碼的 URL 或因小更改而重複提交合併請求。 它還確保在 Linux、Windows 或 macOS 上的跨平台部署無縫銜接。

結論

Tim Corey 總結時強調,在 ASP.NET Core / .NET 8 中設置過程存取組態的簡便性和效率。採用:

builder.Configuration.GetValue()

開發者可以:

  • 動態配置服務

  • 避免在框架中硬編碼值

  • 支持多個環境和平台

  • 提高開發者工作效率和錯誤處理能力

這項技術對於創建安全、可維護和適應雲端的網頁應用程式至關重要。 Tim 的實用演示展示了即便是輕量、跨平台的 ASP.NET Core 應用程式,也可以是強大、靈活且準備好應對現代網頁開發的。

Tim Corey 的 影片 是開發者想掌握 ASP.NET Core 中組態管理的必看內容。 通過按照他的步驟,您可以確保您的應用程式靈活、可維護,並準備好進行跨平台部署、雲環境和現代網頁架構。

Hero Worlddot related to 在 ASP.NET Core / .NET 8 設置期間訪問設置
Hero Affiliate related to 在 ASP.NET Core / .NET 8 設置期間訪問設置

通過分享您所愛的東西賺得更多

您是否在為使用.NET、C#、Java、Python或Node.js的開發者創建內容?將您的專業知識轉化為額外收入!

鋼鐵支援團隊

我們每週 5 天,每天 24 小時在線上。
聊天
電子郵件
打電話給我