AYUDA .NET

Topshelf C# (Cómo funciona para desarrolladores)

Actualizado agosto 13, 2024
Compartir:

Introducción

Un paquete de código abierto muy popular llamado Topshelf se creó para facilitar la creación de servicios Windows en .NET. El marco que ofrece simplifica y da sentido a la creación, despliegue y administración de Servicios de Windowsliberando a los desarrolladores para que se concentren en la lógica empresarial en lugar de en las complejidades de la gestión del control de servicios. En combinación con IronPDF, una biblioteca de C# repleta de funciones para crear y modificar archivos PDF, los desarrolladores pueden crear servicios fiables y sólidos capaces de gestionar trabajos complejos de procesamiento de documentos.

Esta conexión proporciona una solución perfecta para las empresas que necesitan flujos de trabajo documentales eficaces y automatizados, ya que automatiza la creación, revisión y distribución de PDF dentro de un marco de servicio completo de Windows. Los desarrolladores pueden obtener un alto grado de funcionalidad y facilidad de mantenimiento en sus aplicaciones de servicios, garantizando tanto la solidez como la facilidad de uso, utilizando Topshelf con IronPDF en C#.

¿Qué es Topshelf C#?

El desarrollo, la configuración y la implantación de los servicios de Windows resultan más sencillos con la ayuda del paquete .NET del proyecto de código abierto Topshelf. Al eliminar gran parte de la complejidad del proceso de creación de servicios de Windows, los desarrolladores pueden concentrarse más en las características esenciales de sus aplicaciones que en los matices de la administración de servicios de Windows.

Con pocos cambios de código, Topshelf facilita a los desarrolladores la conversión de aplicaciones de consola en servicios. También ofrece una API fluida para establecer la configuración de los servicios, incluidas las dependencias, las opciones de recuperación y las acciones para iniciar y detener los servicios. Para los desarrolladores .NET que deseen crear de forma eficaz servicios Windows estables y manejables, Topshelf es una opción muy apreciada por su facilidad de uso y adaptabilidad.

Topshelf C# (Cómo funciona para los desarrolladores): Figura 1

Una serie de funciones ofrecidas por Topshelf facilitan el diseño y el mantenimiento de servicios de Windows en .NET. A continuación se indican algunos de sus atributos más destacados:

Facilidad de uso

Topshelf proporciona una API básica y fluida que simplifica el proceso de configuración y administración de los servicios de Windows que la utilizan. Los desarrolladores pueden convertir fácilmente las aplicaciones de consola en servicios sin apenas modificar el código.

Flexibilidad de configuración

Las acciones de inicio, parada, pausa y continuación son algunas de las opciones de configuración que admite. Los desarrolladores también pueden especificar las dependencias de servicio y las opciones de recuperación de las clases de servicio.

Instalación y desinstalación

La implantación de servicios de alojamiento escritos con .NET Framework se ve facilitada por las funciones integradas de Topshelf para instalar y desinstalar servicios. Los servicios pueden instalarse mediante programación o a través de la línea de comandos.

Registro

Topshelf facilita a los desarrolladores la capacidad de registrar eficazmente las operaciones y fallos de los servicios mediante la integración con marcos de registro bien conocidos como log4net, NLog y Serilog.

Control de servicios

Es compatible con todos los controles habituales de los servicios de Windows, como pausar, continuar, iniciar y detener. Los desarrolladores tienen ahora un control total sobre todo el ciclo de vida del servicio.

Gestión de excepciones

El manejo robusto de excepciones es una característica de Topshelf que garantiza que los servicios puedan manejar los fallos con elegancia y permanecer estables.

Múltiples instancias de servicio

Proporciona flexibilidad para arquitecturas de servicio complicadas al permitir la creación y gestión de muchas instancias de servicio dentro de la misma aplicación.

Opciones personalizadas de la línea de comandos

Las opciones personalizadas de la línea de comandos permiten a los desarrolladores personalizar y controlar aún más el comportamiento de sus servicios.

Sensibilización medioambiental

Ya se trate de un servidor de producción, un entorno de pruebas o un sistema de desarrollo, Topshelf puede reconocer y adaptarse a su entorno.

Inyección de dependencias

