Saltar al pie de página
.NET AYUDA

tye .NET (Cómo Funciona para Desarrolladores)

En el panorama moderno del desarrollo de software, construir y desplegar aplicaciones distribuidas puede ser complejo y desafiante. Gestionar múltiples servicios, dependencias y entornos de despliegue a menudo requiere un esfuerzo significativo y coordinación. Para abordar estos desafíos, Microsoft introdujo Project Tye, una herramienta para desarrolladores diseñada para simplificar el desarrollo, prueba y despliegue de aplicaciones .NET. En este artículo, ahondaremos en el mundo de Tye, explorando sus características, beneficios y aplicaciones prácticas para desarrolladores .NET. También aprenderemos sobre IronPDF, una librería de generación de PDF de Iron Software, y usaremos Tye e IronPDF en un ejemplo práctico.

Entendiendo Project Tye .NET

Tye es una herramienta experimental de código abierto para desarrolladores que agiliza el proceso de construcción, prueba y despliegue de aplicaciones de proyectos .NET con una configuración mínima. Desarrollado por el equipo de ingeniería de Microsoft, Tye tiene como objetivo simplificar el flujo de trabajo de desarrollo proporcionando un enfoque consistente y dirigido para gestionar microservicios y sus dependencias. En su núcleo, Tye adopta los principios de la contenedorización, orquestación y productividad del desarrollador para permitir un desarrollo y despliegue de aplicaciones sin problemas.

Características principales de Tye .NET

1. Descubrimiento de servicios y gestión de dependencias

Tye detecta y gestiona automáticamente las dependencias entre servicios dentro de una aplicación .NET. Aprovecha los metadatos del proyecto y los contenedores Docker para inferir las relaciones de servicio, facilitando la coordinación de comunicación y orquestación entre microservicios. Esto hace que el desarrollo de microservicios sea más fácil con múltiples proyectos.

2. Experiencia en desarrollo integrado

Tye se integra sin problemas con Visual Studio y Visual Studio Code, proporcionando un entorno de desarrollo familiar para los desarrolladores .NET. Ofrece herramientas para depuración, registro y monitoreo de componentes de la aplicación, permitiendo una rápida iteración y solución de problemas durante el desarrollo.

3. Contenedores Docker

Tye adopta los contenedores Docker como unidad de despliegue para aplicaciones .NET. Genera automáticamente Dockerfiles para cada servicio basado en configuraciones de proyecto, facilitando la construcción de contenedores consistentes y reproducibles en entornos de desarrollo y producción, haciendo fácil la prueba y despliegue de microservicios.

4. Entorno de desarrollo local

Tye simplifica el desarrollo local orquestando dependencias y servicios dentro de un único entorno. Los desarrolladores pueden iniciar toda la pila de aplicaciones con un solo comando, eliminando la necesidad de configuraciones e instalaciones manuales de dependencias.

5. Despliegue en Kubernetes

Tye ofrece soporte integrado para desplegar aplicaciones .NET a clústeres de Kubernetes. Genera manifiestos de Kubernetes y gráficos Helm basados en especificaciones del proyecto, agilizando el proceso de despliegue y promoviendo las mejores prácticas para la orquestación de contenedores en entornos nativos de la nube.

6. Monitorización y observabilidad

Tye se integra con herramientas de observabilidad populares como Prometheus y Grafana para proporcionar información sobre el rendimiento y la salud de la aplicación. Expone métricas y registros de los componentes de la aplicación, permitiendo a los desarrolladores monitorear la utilización de recursos, identificar cuellos de botella y diagnosticar problemas en tiempo real.

Aplicaciones prácticas con Tye

Exploremos algunos escenarios prácticos donde Tye puede agilizar el desarrollo y despliegue de aplicaciones .NET:

1. Entorno de desarrollo local

# Start Tye in local development mode with the tye run command
tye run
# Start Tye in local development mode with the tye run command
tye run
SHELL

2. Contenedores Docker

# Build Docker images for Tye services with the available solution file
tye build
# Build Docker images for Tye services with the available solution file
tye build
SHELL

3. Despliegue en 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
SHELL

Cómo empezar con Tye

Para comenzar con Tye:

  1. Instala .NET Core 3.1 (no es compatible con versiones superiores) en tu máquina.

  2. Instala Tye como una herramienta global usando:
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"
SHELL
  1. Crea una nueva carpeta para tus microservicios.

  2. Navega a la carpeta y crea un proyecto de frontend (por ejemplo, Razor Pages):
mkdir microservices
cd microservices
dotnet new razor -n frontend  # frontend service
mkdir microservices
cd microservices
dotnet new razor -n frontend  # frontend service
SHELL
  1. Ejecuta el proyecto de frontend, lanzando el tablero de Tye:
