.NET 幫助

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

發佈 2024年8月13日
分享:

在現代軟體開發領域中,構建和部署分布式應用程序可能既複雜又充滿挑戰性。管理多個服務、依賴項和部署環境通常需要大量的努力和協調。為了解決這些挑戰,Microsoft 推出了 專案 Tye設計用於簡化 .NET 應用程式開發、測試和部署的開發工具。在本文中,我們將深入探討 Tye 的世界,探索其功能、優點及對 .NET 開發人員的實際應用。我們還將了解 IronPDF,來自 的 PDF 生成庫 IronSoftware 和使用 TyeIronPDF 在一個實際的例子中。

了解 Project Tye .NET

Tye 是一個開源的實驗性開發工具,可簡化構建、測試和部署 .NET 專案應用程式的過程,並需最少的配置。由 Microsoft 工程團隊開發。 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 manifests 和 Helm charts,簡化了部署過程,並促進雲原生環境下容器編排的最佳實踐。

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
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'mkdir microservices cd microservices dotnet New razor -n frontend ' frontend service or backend service
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
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
VB   C#

使用 Tye 的好處

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

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

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

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

  5. 社群支持和貢獻:作為由 Microsoft 支持的開源專案,Tye 受益於活躍的貢獻者和用戶社群,他們積極參與其開發、文件編寫和生態系統建設。

Project Tye 授權條款

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

介紹 IronPDF

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

IronPDF 是一個強大的 C# 程式庫,用於從 HTML、CSS、圖像和 JavaScript 創建、編輯和簽署 PDF。它提供商業級的性能,並具有低內存消耗。

IronPDF 的主要特點

1. 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 框架,然後點擊建立。

安裝 IronPDF 從 Visual Studio 套件管理器中的 NuGet 套件

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

使用以下命令運行 Tye

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

這將在 URL:http://127.0.0.1:8000/ 打開 Tye 控制台以查看應用程式運行狀況。

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 生成應用程式,並輸入範例 URL 來生成 PDF。

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() 從 URL 生成 PDF 的方法

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

  5. Tye Run 命令將啟動 Tye 儀表板,在那裡你可以看到所有正在運行的服務

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

IronPDF License

IronPDF 頁面。

請將授權密鑰放置在 appSettings.json 文件中,如下所示:

{
  "IronPdf.License.LicenseKey" : "The Key Here"
}
{
  "IronPdf.License.LicenseKey" : "The Key Here"
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

結論

總之, 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.10 剛剛發布

免費 NuGet 下載 總下載次數: 10,993,239 查看許可證 >