iT邦幫忙

2023 iThome 鐵人賽

DAY 21
0
自我挑戰組

30天開啟.NET後端工程師的旅程系列 第 21

Day 21 ASP.NET Core基本概念

  • 分享至 

  • xImage
  •  

ASP.NET Core 是一個跨平台的開放原始碼框架,用於建置現代、雲端和連線網際網路應用程式。以下是有關 ASP.NET Core 的詳細解釋,包括它與傳統 ASP.NET 的差異以及一些優點:

  1. 跨平台性:
    • ASP.NET Core 可在不同操作系統上運行,包括 Windows、macOS 和 Linux。這意味著您可以使用您最喜歡的開發工具,並在不同平台上部署應用程式。
  2. 架構變更:
    • ASP.NET Core 是 ASP.NET 4.x 的重新設計,導致更精簡和模組化的架構。這使得應用程式更容易開發、測試和維護。
  3. 可測試性架構:
    • ASP.NET Core 提供了可測試性架構,這意味著您可以輕鬆地編寫單元測試和集成測試,以確保您的應用程式的品質。
  4. Razor 頁面:
    • Razor 頁面使得編寫以頁面為基礎的應用程式更容易和更具生產力。這是一種強大的視圖引擎,用於生成動態的 HTML 內容。
  5. Blazor:
    • ASP.NET Core 引入了 Blazor,它允許您在瀏覽器中使用 C# 和 .NET 進行客戶端開發。這讓您能夠共用伺服器端和用戶端應用程式邏輯。
  6. 開源和社區驅動:
    • ASP.NET Core 是開源的,擁有一個活躍的社區,這意味著有大量的資源和支援可用於開發。

8. 高效能和模組化的 HTTP 管線:

  • ASP.NET Core 提供了高效能的 HTTP 要求管線,這有助於處理大量的同時請求。它還支援模組化的架構,這使得擴展和自定義變得更容易。

9. 跨平台部署:

  • 您可以將 ASP.NET Core 應用程式部署到雲端或內部部署伺服器,並在不同的環境中運行。

總之,ASP.NET Core 是一個現代化、高效能、跨平台且開源的框架,它簡化了 Web 應用程式和 Web API 的開發過程,並提供了許多有用的功能和優勢。與傳統的 ASP.NET 相比,它更具彈性,並且支援現代的開發需求。

相依性插入 (DI):
ASP.NET Core 提供了內建的相依性插入(Dependency Injection,簡稱 DI)容器,用於管理應用程式的服務相依性,DI 容器允許您在應用程式的各個部分中輕鬆解析這些服務。在 Program.cs 中,您可以使用 builder.Services.AddXXX() 方法將服務註冊到 DI 容器中,例如 Razor Pages 和 MVC 控制器。
就像搭積木一樣,我們需要不同的積木來建造一個城堡。ASP.NET Core 中有一個特殊的盒子,叫做相依性插入盒子。這個盒子可以幫助我們把不同的積木(服務)放在一起,讓我們的城堡變得更強大,而不需要一塊一塊地建造。

中介軟體:
ASP.NET Core 使用中介軟體組件來處理 HTTP 請求和回應。每個中介軟體元件執行特定的操作,並將請求傳遞給下一個中介軟體或終止處理。您可以使用 app.UseXXX() 方法來將中介軟體添加到 HTTP 請求管線中,以自訂請求的處理流程。這些中介軟體元件可以處理例外狀況、執行身份驗證、設定路由規則等。
想像你在玩一個火車遊戲,火車必須經過許多站。每個站點都做一些不同的事情,例如檢查車票、讓乘客下車等。中介軟體就像這些火車站,它們負責處理不同的事情,然後將火車傳送到下一個站。

主機:
ASP.NET Core 應用程式在啟動時建立一個主機,它包含 HTTP 伺服器實作、中介軟體元件、記錄、相依性插入(DI)容器、組態等。主機是整個應用程式的運行時環境,負責處理傳入的 HTTP 請求並將其傳遞到適當的中介軟體以進行處理。
主機就像一個大型派對的主辦人。它負責確保所有的朋友都能來參加派對,並提供派對所需的食物和音樂。在我們的應用程式中,主機是一個大老闆,負責處理所有的事情,例如處理網站的訪問者,確保網站運行良好。

組態:
ASP.NET Core 提供了組態架構,可用於從不同來源(如 .json 檔案、.xml 檔案、環境變數、命令列引數)中讀取應用程式的設定。您可以根據需要自訂組態提供者以支援其他來源。預設情況下,應用程式從 appsettings.json、環境變數等讀取組態。
組態就像一個神奇的寶藏地圖,告訴我們在哪裡可以找到寶藏。在我們的應用程式中,組態告訴我們許多重要的資訊,例如網站的名稱、顏色、密碼等等。

記錄:
ASP.NET Core 支援多種記錄提供者,可用於紀錄應用程式的運行時資訊。記錄提供者包括主控台、檔案記錄、事件記錄等,並且可以自訂記錄訊息的輸出和格式。
記錄就像是寫下我們的故事,所以我們可以回顧它們。當我們在做一些重要的事情時,我們可以寫下來,以後再看。在應用程式中,記錄幫助我們記錄發生的事情,以便稍後檢查它們。

路由:
路由是將 URL 映射到處理程序(如 Razor 頁面、MVC 控制器的動作方法或中介軟體)的方式。ASP.NET Core 路由讓您能夠控制應用程式的 URL 結構,以及如何處理不同的 URL 請求。您可以使用 app.UseRouting() 設定路由,並定義路由規則。
想像你有一張地圖,上面標有不同的道路和目的地。路由就像是告訴我們如何到達目的地的指示。在我們的應用程式中,路由告訴我們如何找到正確的網頁或資源,就像地圖上的指示告訴我們如何到達目的地一樣。

以上這些概念共同構成了 ASP.NET Core 應用程式的基本架構,使您能夠建立高效且可擴展的 Web 應用程式,處理各種 HTTP 要求並提供所需的服務。這種模組化和配置靈活性使 ASP.NET Core 成為一個強大的開發框架,適用於各種不同的應用程式場景。


上一篇
Day20 MVC 架構
下一篇
Day 22 Interfaces 介面
系列文
30天開啟.NET後端工程師的旅程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言