在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
在现代软件开发领域,构建和部署分布式应用程序可能是复杂且充满挑战的。管理多个服务、依赖项和部署环境通常需要大量的努力和协调。为了应对这些挑战,微软引入了 项目 Tye, 一个旨在简化 .NET 应用程序开发、测试和部署的开发工具。在本文中,我们将深入探讨 Tye 的世界,探索其特性、优点及其实用的应用程序。我们还将了解 IronPDF的 PDF 生成库 IronSoftware 和使用 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
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'mkdir microservices cd microservices dotnet New razor -n frontend ' frontend service or backend service
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
IRON VB CONVERTER ERROR developers@ironsoftware.com
简化开发工作流程: Tye通过提供一个统一的工具集来本地构建、测试和调试.NET应用程序,简化了开发工作流程。
加速上市时间: 通过自动化常见的任务,如服务发现、依赖管理和容器化,Tye减少了部署应用到生产环境所需的时间和努力。
改善协作: Tye通过提供一个通用的平台来管理应用程序的依赖关系和部署配置,促进了开发、运维和DevOps团队之间的协作。
云原生准备: Tye为.NET应用程序提供在云原生环境中运行所需的工具和实践,如Kubernetes,使组织能够自信地采用现代基础设施范式。
Project Tye 包含 MIT许可证 可用于开发和商业用途免费使用。
IronPDF 是一个强大的C#库,旨在从HTML、CSS、图像和JavaScript创建、编辑和签署PDF。它提供商业级性能,同时占用较低的内存。
将 HTML 文件、HTML 字符串和 URL 转换为 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应用程序,如下所示。
提供项目名称和地点。
下一步,选择 .NET 框架版本并点击创建。由于 Tye 仅兼容 .NET 3.1,我们将选择相同的版本。
安装 IronPDF 从 NuGet 包 从 Visual Studio 包管理器
接下来,打开文件浏览器并导航到解决方案文件夹。然后打开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
IRON VB CONVERTER ERROR developers@ironsoftware.com
使用以下命令运行Tye
tye run frontend
tye run frontend
IRON VB CONVERTER ERROR developers@ironsoftware.com
这将打开 Tye 仪表板,网址为: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 生成器应用程序并输入一个示例 URL 进行 PDF 生成。
点击生成按钮以获取以下 PDF 作为输出
代码解释
Index.cshtml包含按钮和输入,以获取网站URL并触发PDF生成。
Index.cshtml.cs包含使用IronPDF生成PDF文档的后台代码。
我们使用ChromePdfRenderer类和RenderUrlAsPdf。() 从 URL 生成 PDF 的方法
生成的 URL 将作为 Post 方法的响应返回。
使用 Tye Run 命令将启动 Tye 仪表板,您可以在其中查看所有正在运行的服务。
IronPDF 页面。
将许可证密钥放在appSettings.json文件中,如下所示:
{
"IronPdf.License.LicenseKey" : "The Key Here"
}
{
"IronPdf.License.LicenseKey" : "The Key Here"
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
总而言之 Tye 代表了 .NET 生态系统的重要进步,提供了一种简化的构建、测试和部署分布式应用程序的方法。无论您是经验丰富的 .NET 开发人员,还是容器化和微服务的新手,Tye 提供了一个用户友好的平台,帮助您拥抱现代开发实践,加速向云原生架构迈进的旅程。
IronPDF 是一个.NET库,允许开发人员轻松地从HTML内容创建、操作和渲染PDF文档。它支持将HTML转换为PDF,合并和拆分PDF,以及添加页眉、页脚和水印。 IronPDF 以其易于使用、高质量渲染以及与.NET Core和.NET Framework应用程序的兼容性而闻名。了解这两个 IronPDF 库和 Tye 构建工具,开发人员可以掌握高级技能来开发具有PDF生成功能的现代应用程序。