在生产环境中测试,无水印。
随时随地满足您的需求。
获得30天的全功能产品。
几分钟内就能启动并运行。
在您的产品试用期间,全面访问我们的支持工程团队。
在现代软件开发领域,构建和部署分布式应用程序是一项复杂而具有挑战性的工作。 管理多个服务、依赖关系和部署环境通常需要大量的努力和协调。 为了解决这些挑战,Microsoft 推出了Project Tye,这是一个开发工具,旨在简化 .NET 应用程序的开发、测试和部署。 在本文中,我们将深入探讨Tye的世界,探索其功能、优势以及对.NET开发人员的实际应用。 我们还将学习IronPDF,这是一款来自Iron Software的PDF生成库,并在一个实际示例中使用Tye和IronPDF。
Tye 是一个开源的实验性开发工具,通过最小配置简化构建、测试和部署 .NET 项目应用程序的流程。 由微软工程团队开发的Tye旨在通过提供一致且有指导性的方式管理微服务及其依赖项,从而简化开发工作流程。 Tye 的核心是采用容器化、编排和开发者生产力的原则,以实现无缝的应用程序开发和部署。
Tye 可自动检测和管理 .NET 应用程序中服务之间的依赖关系。 它利用项目元数据和 Docker 容器来推断服务关系,使微服务之间的通信和协调更容易协调。 这将使多个项目的微服务开发变得更加容易。
Tye 可与 Visual Studio 和 Visual Studio Code 无缝集成,为 .NET 开发人员提供熟悉的开发环境。 它提供了用于调试、记录和监控应用程序组件的工具,能够在开发过程中快速迭代和排除故障。
Tye 将 Docker 容器作为 .NET 应用程序的部署单元。 它可根据项目配置为每个服务自动生成 Dockerfile,从而促进开发和生产环境中容器构建的一致性和可重复性,使微服务的测试和部署变得简单。
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
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字符串和网址转换为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 应用程序,如下图所示。
提供项目名称和地点。
![tye .NET(它如何为开发人员工作):图 3 - 通过指定项目名称和位置来配置项目。 然后点击下一步。[(/static-assets/pdf/blog/tye-net/tye-net-3.webp)]
下一步,选择 .NET Framework 版本并点击创建。 由于 Tye 只能在 .NET 3.1 上工作,我们将选择相同的版本。
从Visual Studio包管理器中安装IronPDF from NuGet Package。
接下来,打开文件浏览器并导航到解决方案文件夹。 然后打开 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 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 仪表板,URL 为: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()方法从URL生成PDF。
生成的 URL 将作为 Post 方法的响应返回。
Tye Run 命令将启动 Tye 面板,您可以在此查看所有正在运行的服务。
访问 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生成功能的现代应用程序。