作者引言
很高興啊,我們來到了IceRPC之使用Dev Containers進行 .NET QUIC 精簡開發,主要是一篇指引,如何使用開發容器做為開發環境,進行開發IceRPC,可適用於任務應用的開發
使用 Dev Containers 進行 .NET QUIC 精簡開發
主要是引導大家,如何使用開發容器
Development Containers
,進行.Net下的QUIC的開發。
QUIC 是一種考慮到效能和安全性的現代傳輸協議,是遠端過程呼叫(RPCs)的理想選擇。 然而,利用 QUIC 功能開發 .NET 應用程式,可能具有挑戰性,因為.NET 對跨平臺 QUIC 的支援有限。例如:.NET QUIC 實現需要 Linux 上的 libmsquic
庫,並且截至撰寫本文時還未支援 Windows 10 或 macOS。因此,深入研究基於 QUIC 的應用程式開發的最有效方法之一是利用開發容器development containers。
開發容器(簡稱dev container) 允許將容器作為功能齊全的開發環境。它可用於執行應用程式、分離使用程式碼庫所需的工具、庫或執行時,並幫助持續整合和測試。
https://containers.dev
這些容器能夠建立行動式、一致的開發環境 - 解決 QUIC 開發.NET相關的特定平臺的挑戰,並確保團隊中的所有開發人員都在使用相同的工具和庫。
本篇將引導設定,專門用於開發 .NET 應用程式的開發容器,應用程式使用 QUIC,然後說明,如何使用此容器執行簡單的 QUIC 伺服器和客戶端。涉及開發容器的整體概念,可以應用於任何應用!
先決條件
Docker
Docker 是一個用於構建和共享容器化應用程式的工具。 Docker 開始使用的最佳方法是在電腦機器上安裝 Docker Desktop.
裝 Docker Desktop 後,啟動它並確保其執行。可以透過在終端中執行以下命令來驗證 Docker 是否正確安裝以及 Docker 守護程式是否正在執行:
docker info
Visual Studio Code
雖然可以使用任何支援 dev 容器的編輯器,但本篇將假設正在使用 Visual Studio Code(VS Code)。 因此,請確保已下載 VS Code 並安裝了 Dev Containers 擴充套件:
- VS Code
- Dev Containers
1. 建立 .devcontainer
目錄
既然我們已經安裝並執行了 Docker,可以開始配置我們的開發環境了。建立新目錄,或導航到要設定開發容器的現有專案。
導航到專案並建立一個頂級目錄,可以在其中儲存開發環境配置檔案和程式碼。
mkdir .devcontainer
cd .devcontainer
2. 建立 devcontainer.json
在 .devcontainer
資料夾中建立 devcontainer.json
檔案。該檔案將定義開發環境的配置。雖然可以使用 devcontainer.json
檔案來指定各種設定,但我們只會指示它使用我們將在下一步中建立的 Dockerfile
,並指定一些執行引數。可以在Dev Container specification中找到其他配置選項。
{
"name": "QUIC Development Container",
"build": {
"dockerfile": "Dockerfile"
}
}
這個 devcontainer.json 做了什麼?
- 名稱
name
屬性指定開發容器的名稱。當開發容器處於活動狀態時,該名稱會顯示在 VS 程式碼狀態列中。 - 構建
build
屬性指定將用於構建開發容器的Dockerfile
路徑。在這種情況下,Dockerfile
與devcontainer.json
檔案位於同一目錄中,並命名為Dockerfile
。
3. 建立 Dockerfile
下一步, 在 .devcontainer
目錄下建立 Dockerfile 檔案。 該檔案包含構建 Docker 映像的說明,這是開發容器的基礎。
FROM mcr.microsoft.com/devcontainers/dotnet:8.0-jammy
# Install libmsquic
RUN wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \
&& dpkg -i packages-microsoft-prod.deb \
&& rm packages-microsoft-prod.deb \
&& apt-get update \
&& apt install libmsquic -y
這個 Dockerfile 做了什麼?
mcr.microsoft.com/devcontainers/dotnet:8.0-jammy
指定開發容器的基本映像。這是一個包含 .NET SDK 和執行時,以及所需的其他工具和庫 .NET 開發的 Linux 映像。libmsquic
Linux 平臺上的 .NET QUIC 庫。可以在QUIC in .NET中瞭解有關 QUIC 的更多資訊.
4. QUIC 和 證書
由於 QUIC 是一種安全的運輸工具,因此需要提供證書。為了簡單起見,在本篇中,我們將在下一節中使用 IceRPC 新建專案模板提供的證書。請注意,這些證書不適合生產使用,在部署應用程式時應替換為自己的證書。
5. 使用 Dev Container
為了使用 QUIC 開發容器, 我們使用 icerpc-slice-*
.NET 模板,來生成一個透過 QUIC 進行通訊的服務端和一個客戶端。還為我們處理 SSL 證書,是快速驗證開發容器的絕佳起點。
dotnet new install IceRPC.Templates
dotnet new icerpc-slice-client -o ExampleClient --transport quic
dotnet new icerpc-slice-server -o ExampleServer --transport quic
現在我們已經建立了伺服器和客戶端,可以在 VS Code 中開啟我們的專案,並使用 Ctrl+Shift+P
或 Cmd+Shift+P
啟動命令板,然後搜尋 Dev Container:在 Container 中開啟資料夾Open Folder in Container
並選擇根級專案目錄。
這將開啟一個新的 VS Code 視窗,等待容器下載及更新,Dockerfile
構建 ,專案將載入到開發容器中!
現在我們的專案在開發容器中開啟了,可以啟動伺服器和客戶端。透過在 VS Code 整合終端中,執行伺服器和客戶端,來完成此操作,該終端現在將使用開發容器。
IceRPC
客戶端和伺服器, 執行非常簡單:
cd ExampleServer
dotnet run
# In a new terminal tab
cd ExampleClient
dotnet run
來,看看效果吧
- 服務端
- 客戶端
結論
現在應該可以看到客戶端和伺服器透過 QUIC 進行通訊!好吧,我們可以在開發容器內開始開發 QUIC 應用程式!開發容器提供了,跨不同機器的一致開發環境,並確保所有開發人員使用相同的工具和庫。來吧,浪起來!
作者結語
- 一直做,不停做,才能提升速度
- 翻譯的不好,請手下留情,謝謝
- 如果對我有點小興趣,如可加我哦,一起探討人生,探討道的世界。
- 覺得還不錯的話,點個贊哦