.NET 帮助

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

发布 2024年八月13日
分享:

在现代软件开发领域,构建和部署分布式应用程序可能是复杂且充满挑战的。管理多个服务、依赖项和部署环境通常需要大量的努力和协调。为了应对这些挑战,微软引入了 项目 Tye, 一个旨在简化 .NET 应用程序开发、测试和部署的开发工具。在本文中,我们将深入探讨 Tye 的世界,探索其特性、优点及其实用的应用程序。我们还将了解 IronPDF的 PDF 生成库 IronSoftware 和使用 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 应用程序的部署单元。它根据项目配置自动生成每个服务的 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
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. 社区支持和贡献: 作为由微软支持的开源项目,Tye受益于一个充满活力的贡献者和用户社区,这些社区成员积极参与其开发、文档和生态系统的建设。

Project Tye 使用许可

Project Tye 包含 MIT许可证 可用于开发和商业用途免费使用。

IronPDF 简介

tye .NET(对开发人员的工作方式):图1 - IronPDF for .NET:C# PDF库

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 框架版本并点击创建。由于 Tye 仅兼容 .NET 3.1,我们将选择相同的版本。

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

安装 IronPDF 从 NuGet 包 从 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
# 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#

这将打开 Tye 仪表板,网址为: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
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 许可证

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.9 刚刚发布

免费NuGet下载 总下载量: 10,731,156 查看许可证 >