.NET 幫助

tye .NET(開發人員工作原理)

發佈 2024年8月13日
分享:

在現代軟體開發領域,構建和部署分佈式應用程式可能會複雜且具挑戰性。 管理多個服務、依賴項和部署環境通常需要大量的努力和協調。 為了解決這些挑戰,Microsoft 推出了Project Tye,這是一款開發者工具,旨在簡化 .NET 應用程式的開發、測試和部署。 在本文中,我們將深入探討Tye的世界,探索其功能、優點,並為.NET開發人員提供實際應用。 我們還將學習關於IronPDF,來自 的 PDF 生成庫Iron Software,和使用TyeIronPDF在一個實際的例子中。

了解 Project Tye .NET

Tye是一個開源的實驗性開發者工具,簡化了構建、測試和部署 .NET 專案應用程式的過程,需最少的配置。 由微軟工程團隊開發,Tye旨在通過提供一致且有主見的方法來管理微服務及其依賴性,以簡化開發工作流程。 在本質上,Tye 採用容器化、編排和開發者生產力的原則,以實現無縫的應用程式開發和部署。

Tye .NET 的主要功能

1. 服務發現和依賴管理

Tye自動偵測並管理.NET應用程式中服務之間的依賴關係。 它利用項目元數據和 Docker 容器推斷服務關係,使協調微服務之間的通信和編排變得更容易。 這使得使用多個專案開發微服務更加容易。

2. 整合開發體驗

Tye 與 Visual Studio 和 Visual Studio Code 無縫整合,為 .NET 開發人員提供熟悉的開發環境。 它提供用於調試、日誌記錄和監控應用程式組件的工具,從而在開發過程中實現快速迭代和故障排除。

3. Docker 容器化

Tye 將 Docker 容器作為 .NET 應用程式的部署單位。 它根據專案配置自動生成每個服務的 Dockerfiles,促進在開發和生產環境中的一致性和可再現的容器構建,使微服務的測試和部署變得容易。

4. 本地開發環境

Tye 透過在單一環境中協調依賴項和服務來簡化本地開發。 開發人員只需一個指令即可啟動整個應用程式堆疊,消除了手動設置和配置依賴項的必要。

5. 部署到 Kubernetes

Tye 提供內建支援,可將 .NET 應用程式部署到 Kubernetes 集群。 它根據專案規範生成 Kubernetes 清單和 Helm 圖表,簡化部署過程並促進雲原生環境中容器協調的最佳實踐。

6. 監控和可觀測性

Tye 與流行的可觀察性工具如 Prometheus 和 Grafana 集成,以提供對應用程式效能和健康狀況的見解。 它公開來自應用程式元件的度量和日誌,使開發人員能夠監控資源使用情況、識別瓶頸以及即時診斷問題。

Tye 的實際應用

讓我們來探索一些 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
VB   C#

2. Docker 容器化

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
VB   C#

3. 部署至 Kubernetes

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
VB   C#

開始使用 Tye

首先使用 Tye:

  1. 安裝 .NET Core 3.1(不支援較高版本)在您的機器上。

  2. 使用以下命令將 Tye 安裝為全域工具:
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
VB   C#
  1. 為您的微服務創建一個新資料夾。

  2. 導航到該資料夾並創建前端專案(例如,Razor Pages):
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
VB   C#
  1. 運行前端項目,tye儀表板:
tye run frontend  // frontend project or backend project
tye run frontend  // frontend project or backend project
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

這將構建、運行並監控前端應用程式。 您可以訪問 http://localhost:8000 上的 Tye 儀表板,以查看您的服務狀態。

Tye的配置架構

Tye有一個可選的配置檔案tye.yaml,允許自訂設定。 此 YAML 檔案包含您所有的專案及外部相依項目。 如果您有現有的解決方案,Tye 會自動將您目前的所有項目填入其中。

要初始化此 YAML 文件,請導航至微服務目錄並運行以下命令以生成預設的 tye.yaml 文件:

tye init
tye init
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

如下所示,會建立一個 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
YAML

使用Tye的好處

  1. 簡化的開發流程:Tye 通過提供一套統一的工具集來簡化開發流程,以便在本地構建、測試和調試 .NET 應用程式。

  2. 縮短上市時間:透過自動化常見任務如服務發現、依賴管理和容器化,Tye 減少了部署應用程式到生產環境所需的時間和精力。

  3. 改善協作:Tye 通過提供一個共同的平台來管理應用程式的依賴項和部署配置,促進開發、運營和 DevOps 團隊之間的協作。

  4. 雲原生準備:Tye 為 .NET 應用程序提供了必要的工具和實踐,以便在如 Kubernetes 這樣的雲原生環境中運行,使組織能夠自信地擁抱現代基礎設施模式。

  5. 社群支持和貢獻:作為由微軟支持的開源專案,Tye受益於一個充滿活力的社群,他們積極參與其開發、文件撰寫及生態系統的貢獻。