Topshelf facilita una mejor arquitectura del software y facilita la gestión de las dependencias de los servicios cuando se utiliza junto con marcos de inyección de dependencias.

Capacidades multiplataforma

Topshelf se creó principalmente para Windows, pero también puede ejecutar servicios en Linux y macOS al utilizar .NET Core, lo que aumenta su compatibilidad con otros sistemas operativos.

Crear y configurar Topshelf C#

Utilice Topshelf en C# para crear y configurar un servicio de Windows realizando los siguientes pasos:

Crear un nuevo proyecto de Visual Studio

Es fácil crear un proyecto de consola con Visual Studio. Para iniciar una aplicación de consola en el entorno de Visual Studio, siga estos sencillos pasos:

Antes de utilizar Visual Studio, asegúrese de que lo ha instalado en su ordenador.

Iniciar un nuevo proyecto

Tras elegir Archivo, Proyecto, seleccione el menú Nuevo.

Topshelf C# (Cómo funciona para los desarrolladores): Figura 2

Seleccione "Aplicación Consola" o "Aplicación Consola" (.NET Core)" de la lista de referencias de plantillas de proyectos que figura a continuación.

Para dar un nombre a su proyecto, rellene el campo "Nombre".

Topshelf C# (Cómo funciona para los desarrolladores): Figura 3

Seleccione la ubicación para el almacenamiento del proyecto.

El proyecto de la aplicación Consola se abrirá al hacer clic en "Crear".

Topshelf C# (Cómo funciona para los desarrolladores): Figura 4

Instalar Topshelf mediante NuGet

Utilizando el gestor de paquetes NuGet, añada Topshelf a su proyecto inicialmente. En la aplicación Package Manager and Console, ejecute el siguiente comando:

Install-Package Topshelf
Install-Package Topshelf
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Crear una clase de servicio

Describe la lógica de servicio de la clase. Start y Stop, entre otras acciones de servicio, deben implementarse en esta clase.

