在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
在現代軟體開發領域,構建和部署分佈式應用程式可能會複雜且具挑戰性。 管理多個服務、依賴項和部署環境通常需要大量的努力和協調。 為了解決這些挑戰,Microsoft 推出了Project Tye,這是一款開發者工具,旨在簡化 .NET 應用程式的開發、測試和部署。 在本文中,我們將深入探討Tye的世界,探索其功能、優點,並為.NET開發人員提供實際應用。 我們還將學習關於IronPDF,來自 的 PDF 生成庫Iron Software,和使用Tye和IronPDF在一個實際的例子中。
Tye是一個開源的實驗性開發者工具,簡化了構建、測試和部署 .NET 專案應用程式的過程,需最少的配置。 由微軟工程團隊開發,Tye旨在通過提供一致且有主見的方法來管理微服務及其依賴性,以簡化開發工作流程。 在本質上,Tye 採用容器化、編排和開發者生產力的原則,以實現無縫的應用程式開發和部署。
Tye自動偵測並管理.NET應用程式中服務之間的依賴關係。 它利用項目元數據和 Docker 容器推斷服務關係,使協調微服務之間的通信和編排變得更容易。 這使得使用多個專案開發微服務更加容易。
Tye 與 Visual Studio 和 Visual Studio Code 無縫整合,為 .NET 開發人員提供熟悉的開發環境。 它提供用於調試、日誌記錄和監控應用程式組件的工具,從而在開發過程中實現快速迭代和故障排除。
Tye 將 Docker 容器作為 .NET 應用程式的部署單位。 它根據專案配置自動生成每個服務的 Dockerfiles,促進在開發和生產環境中的一致性和可再現的容器構建,使微服務的測試和部署變得容易。
Tye 透過在單一環境中協調依賴項和服務來簡化本地開發。 開發人員只需一個指令即可啟動整個應用程式堆疊,消除了手動設置和配置依賴項的必要。
Tye 提供內建支援,可將 .NET 應用程式部署到 Kubernetes 集群。 它根據專案規範生成 Kubernetes 清單和 Helm 圖表,簡化部署過程並促進雲原生環境中容器協調的最佳實踐。
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
IRON VB CONVERTER ERROR developers@ironsoftware.com
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
簡化的開發流程: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 上運行,我們將選擇相同的版本。
安裝從 NuGet 套件中獲取 IronPDF從 Visual Studio 套件管理器。
接下來,打開檔案瀏覽器並導航至解決方案資料夾。 然後打開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:
tye run frontend
tye run frontend
IRON VB CONVERTER ERROR developers@ironsoftware.com
這將開啟 Tye 儀表板,網址為:http://127.0.0.1:8000/
,以查看應用程式的運行狀況。
接下來,將以下程式碼添加到專案中,以便透過點擊按鈕從任何網站 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 生成器應用程式並輸入用於生成 PDF 的示範 URL。
單擊生成按鈕以獲取以下 PDF 作為輸出:
程式碼解釋
Index.cshtml 包含按鈕和輸入欄位,用於接收網站 URL 並觸發 PDF 生成。
Index.cshtml.cs 包含使用 IronPDF 生成 PDF 文檔的後端代碼。
我們使用 ChromePdfRenderer 類別和 RenderUrlAsPdf()從網址生成 PDF 的方法。
此生成的 URL 作為 Post 方法的響應返回。
Tye Run 指令將啟動 Tye 儀表板,您可以在此查看所有正在運行的服務。
參觀IronPDF 授權頁面。
將授權金鑰放置在 appSettings.json 文件中,如下所示:
{
"IronPdf.License.LicenseKey" : "The Key Here"
}
總之,Tye代表了 .NET 生態系統中的重大進展,提供了一種精簡的方法來構建、測試和部署分布式應用程式。 無論您是經驗豐富的 .NET 開發人員,還是剛接觸容器化和微服務,Tye 都提供了一個使用者友好的平台,幫助您採用現代開發實踐,加速邁向雲原生架構的旅程。
IronPDF是一個.NET程式庫,讓開發人員能夠輕鬆地從HTML內容創建、操作和呈現PDF文件。 它支持將 HTML 轉換為 PDF、合併和拆分 PDF,以及添加頁首、頁尾和水印。 IronPDF以其易於使用、高品質的呈現效果以及與 .NET Core 和 .NET Framework 應用程式的相容性而著稱。 了解這兩者IronPDF庫和Tye構建工具,開發者可以獲得先進技能來開發具有PDF生成功能的現代應用程式。