tye run frontend  # run frontend project
tye run frontend  # run frontend project
SHELL

Esto construirá, ejecutará y monitoreará la aplicación de frontend. Puedes acceder al tablero de Tye en http://localhost:8000 para ver el estado de tus servicios.

Esquema de configuración de Tye

Tye tiene un archivo de configuración opcional, tye.yaml, que permite la personalización de configuraciones. Este archivo YAML incluye todos tus proyectos y dependencias externas. Si tienes una solución existente, Tye la poblará automáticamente con todos tus proyectos actuales.

Para inicializar este archivo YAML, navega al directorio de microservicios y ejecuta el siguiente comando para generar un archivo tye.yaml por defecto:

tye init
tye init
SHELL

Se crea un archivo tye.yaml como se muestra a continuación:

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

Beneficios del uso de Tye

  1. Flujo de Trabajo de Desarrollo Simplificado: Tye simplifica el flujo de trabajo de desarrollo proporcionando un conjunto de herramientas unificadas para construir, probar y depurar aplicaciones .NET localmente.
  2. Tiempo de Lanzamiento Acelerado: Al automatizar tareas comunes como el descubrimiento de servicios, gestión de dependencias y contenerización, Tye reduce el tiempo y esfuerzo requeridos para desplegar aplicaciones en entornos de producción.
  3. Colaboración Mejorada: Tye promueve la colaboración entre los equipos de desarrollo, operaciones y DevOps proporcionando una plataforma común para gestionar dependencias de aplicaciones y configuraciones de despliegue.
  4. Preparación para la Nube: Tye equipa a las aplicaciones .NET con las herramientas y prácticas necesarias para ejecutar en entornos nativos de la nube, como Kubernetes, permitiendo a las organizaciones adoptar paradigmas de infraestructura moderna con confianza.
  5. Soporte y Contribución Comunitaria: Como un proyecto de código abierto respaldado por Microsoft, Tye se beneficia de una vibrante comunidad de contribuyentes y usuarios que contribuyen activamente a su desarrollo, documentación y ecosistema.

Licencia de Project Tye

Project Tye viene con Licencia MIT que es gratuita para uso tanto en desarrollo como en propósitos comerciales.

Presentando IronPDF

tye .NET (Cómo Funciona Para Desarrolladores): Figura 1 - IronPDF for .NET: La Biblioteca PDF de C#

IronPDF es una poderosa biblioteca C# diseñada para crear, editar y firmar PDFs a partir de HTML, CSS, imágenes y JavaScript. Ofrece un rendimiento de calidad comercial con un bajo uso de memoria.

Características principales de IronPDF

1. Conversión de HTML a PDF

Convierte archivos HTML, cadenas HTML y URLs a PDFs. Por ejemplo, renderiza una página web como PDF utilizando el renderizador PDF de Chrome.

2. Soporte multiplataforma

Compatible con varias plataformas .NET, incluyendo .NET Core, .NET Standard y .NET Framework. Es compatible con Windows, Linux y macOS.

3. Edición y firma

Establece propiedades, añade seguridad con contraseñas y permisos, y aplica firmas digitales a tus PDFs.

4. Plantillas de página y configuración

Personaliza PDFs con encabezados, pies de página, números de página y márgenes ajustables. Soporta diseños responsivos y tamaños de papel personalizados.

5. Cumplimiento de estándares

Adhiere a normas PDF como PDF/A y PDF/UA. Soporta codificación de caracteres UTF-8 y maneja activos como imágenes, CSS y fuentes.

Ahora veamos un ejemplo práctico utilizando estas dos bibliotecas.

Generar un documento PDF con IronPDF y Tye to Run

Primero, creemos una aplicación Visual Studio Razor. Abre Visual Studio y crea un nuevo proyecto y selecciona la aplicación Razor como se muestra a continuación.

tye .NET (Cómo Funciona Para Desarrolladores): Figura 2 - Abre Visual Studio y crea una nueva Aplicación Web ASP.NET Core (Páginas Razor).

Proporciona el nombre y la ubicación del proyecto.

tye .NET (Cómo Funciona Para Desarrolladores): Figura 3 - Configura el proyecto especificando el nombre del Proyecto y la Ubicación. Luego haz clic en Siguiente.

En el siguiente paso, selecciona la versión del .NET Framework y haz clic en Crear. Dado que Tye solo funciona en .NET 3.1, seleccionaremos el mismo.

tye .NET (Cómo Funciona Para Desarrolladores): Figura 4 - Selecciona el framework .NET Core 3.1, luego haz clic en Crear.

Instala IronPDF desde el Paquete NuGet desde el Administrador de Paquetes de Visual Studio.

