在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
在現代軟體開發領域中,構建和部署分布式應用程序可能既複雜又充滿挑戰性。管理多個服務、依賴項和部署環境通常需要大量的努力和協調。為了解決這些挑戰,Microsoft 推出了 專案 Tye設計用於簡化 .NET 應用程式開發、測試和部署的開發工具。在本文中,我們將深入探討 Tye 的世界,探索其功能、優點及對 .NET 開發人員的實際應用。我們還將了解 IronPDF,來自 的 PDF 生成庫 IronSoftware 和使用 Tye 和 IronPDF 在一個實際的例子中。
Tye 是一個開源的實驗性開發工具,可簡化構建、測試和部署 .NET 專案應用程式的過程,並需最少的配置。由 Microsoft 工程團隊開發。 Tye 旨在通過提供一致且主觀的方式來簡化開發工作流程,以管理微服務及其依賴關係。從本質上講,Tye 擁抱容器化、編排和開發者生產力的原則,以實現無縫的應用程序開發和部署。
Tye 自動檢測並管理 .NET 應用程式內部服務之間的相依性。它利用專案中繼資料和 Docker 容器來推測服務關係,使協調微服務之間的通信和排程變得更加容易。這使得具有多個專案的微服務開發變得更加簡單。
Tye 與 Visual Studio 和 Visual Studio Code 無縫整合,提供.NET 開發人員熟悉的開發環境。它提供了調試、日誌記錄和監控應用程式元件的工具,使開發過程中的快速迭代和故障排除成為可能。
Tye 將 Docker 容器作為 .NET 應用程式的部署單元。它根據項目配置自動生成每個服務的 Dockerfiles,有助於在開發和生產環境中實現一致且可重現的容器構建,使測試和部署微服務變得簡單。
Tye 透過在單一環境中協調依賴和服務來簡化本地開發。開發人員只需一個指令即可啟動整個應用程序堆棧,從而消除了手動設置和配置依賴的需求。
Tye 提供內建支持,將 .NET 應用程式部署到 Kubernetes 叢集。它根據專案規格生成 Kubernetes manifests 和 Helm charts,簡化了部署過程,並促進雲原生環境下容器編排的最佳實踐。
Tye 與 Prometheus 和 Grafana 等流行的可觀察性工具集成,提供應用程式性能和健康狀況的見解。它暴露了應用程式組件的指標和日誌,使開發者能夠監控資源使用情況,識別瓶頸,並實時診斷問題。
讓我們探討幾個Tye可以簡化.NET應用程式開發和部署的實際情況:
# Start Tye in local development mode with tye run command
tye run
# Start Tye in local development mode with tye run command
tye run
IRON VB CONVERTER ERROR developers@ironsoftware.com
Build Docker images for Tye services with available solution file
tye build
Build Docker images for Tye services with available solution file
tye build
IRON VB CONVERTER ERROR developers@ironsoftware.com
Deploy Tye application to Kubernetes cluster
tye deploy --interactive // deploy microservices and distributed applications
Deploy Tye application to Kubernetes cluster
tye deploy --interactive // deploy microservices and distributed applications
IRON VB CONVERTER ERROR developers@ironsoftware.com
要開始使用 Tye:
安裝 .NET Core 3.1 (不支援較高版本) 在您的機器上。
dotnet tool install -g Microsoft.Tye --version "0.2.0-alpha.20258.3"
dotnet tool install -g Microsoft.Tye --version "0.2.0-alpha.20258.3"
IRON VB CONVERTER ERROR developers@ironsoftware.com
為您的微服務建立一個新文件夾。
mkdir microservices
cd microservices
dotnet new razor -n frontend // frontend service or backend service
mkdir microservices
cd microservices
dotnet new razor -n frontend // frontend service or backend service
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'mkdir microservices cd microservices dotnet New razor -n frontend ' frontend service or backend service
tye run frontend // frontend project or backend project
tye run frontend // frontend project or backend project
IRON VB CONVERTER ERROR developers@ironsoftware.com
這將構建、運行和監控前端應用程序。您可以在 http://localhost:8000 訪問 Tye 儀表板以查看服務的狀態
Tye 有一個可選的配置文件 tye.yaml,允許自訂設置。這個 YAML 文件包含所有的專案和外部依賴項。如果你已有一個現有的解決方案,Tye 會自動將所有當前的專案填充到其中。
要初始化這個 YAML 文件,請導航到微服務目錄並運行以下命令來生成默認的 tye.yaml 文件:
tye init
tye init
IRON VB CONVERTER ERROR developers@ironsoftware.com
如下所示,會建立一個 tye.yaml 文件
name: myawesomeapplication
services:
- name: backendtest
project: backend/backend.csproj
bindings:
- port: 7000
- name: frontendtest
project: frontend/frontend.csproj
replicas: 2
bindings:
- port: 8000
- name: workertest
project: worker/worker.csproj
- name: rabbit
image: rabbitmq:3-management
bindings:
- port: 5672
protocol: rabbitmq
name: myawesomeapplication
services:
- name: backendtest
project: backend/backend.csproj
bindings:
- port: 7000
- name: frontendtest
project: frontend/frontend.csproj
replicas: 2
bindings:
- port: 8000
- name: workertest
project: worker/worker.csproj
- name: rabbit
image: rabbitmq:3-management
bindings:
- port: 5672
protocol: rabbitmq
IRON VB CONVERTER ERROR developers@ironsoftware.com
簡化開發工作流程:Tye 通過提供統一的工具集來建立、測試和調試本地 .NET 應用程式,簡化了開發工作流程。
加速上市時間:通過自動化如服務發現、依賴管理和容器化等常見任務,Tye 減少了將應用程式部署到生產環境所需的時間和精力。
改善協作:Tye 通過提供管理應用程式依賴和部署配置的通用平台,促進了開發、運維和 DevOps 團隊之間的協作。
雲原生準備:Tye 為 .NET 應用程式提供了在 Kubernetes 等雲原生環境中運行的必要工具和實踐,使組織能夠自信地擁抱現代基礎設施範式。
Project Tye 包含 MIT許可證 可免費用於開發和商業目的。
IronPDF 是一個強大的 C# 程式庫,用於從 HTML、CSS、圖像和 JavaScript 創建、編輯和簽署 PDF。它提供商業級的性能,並具有低內存消耗。
將 HTML 檔案、HTML 字串和 URL 轉換為 PDF。例如,使用 Chrome PDF 渲染器將網頁渲染為 PDF。
兼容多種 .NET 平台,包括 .NET Core, .NET Standard 和 .NET Framework。它支援 Windows、Linux 和 macOS。
設置屬性,通過密碼和權限增加安全性,並為您的PDF應用數位簽章。
自定義PDF,包括頁眉、頁腳、頁碼和可調整的邊距。支持響應式佈局和自定義紙張尺寸。
遵循PDF標準,例如PDF/A和PDF/UA。 支援UTF-8字符編碼並處理圖像、CSS和字體等資產。
現在讓我們用這兩個庫來看一個實踐例子。
首先,讓我們建立一個 Visual Studio Razor 應用程式。打開 Visual Studio 並創建新項目,選擇 Razor 應用程式,如下所示。
請提供專案名稱和位置。
下一步,選擇 .NET Framework 版本並點擊創建。由於 Tye 僅在 .NET 3.1 上運行,因此我們將選擇相同的版本
安裝 IronPDF 從 Visual Studio 套件管理器中的 NuGet 套件
接下來,打開文件瀏覽器並導航到解決方案文件夾。然後打開 CMD 提示符。
使用以下命令安裝 Tye:
dotnet tool install -g Microsoft.Tye --version "0.11.0-alpha.22111.1"
dotnet tool install -g Microsoft.Tye --version "0.11.0-alpha.22111.1"
IRON VB CONVERTER ERROR developers@ironsoftware.com
或者,如果您已經安裝了Tye並希望更新它,請使用以下命令:
dotnet tool update -g Microsoft.Tye --version "0.11.0-alpha.22111.1"
dotnet tool update -g Microsoft.Tye --version "0.11.0-alpha.22111.1"
IRON VB CONVERTER ERROR developers@ironsoftware.com
使用以下命令初始化 Tye
tye init
tye init
IRON VB CONVERTER ERROR developers@ironsoftware.com
這將創建一個如下所示的範本 YAML 文件
# tye application configuration file
# read all about it at https://github.com/dotnet/tye
#
# when you've given us a try, we'd love to know what you think:
# https://aka.ms/AA7q20u
#
# define global settings here
# name: exampleapp # application name
# registry: exampleuser # dockerhub username or container registry hostname
# define multiple services here
services:
- name: frontend
project: Frontend\Frontend.csproj # msbuild project path (relative to this file)
# executable: app.exe # path to an executable (relative to this file)
args: -f=netcoreapp3.1 # arguments to pass to the process
# replicas: 5 # number of times to launch the application
# env: # array of environment variables
# - name: key
# value: value
# bindings: # optional array of bindings (ports, connection strings)
# - port: 8080 # number port of the binding
# tye application configuration file
# read all about it at https://github.com/dotnet/tye
#
# when you've given us a try, we'd love to know what you think:
# https://aka.ms/AA7q20u
#
# define global settings here
# name: exampleapp # application name
# registry: exampleuser # dockerhub username or container registry hostname
# define multiple services here
services:
- name: frontend
project: Frontend\Frontend.csproj # msbuild project path (relative to this file)
# executable: app.exe # path to an executable (relative to this file)
args: -f=netcoreapp3.1 # arguments to pass to the process
# replicas: 5 # number of times to launch the application
# env: # array of environment variables
# - name: key
# value: value
# bindings: # optional array of bindings (ports, connection strings)
# - port: 8080 # number port of the binding
IRON VB CONVERTER ERROR developers@ironsoftware.com
使用以下命令運行 Tye
tye run frontend
tye run frontend
IRON VB CONVERTER ERROR developers@ironsoftware.com
這將在 URL:http://127.0.0.1:8000/ 打開 Tye 控制台以查看應用程式運行狀況。
接下來,將以下代碼添加到項目中,以通過單擊按鈕從任何網站 URL 生成 PDF 文件。
將以下代碼添加到 Index.cshtml 文件:
@page
@model IndexModel
@{
ViewData["Title"] = "Generate PDF";
}
<form method="post" class="text-center flex-row">
<h1 class="display-4">Welcome To Url To PDF Generator </h1>
<p>Enter Website Url:
<button type="submit">Generate PDF</button>
@if (Model.Message != null)
{
<p>@Model.Message</p>
}
</form>
@page
@model IndexModel
@{
ViewData["Title"] = "Generate PDF";
}
<form method="post" class="text-center flex-row">
<h1 class="display-4">Welcome To Url To PDF Generator </h1>
<p>Enter Website Url:
<button type="submit">Generate PDF</button>
@if (Model.Message != null)
{
<p>@Model.Message</p>
}
</form>
IRON VB CONVERTER ERROR developers@ironsoftware.com
然後在 Index.cshtml.cs 中添加以下代碼:
using IronPdf;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.Extensions.Logging;
namespace Frontend.Pages
{
public class IndexModel : PageModel
{
public string Message { get; set; }
[BindProperty]
public string UrlInput { get; set; }
private readonly ILogger<IndexModel> _logger;
public IndexModel(ILogger<IndexModel> logger)
{
_logger = logger;
}
public void OnGet()
{
}
public IActionResult OnPost()
{
if (string.IsNullOrEmpty(UrlInput))
{
ModelState.AddModelError("UrlInput", "Please enter some text.");
return Page();
}
// Create PDF from ChromePdfRenderer
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf(UrlInput);
// Return the PDF as a file result
var pdfBytes = pdf.BinaryData;
return File(pdfBytes, "application/pdf", "GeneratedDocument.pdf");
}
}
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.Extensions.Logging;
namespace Frontend.Pages
{
public class IndexModel : PageModel
{
public string Message { get; set; }
[BindProperty]
public string UrlInput { get; set; }
private readonly ILogger<IndexModel> _logger;
public IndexModel(ILogger<IndexModel> logger)
{
_logger = logger;
}
public void OnGet()
{
}
public IActionResult OnPost()
{
if (string.IsNullOrEmpty(UrlInput))
{
ModelState.AddModelError("UrlInput", "Please enter some text.");
return Page();
}
// Create PDF from ChromePdfRenderer
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf(UrlInput);
// Return the PDF as a file result
var pdfBytes = pdf.BinaryData;
return File(pdfBytes, "application/pdf", "GeneratedDocument.pdf");
}
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
現在按照以下方式運行 Tye:
這將啟動Tye儀表板
現在點擊「綁定」部分中的任何連結以開啟 PDF 生成應用程式,並輸入範例 URL 來生成 PDF。
點擊生成按鈕以獲得以下 PDF 作為輸出
代碼說明
Index.cshtml 包含用於接收網站 URL 和觸發 PDF 生成的按鈕和輸入框
Index.cshtml.cs 包含使用 IronPDF 生成 PDF 文檔的後端代碼
我們使用 ChromePdfRenderer 類和 RenderUrlAsPdf() 從 URL 生成 PDF 的方法
這個生成的 URL 作為 Post 方法的響應返回。
Tye Run 命令將啟動 Tye 儀表板,在那裡你可以看到所有正在運行的服務
IronPDF 頁面。
請將授權密鑰放置在 appSettings.json 文件中,如下所示:
{
"IronPdf.License.LicenseKey" : "The Key Here"
}
{
"IronPdf.License.LicenseKey" : "The Key Here"
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
總之, Tye 代表著 .NET 生態系統的一項重大進展,提供了一種構建、測試和部署分佈式應用程式的簡化方法。無論您是經驗豐富的 .NET 開發人員還是剛接觸容器化和微服務,Tye 提供了一個友好的平台來擁抱現代開發實踐,並加速您邁向雲原生架構的旅程。
IronPDF 是一個 .NET 函式庫,它允許開發人員輕鬆地從 HTML 內容創建、操作和呈現 PDF 文件。它支持將 HTML 轉換為 PDF、合併和分割 PDF,並添加頁首、頁尾和水印。 IronPDF 以其易於使用、高品質渲染及與 .NET Core 和 .NET Framework 應用程式的相容性而聞名。了解兩者 IronPDF 圖書館和 Tye 構建工具,開發者可以獲得先進技能來開發具有PDF生成功能的現代應用程式。