using System;
using Topshelf;
namespace MyWindowsService
{
    public class MyService
    {
        public bool Start()
        {
            // Write start logic here
            Console.WriteLine("Service Started.");
            return true;
        }
        public bool Stop()
        {
            // Write stop logic here
            Console.WriteLine("Service Stopped.");
            return true;
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            HostFactory.Run(x =>
            {
                x.Service<MyService>(s =>
                {
                    s.ConstructUsing(name => new MyService());
                    s.WhenStarted(tc => tc.Start());
                    s.WhenStopped(tc => tc.Stop());
                });
                x.RunAsLocalSystem();
                x.SetServiceName("MyService");
                x.SetDisplayName("My Service");
                x.SetDescription("This is a sample service created using Topshelf.");
            });
        }
    }
}
using System;
using Topshelf;
namespace MyWindowsService
{
    public class MyService
    {
        public bool Start()
        {
            // Write start logic here
            Console.WriteLine("Service Started.");
            return true;
        }
        public bool Stop()
        {
            // Write stop logic here
            Console.WriteLine("Service Stopped.");
            return true;
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            HostFactory.Run(x =>
            {
                x.Service<MyService>(s =>
                {
                    s.ConstructUsing(name => new MyService());
                    s.WhenStarted(tc => tc.Start());
                    s.WhenStopped(tc => tc.Stop());
                });
                x.RunAsLocalSystem();
                x.SetServiceName("MyService");
                x.SetDisplayName("My Service");
                x.SetDescription("This is a sample service created using Topshelf.");
            });
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Topshelf C# (Cómo funciona para los desarrolladores): Figura 5

Configurar el servicio

El mecanismo para iniciar y terminar el servicio está contenido en la clase MyService. La definición del servicio y sus métodos de ciclo de vida (Inicio y parada) están conectadas a las acciones de servicio correspondientes en la clase Program, que alberga la configuración de Topshelf. Las propiedades del servicio, como su nombre, nombre para mostrar y descripción, se establecen mediante el método de ejecución de una única clase de servicio. El uso de Topshelf para gestionar y desplegar servicios Windows se simplifica gracias a esta sucinta configuración.

Construir e instalar el servicio

A medida que construyas tu proyecto, asegúrate de que no contenga errores. Utilice el comando install junto con el ejecutable compilado para lanzar el servicio desde la línea de comandos:

MyWindowsService.exe install
MyWindowsService.exe install
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Iniciar el servicio

Utilice el siguiente comando para iniciar el servicio una vez instalado:

MyWindowsService.exe start
MyWindowsService.exe start
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Desinstalar el servicio

Utilice el siguiente comando para desinstalar el servicio si es necesario:

MyWindowsService.exe uninstall
MyWindowsService.exe uninstall
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Este ejemplo muestra cómo utilizar Topshelf en C# para crear y configurar un servicio de Windows. Topshelf agiliza el procedimiento, facilitando la instalación de definición, configuración y administración de servicios de Windows con poco o ningún código.

Para empezar

Para empezar a crear un servicio Windows en C# utilizando IronPDF y Topshelf, realice las siguientes acciones:

¿Qué es IronPDF?

IronPDF es una biblioteca .NET repleta de funciones que los programas C# pueden utilizar para crear, leer y editar documentos PDF. Con este programa, los desarrolladores pueden producir fácilmente PDF de alta calidad listos para imprimir a partir de contenidos HTML, CSS y JavaScript. La posibilidad de dividir y combinar PDF, poner marcas de agua a los documentos, añadir encabezados y pies de página y convertir HTML a PDF son algunas de las funciones esenciales. IronPDF es compatible tanto con .NET Framework como con .NET Core, por lo que resulta útil para una amplia gama de aplicaciones.

Como los PDF son fáciles de integrar y disponen de abundante documentación, los desarrolladores pueden incorporarlos fácilmente a sus programas. IronPDF garantiza que los PDF generados se parezcan mucho al contenido HTML de origen, manejando con facilidad diseños y formatos complejos.

Topshelf C# (Cómo funciona para los desarrolladores): Figura 6

Características de IronPDF

Generación de PDF a partir de HTML

Convierte JavaScript, HTML y CSS a PDF. es compatible con media queries y responsive design, dos estándares web contemporáneos. útil para decorar dinámicamente facturas, informes y documentos PDF con HTML y CSS.

Edición de PDF

A los PDF preexistentes se les puede añadir texto, fotos y otros contenidos. Extraiga texto e imágenes de archivos PDF. combinar numerosos PDF en un solo archivo. Divida archivos PDF en varios documentos independientes. Incluye marcas de agua, anotaciones, encabezados y pies de página.

Conversión de PDF

Convierte varios formatos de archivo, incluidos Word, Excel y archivos de imagen, a formato PDF. Conversión de PDF a imagen (PNG, JPEG, etc.).

**Rendimiento y fiabilidad

El alto rendimiento y la fiabilidad son cualidades de diseño deseadas en los entornos industriales. gestiona grandes conjuntos de documentos con facilidad.

Instalar IronPDF

Para obtener las herramientas que necesita para trabajar con archivos PDF en proyectos .NET, instale el paquete IronPDF.

Install-Package IronPDF
Install-Package IronPDF
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronPDF
VB   C#

Cree su clase de servicio con IronPDF

Defina la funcionalidad de IronPDF para crear y modificar archivos PDF, así como la lógica de servicio de la clase.

using System;
using IronPdf;
using Topshelf;
namespace PdfService
{
    public class MyPdfService
    {
        public bool Start()
        {
            Console.WriteLine("Service Starting...");
            GeneratePdf();
            return true;
        }
        public bool Stop()
        {
            Console.WriteLine("Service Stopping...");
            return true;
        }
        private void GeneratePdf()
        {
            var renderer = new HtmlToPdf();
            var pdf = renderer.RenderHtmlAsPdf("<h1>Hello, PDF!</h1>");
            pdf.SaveAs("GeneratedDocument.pdf");
            Console.WriteLine("PDF Generated.");
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            HostFactory.Run(x =>
            {
                x.Service<MyPdfService>(s =>
                {
                    s.ConstructUsing(name => new MyPdfService());
                    s.WhenStarted(tc => tc.Start());
                    s.WhenStopped(tc => tc.Stop());
                });
                x.RunAsLocalSystem();
                x.SetServiceName("MyPdfService");
                x.SetDisplayName("My PDF Service");
                x.SetDescription("A service that generates PDF files using IronPDF and Topshelf.");
            });
        }
    }
}
using System;
using IronPdf;
using Topshelf;
namespace PdfService
{
    public class MyPdfService
    {
        public bool Start()
        {
            Console.WriteLine("Service Starting...");
            GeneratePdf();
            return true;
        }
        public bool Stop()
        {
            Console.WriteLine("Service Stopping...");
            return true;
        }
        private void GeneratePdf()
        {
            var renderer = new HtmlToPdf();
            var pdf = renderer.RenderHtmlAsPdf("<h1>Hello, PDF!</h1>");
            pdf.SaveAs("GeneratedDocument.pdf");
            Console.WriteLine("PDF Generated.");
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            HostFactory.Run(x =>
            {
                x.Service<MyPdfService>(s =>
                {
                    s.ConstructUsing(name => new MyPdfService());
                    s.WhenStarted(tc => tc.Start());
                    s.WhenStopped(tc => tc.Stop());
                });
                x.RunAsLocalSystem();
                x.SetServiceName("MyPdfService");
                x.SetDisplayName("My PDF Service");
                x.SetDescription("A service that generates PDF files using IronPDF and Topshelf.");
            });
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Los desarrolladores pueden diseñar rápidamente sólidos servicios Windows para la producción y manipulación de PDF combinando Topshelf con IronPDF en C#. Topshelf ofrece una API fluida y fácil de usar que facilita la configuración y gestión de los servicios de Windows.

Topshelf C# (Cómo funciona para los desarrolladores): Figura 7

Una clase MyPdfService, que implementa métodos para iniciar (Inicio) y terminando (Stop) el servicio, encapsula la lógica del servicio en el ejemplo dado. IronPDF se utiliza en el método Start para crear un sencillo Documento PDF a partir de texto HTML. Se demuestra la capacidad de convertir HTML en un formato PDF utilizando la clase HtmlToPdf de IronPDF, mostrando cómo convertir información HTML básica (como "

Hola, PDF!

") en un archivo PDF ("DocumentoGenerado.pdf").

Topshelf C# (Cómo funciona para los desarrolladores): Figura 8

Esta integración demuestra cómo Topshelf gestiona la vida útil del servicio para asegurarse de que funciona como un servicio completo de Windows, y cómo IronPDF gestiona el difícil proceso de crear archivos PDF con facilidad. Con las capacidades combinadas de Topshelf e IronPDF en C#, esta integración es perfecta para aplicaciones que necesitan la creación o modificación automatizada de documentos. Ofrece fiabilidad y facilidad de mantenimiento.

Conclusión

En conclusión, la creación y administración de servicios de Windows que implican la creación y manipulación de PDF es posible gracias a la combinación de Topshelf e IronPDF en C#. Al ofrecer una API fácil de usar para la configuración y gestión de servicios, Topshelf agiliza la implantación de servicios Windows. Al facilitar la generación fluida de documentos PDF a partir de información HTML dentro de la lógica del servicio, IronPDF mejora el funcionamiento entretanto.

Esta integración garantiza un rendimiento fiable y sólido en los flujos de trabajo documentales automatizados, al tiempo que agiliza el proceso de desarrollo. Topshelf con IronPDF en C# destaca como una opción flexible y eficaz, que permite a los desarrolladores crear soluciones complejas de procesamiento de documentos con facilidad, ya sea para crear informes, facturas o cualquier otra tarea basada en PDF.

IronPDF y IronSoftware combina los sistemas y la suite increíblemente flexibles de Iron Software con su soporte básico para ofrecer al desarrollador más aplicaciones y funciones en línea, así como un desarrollo más eficaz.

Si las opciones de licencia son claras y específicas para el proyecto, los desarrolladores pueden determinar más fácilmente qué modelo es el óptimo. Estas ventajas permiten a los desarrolladores resolver una amplia gama de problemas de forma clara, eficaz y cohesivamente integrada.

< ANTERIOR
EasyNetQ .NET (Cómo funciona para desarrolladores)
SIGUIENTE >
CSLA .NET (Cómo funciona para desarrolladores)

¿Listo para empezar? Versión: 2024.9 acaba de salir

Descarga gratuita de NuGet Descargas totales: 10,516,730 View Licenses >