tye .NET (Cómo Funciona Para Desarrolladores): Figura 5 - Instala IronPDF usando el Administrador de NuGet para la Solución buscando IronPDF en la barra de búsqueda del Administrador de NuGet, luego selecciona el proyecto y haz clic en el botón Instalar.

Luego, abre el Explorador de Archivos y navega a la carpeta de la solución. Luego abre el CMD.

Instala Tye usando el siguiente comando:

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"
SHELL

O si ya tienes Tye instalado y deseas actualizarlo, usa el siguiente comando:

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"
SHELL

Inicializa Tye usando el siguiente comando:

tye init
tye init
SHELL

Esto creará una plantilla de archivo YAML como la de abajo:

# 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

Ejecuta Tye con el siguiente comando:

tye run frontend
tye run frontend
SHELL

Esto abrirá el tablero de Tye en la URL: http://127.0.0.1:8000/ para ver la aplicación funcionando.

Tye Dashboard

tye .NET (Cómo Funciona Para Desarrolladores): Figura 6 - Aplicación Razor ejecutándose usando Tye en localhost

A continuación, agrega el siguiente código al proyecto para generar un documento PDF desde cualquier URL de sitio web con un clic de un botón.

Agrega el siguiente código al archivo 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:</p>
    <input type="text" asp-for="UrlInput" />
    <button type="submit">Generate PDF</button>
    @if (Model.Message != null)
    {
        <p>@Model.Message</p>
    }
</form>

Luego agrega el siguiente código a 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 a URL.");
                return Page();
            }

            // Create a PDF from the given URL using 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 a URL.");
                return Page();
            }

            // Create a PDF from the given URL using 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");
        }
    }
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc
Imports Microsoft.AspNetCore.Mvc.RazorPages
Imports Microsoft.Extensions.Logging

Namespace Frontend.Pages
	Public Class IndexModel
		Inherits PageModel

		Public Property Message() As String

		<BindProperty>
		Public Property UrlInput() As String

		Private ReadOnly _logger As ILogger(Of IndexModel)

		Public Sub New(ByVal logger As ILogger(Of IndexModel))
			_logger = logger
		End Sub

		Public Sub OnGet()
		End Sub

		Public Function OnPost() As IActionResult
			If String.IsNullOrEmpty(UrlInput) Then
				ModelState.AddModelError("UrlInput", "Please enter a URL.")
				Return Page()
			End If

			' Create a PDF from the given URL using ChromePdfRenderer
			Dim renderer = New ChromePdfRenderer()
			Dim pdf = renderer.RenderUrlAsPdf(UrlInput)

			' Return the PDF as a file result
			Dim pdfBytes = pdf.BinaryData
			Return File(pdfBytes, "application/pdf", "GeneratedDocument.pdf")
		End Function
	End Class
End Namespace
$vbLabelText   $csharpLabel

Ahora ejecuta Tye así:

tye .NET (Cómo Funciona Para Desarrolladores): Figura 7 - Ejecuta tye usando el comando: tye run frontend

Esto lanzará el tablero de Tye.

tye .NET (Cómo Funciona Para Desarrolladores): Figura 8 - Tablero de Tye

Ahora haz clic en cualquiera de los enlaces en la sección de enlaces para abrir la aplicación generadora de PDF e ingresa una URL de muestra para la generación de PDF.

tye .NET (Cómo Funciona Para Desarrolladores): Figura 9 - Generador de URL a PDF usando IronPDF

Haz clic en el botón de generar para obtener el siguiente PDF como salida:

tye .NET (Cómo Funciona Para Desarrolladores): Figura 10 - Conversión de URL HTML a PDF usando IronPDF

Explicación del Código

  1. Index.cshtml contiene el campo de entrada y el botón para capturar la URL del sitio web y desencadenar la generación del PDF.
  2. Index.cshtml.cs es el archivo de código detrás que contiene la lógica para generar el documento PDF usando IronPDF.
  3. La clase ChromePdfRenderer y el método RenderUrlAsPdf() se utilizan para generar el PDF desde la URL.
  4. La URL generada se devuelve como respuesta al método POST.
  5. El comando tye run lanzará el tablero de Tye donde podrás ver todos los servicios en ejecución.
  6. Haz clic en el servicio Frontend en el tablero de Tye para abrir la aplicación y generar los documentos PDF.

Licencia de IronPDF

Visita la página de Licencias de IronPDF.

Coloca la clave de licencia en el archivo appSettings.json como se muestra a continuación:

{
  "IronPdf.License.LicenseKey": "The Key Here"
}

Conclusión