Project Tye 授權

Project Tye 附帶MIT許可證可免費用於開發和商業目的。

介紹 IronPDF

tye .NET(開發人員如何使用):圖1 - IronPDF for .NET: The C# PDF Library

IronPDF是一個強大的C#庫,專為從HTML、CSS、圖像和JavaScript創建、編輯和簽署PDF而設計。 它提供商用級性能且佔用較低的記憶體資源。

IronPDF 的主要功能

HTML 轉換為 PDF

將 HTML 文件、HTML 字串和 URL 轉換為 PDF。 例如,使用 Chrome PDF 渲染器將網頁呈現為 PDF。

2. 跨平台支持

兼容各種 .NET 平台,包括 .NET Core、.NET Standard 和 .NET Framework。 它支援 Windows、Linux 和 macOS。

3. 編輯和簽名

設置屬性、通過密碼和權限添加安全性,並對您的PDF應用數字簽名。

4. 頁面模板與設置

自訂 PDF 的頁眉、頁腳、頁碼和可調整的邊距。 支持響應式版面和自訂紙張尺寸。

5. 標準合規性

遵循 PDF 標準,如 PDF/A 和 PDF/UA。 支持 UTF-8 字符編碼並處理資產,例如圖像、CSS 和字體。

現在讓我們用這兩個程式庫來看一個實例。

使用 IronPDF 和 Tye 生成 PDF 文件

首先,讓我們建立一個 Visual Studio Razor 應用程式。 打開 Visual Studio,創建一個新項目並選擇如下所示的 Razor 應用程式。

tye .NET(適用於開發人員的運作方式):圖2 - 打開Visual Studio並創建一個新的ASP.NET Core Web應用程式(Razor Pages)。

提供專案名稱和位置。

tye .NET(開發者如何使用):圖 3 - 透過指定專案名稱和位置來配置專案。 然後按下一步。

在下一步中,選擇 .NET Framework 版本,然後點擊創建。 由於 Tye 僅在 .NET 3.1 上運行,我們將選擇相同的版本。

tye .NET(在開發者中的工作原理):圖4 - 選擇 .NET Core 3.1 框架,然後點擊建立。

安裝從 NuGet 套件中獲取 IronPDF從 Visual Studio 套件管理器。

tye .NET(對開發者的運作方式):圖5 - 使用方案的管理 NuGet 套件安裝 IronPDF,通過在 NuGet 套件管理器的搜索欄中搜索 IronPDF,然後選擇專案並點擊安裝按鈕。

接下來,打開檔案瀏覽器並導航至解決方案資料夾。 然後打開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
VB   C#

或者,如果您已安裝 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
VB   C#

使用以下命令初始化 Tye:

tye init
tye init
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

這將創建一個模板 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
YAML

使用以下指令運行 Tye:

tye run frontend
tye run frontend
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

這將開啟 Tye 儀表板,網址為:http://127.0.0.1:8000/,以查看應用程式的運行狀況。

Tye儀表板

tye .NET(如何為開發人員運作):圖6 - 使用Tye在localhost上運行Razor應用程序

接下來,將以下程式碼添加到專案中,以便透過點擊按鈕從任何網站 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
VB   C#

然後將以下代碼添加到 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
VB   C#

現在按照以下方式運行 Tye:

tye .NET(它對開發者的運作方式):圖7 - 使用命令運行tye:tye run frontend

這將啟動 Tye 儀表板。

tye .NET(對開發人員的運作方式):圖 8 - Tye 儀表板

現在點擊綁定部分中的任何鏈結,以開啟 PDF 生成器應用程式並輸入用於生成 PDF 的示範 URL。

tye .NET(開發者如何運作):圖 9 - 使用 IronPDF 的 URL 到 PDF 生成器

單擊生成按鈕以獲取以下 PDF 作為輸出:

tye .NET(開發人員如何運作):圖10 - 使用 IronPDF 進行 HTML URL 到 PDF 的轉換

程式碼解釋

  1. Index.cshtml 包含按鈕和輸入欄位,用於接收網站 URL 並觸發 PDF 生成。

  2. Index.cshtml.cs 包含使用 IronPDF 生成 PDF 文檔的後端代碼。

  3. 我們使用 ChromePdfRenderer 類別和 RenderUrlAsPdf()從網址生成 PDF 的方法。

  4. 此生成的 URL 作為 Post 方法的響應返回。

  5. Tye Run 指令將啟動 Tye 儀表板,您可以在此查看所有正在運行的服務。

  6. 點擊前端服務並打開應用程式以生成 PDF 文件。

IronPDF 授權

參觀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生成功能的現代應用程式。

< 上一頁
C# Nito.Asyncex(它如何為開發人員工作)
下一個 >
Quartz .NET(它如何為開發人員工作)

準備開始了嗎? 版本: 2024.12 剛剛發布

免費 NuGet 下載 總下載次數: 11,622,374 查看許可證 >