.NET 帮助

tye .NET(开发人员的工作原理)

在现代软件开发领域,构建和部署分布式应用程序是一项复杂而具有挑战性的工作。 管理多个服务、依赖关系和部署环境通常需要大量的努力和协调。 为了解决这些挑战,Microsoft 推出了Project Tye,这是一个开发工具,旨在简化 .NET 应用程序的开发、测试和部署。 在本文中,我们将深入探讨Tye的世界,探索其功能、优势以及对.NET开发人员的实际应用。 我们还将学习IronPDF,这是一款来自Iron Software的PDF生成库,并在一个实际示例中使用TyeIronPDF

了解项目 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 应用程序的部署单元。 它可根据项目配置为每个服务自动生成 Dockerfile,从而促进开发和生产环境中容器构建的一致性和可重复性,使微服务的测试和部署变得简单。

4. 本地开发环境

Tye 通过在单一环境中协调依赖关系和服务,简化了本地开发。 开发人员只需一条命令即可启动整个应用程序栈,无需手动设置和配置依赖关系。

5. 部署到 Kubernetes

Tye 为将 .NET 应用程序部署到 Kubernetes 集群提供内置支持。 它可根据项目规格生成 Kubernetes 清单和 Helm 图表,简化部署流程并推广云原生环境中容器协调的最佳实践。

6.监控和可观察性

Tye 与 Prometheus 和 Grafana 等流行的可观察性工具集成,可深入了解应用程序的性能和健康状况。 它公开了应用程序组件的指标和日志,使开发人员能够实时监控资源利用率、识别瓶颈并诊断问题。

Tye 的实际应用

让我们来探讨一些 Tye 可以简化 .NET 应用程序开发和部署的实际场景:

1. 本地开发环境

# 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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

开始使用 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
$vbLabelText   $csharpLabel
  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
$vbLabelText   $csharpLabel
  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
$vbLabelText   $csharpLabel

这将构建、运行和监控前端应用程序。 您可以访问 http://localhost:8000 上的 Tye 面板,查看您的服务状态

Tye 的配置模式

Tye 有一个可选的配置文件 tye.yaml,允许自定义设置。 该 YAML 文件包括您的所有项目和外部依赖关系。 如果您有现有的解决方案,Tye 会自动将您当前的所有项目填入其中。

要初始化该 YAML 文件,请导航到微服务目录并运行以下命令生成默认的 tye.yaml 文件:

tye init
tye init
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

如下所示,创建了一个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
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:C# PDF 库

IronPDF 是一个强大的 C# 库,旨在从 HTML、CSS、图像和 JavaScript 创建、编辑和签署 PDF。 它提供商业级性能,同时占用较少的内存。

IronPDF 的主要功能

HTML 转换为 PDF

将HTML文件、HTML字符串和网址转换为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 - 通过指定项目名称和位置来配置项目。 然后点击下一步。[(/static-assets/pdf/blog/tye-net/tye-net-3.webp)]

下一步,选择 .NET Framework 版本并点击创建。 由于 Tye 只能在 .NET 3.1 上工作,我们将选择相同的版本。

tye .NET(开发人员如何使用):图4 - 选择.NET Core 3.1 框架,然后点击创建。

从Visual Studio包管理器中安装IronPDF from NuGet Package

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
$vbLabelText   $csharpLabel

或者,如果您已经安装了 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
$vbLabelText   $csharpLabel

使用以下命令初始化 Tye:

tye init
tye init
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

这将创建一个模板 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
YAML

使用以下命令运行 Tye:

tye run frontend
tye run frontend
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

这将打开 Tye 仪表板,URL 为:http://127.0.0.1:8000/,以查看应用程序的运行情况。

Tye 控制面板

tye .NET(它如何为开发人员工作):图6 - 使用Tye在本地主机上运行的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
$vbLabelText   $csharpLabel

然后将以下代码添加到 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
$vbLabelText   $csharpLabel

现在运行 Tye,如下所示:

tye .NET(它如何为开发人员工作):图7 - 使用命令运行类型: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()方法从URL生成PDF。

  4. 生成的 URL 将作为 Post 方法的响应返回。

  5. Tye Run 命令将启动 Tye 面板,您可以在此查看所有正在运行的服务。

  6. 点击前端服务并打开应用程序以生成 PDF 文档。

IronPDF 许可证

访问 IronPDF Licensing 页面。

将许可密钥放入 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生成功能的现代应用程序。

Chipego
软件工程师
Chipego 拥有出色的倾听技巧,这帮助他理解客户问题并提供智能解决方案。他在 2023 年加入 Iron Software 团队,此前他获得了信息技术学士学位。IronPDF 和 IronOCR 是 Chipego 主要专注的两个产品,但他对所有产品的了解每天都在增长,因为他不断找到支持客户的新方法。他喜欢 Iron Software 的合作氛围,公司各地的团队成员贡献他们丰富的经验,以提供有效的创新解决方案。当 Chipego 离开办公桌时,你经常可以发现他在看书或踢足球。
< 前一页
C# Nito.Asyncex(开发人员工作原理)
下一步 >
Quartz .NET(它对开发人员的工作原理)