En conclusión, Tye representa un avance significativo en el ecosistema .NET, ofreciendo un enfoque simplificado para construir, probar y desplegar aplicaciones distribuidas. Ya seas un desarrollador .NET experimentado o nuevo en contenerización y microservicios, Tye proporciona una plataforma fácil de usar para adoptar prácticas de desarrollo modernas y acelerar tu camino hacia una arquitectura nativa de la nube.

IronPDF es una biblioteca .NET que permite a los desarrolladores crear, manipular y renderizar documentos PDF desde contenido HTML fácilmente. Soporta convertir HTML a PDF, fusionar y dividir PDFs, y añadir encabezados, pies de página y marcas de agua. IronPDF se conoce por su facilidad de uso, renderizado de alta calidad y compatibilidad con aplicaciones .NET Core y .NET Framework. Conociendo tanto la biblioteca IronPDF como la herramienta de construcción Tye, los desarrolladores pueden adquirir habilidades avanzadas para desarrollar aplicaciones modernas con capacidades de generación de PDF.

Preguntas Frecuentes

¿Cómo puede Tye simplificar el desarrollo de aplicaciones .NET?

Tye simplifica el desarrollo de aplicaciones .NET gestionando microservicios y sus dependencias con una configuración mínima. Aprovecha herramientas de contenedorización y orquestación como Docker y Kubernetes para agilizar los procesos de construcción, prueba y despliegue.

¿Cuáles son los beneficios de usar Tye para el descubrimiento de servicios en aplicaciones .NET?

Tye mejora el descubrimiento de servicios en aplicaciones .NET al detectar automáticamente las dependencias entre microservicios, utilizando metadatos de proyectos y contenedores Docker para facilitar una comunicación y orquestación sin problemas.

¿Cómo se integra Tye con Visual Studio y Visual Studio Code?

Tye se integra con Visual Studio y Visual Studio Code, proporcionando a los desarrolladores herramientas de depuración, registro y monitoreo, que mejoran la experiencia de desarrollo y la productividad para las aplicaciones .NET.

¿Cómo se pueden utilizar los contenedores Docker con Tye?

Tye utiliza contenedores Docker para desplegar aplicaciones .NET. Crea automáticamente Dockerfiles para cada servicio basándose en la configuración del proyecto, asegurando que las construcciones de contenedores sean consistentes y reproducibles en diferentes entornos.

¿Qué pasos se involucran en el despliegue de aplicaciones .NET a Kubernetes usando Tye?

Para desplegar aplicaciones .NET a Kubernetes usando Tye, la herramienta genera manifiestos de Kubernetes y gráficos Helm a partir de especificaciones de proyecto. Esto agiliza el proceso de implementación automatizando la creación de recursos necesarios para un clúster de Kubernetes.

¿Cómo puede IronPDF mejorar las aplicaciones .NET con funcionalidades PDF?

IronPDF mejora las aplicaciones .NET al proporcionar capacidades para crear, manipular y renderizar PDFs a partir de contenido HTML. Soporta la conversión de HTML a PDF, la edición de PDFs y la adición de elementos como encabezados y pies de página, expandiendo así la funcionalidad de las aplicaciones.

¿Qué hace que Tye sea adecuado para el desarrollo de aplicaciones nativas de la nube?

Tye es adecuado para el desarrollo de aplicaciones nativas de la nube ya que equipa a las aplicaciones .NET con herramientas y prácticas esenciales para operar en entornos como Kubernetes, facilitando la adopción de infraestructuras y paradigmas de despliegue modernos.

¿Cómo pueden los desarrolladores comenzar rápidamente con Tye?

Los desarrolladores pueden comenzar con Tye instalando .NET Core 3.1, configurando Tye como una herramienta global y utilizando comandos como tye run para ejecutar aplicaciones. El tablero de Tye ayuda a monitorear y gestionar servicios de manera eficiente.

¿Qué términos de licencia se aplican al usar Project Tye?

Project Tye se distribuye bajo la Licencia MIT, permitiendo el uso gratuito tanto para propósitos de desarrollo como comerciales, facilitando su amplia adopción en varios proyectos.

¿Cómo promueve Tye un tiempo de comercialización más rápido para las aplicaciones .NET?

Tye acelera el tiempo de comercialización automatizando tareas comunes de desarrollo, mejorando la colaboración del equipo y aumentando la preparación para el entorno nativo de la nube, lo que colectivamente agiliza el flujo de trabajo de desarrollo y reduce la sobrecarga.

Jacob Mellor, Director de Tecnología @ Team Iron
Director de Tecnología

Jacob Mellor es Director de Tecnología en Iron Software y un ingeniero visionario que lidera la tecnología PDF en C#. Como el desarrollador original detrás de la base de código central de Iron Software, ha moldeado la arquitectura de productos de la compañía desde ...

Leer más