IRONSOFTWAREHOME
ACTUALIZACIONES PARA DESARROLLADORES

NServiceBus C# (Cómo Funciona para Desarrolladores)

Jacob Mellor, Director de Tecnología @ Team Iron
Jacob Mellor
Updated: 21 de abril de 2026

NServiceBus es un bus de servicio poderoso y adaptable diseñado para .NET Framework que simplifica el desarrollo de sistemas distribuidos. Los patrones de mensajería sólidos que ofrece garantizan el manejo y entrega confiables de mensajes a través de varios microservicios y aplicaciones. NServiceBus abstrae la arquitectura de mensajería subyacente, permitiendo a los desarrolladores concentrarse en la lógica de negocio en lugar de las complejidades de construir sistemas distribuidos.

En contraste, IronPDF es una biblioteca .NET muy popular para generar, ver y modificar archivos PDF. Es bien conocido por ser fácil de usar y muy eficiente en la creación de PDFs desde varias fuentes, como archivos ASPX y HTML.

Los desarrolladores pueden construir sistemas de software confiables, escalables y mantenibles que generen y gestionen documentos PDF como parte de sus operaciones comerciales combinando NServiceBus e IronPDF.

En este artículo, veremos cómo configurar un simple proyecto C# NServiceBus e integrarlo con IronPDF, para que puedas construir un flujo de trabajo optimizado para gestionar y producir documentos PDF en una arquitectura de aplicación distribuida. Después de leer este tutorial introductorio, deberías saber exactamente cómo estas dos tecnologías efectivas pueden cooperar para simplificar tus tareas relacionadas con PDF en un entorno distribuido.

What is NServiceBus C#?

NServiceBus es un marco poderoso y adaptable que facilita crear sistemas distribuidos y arquitecturas orientadas a servicios en .NET. Al utilizar NServiceBus, puedes gestionar fácilmente varios tipos de mensajes y asegurar una comunicación confiable. Esto es crucial, particularmente en una aplicación web y arquitecturas similares donde el enrutamiento y procesamiento sin inconvenientes de mensajes son esenciales. Los handlers de mensajes de NServiceBus manejan eficazmente la recepción de mensajes, asegurando que cada componente lógico interactúe sin problemas. NServiceBus tiene las siguientes características importantes:

NServiceBus C# (Cómo funciona para desarrolladores): Figura 1 - NServiceBus C#

Características de NServiceBus

Comunicación basada en mensajes

NServiceBus fomenta la comunicación basada en mensajes entre diferentes servicios o componentes en un sistema. Al desacoplar componentes, este método crea diseños que son más fáciles de escalar y gestionar.

Mensajería fiable

Al gestionar automáticamente reintentos, colas de mensajes muertos y otras técnicas de tolerancia a fallos, garantiza una entrega de mensajes confiable. En sistemas distribuidos, donde las interrupciones de red y otros problemas de fallos son frecuentes, esta confiabilidad es esencial.

Modelo de publicación/suscripción

El patrón de publicación/suscripción es compatible con NServiceBus, permitiendo a los servicios publicar eventos y permitir que otros servicios se suscriban a estos eventos. Esto hace posibles arquitecturas impulsadas por eventos, en las que las modificaciones realizadas en eventos en un componente del sistema pueden provocar respuestas en otros componentes.

Gestión de Saga

Los procesos comerciales de larga duración pueden ser gestionados con NServiceBus gracias a su soporte integrado para sagas. Las sagas permiten que la plataforma de servicios maneje el estado y coordine operaciones complejas entre varios servicios.

Extensibilidad y personalización

Ofrece un nivel excepcional de extensibilidad, permitiendo a los desarrolladores personalizar la gestión, procesamiento y transporte de mensajes. Gracias a su adaptabilidad, puede utilizarse en una variedad de escenarios.

Integración con varias plataformas de mensajería

Numerosos sistemas de mensajería, incluidos MSMQ, RabbitMQ, Azure Service Bus, Amazon SQS, entre otros, pueden integrarse con NServiceBus. Esto permite a los desarrolladores seleccionar la solución de infraestructura de comunicaciones que mejor se adapte a sus requerimientos.

Create and configure NServiceBus in C#

Primero debes configurar tu entorno de desarrollo, crear un proyecto básico y construir un servicio de mensajería y escenario básico antes de comenzar a usar NServiceBus en un proyecto C#. Aquí tienes una guía paso a paso para comenzar.

Crear un nuevo proyecto de Visual Studio

En Visual Studio, el proceso de crear un proyecto de consola es sencillo. Usa estos sencillos pasos en el entorno de Visual Studio para lanzar una Aplicación de Consola:

Asegúrese de haber instalado Visual Studio en su PC antes de usarlo.

Iniciar un nuevo proyecto

Haz clic en Archivo, luego selecciona Nuevo, y finalmente Proyecto.

NServiceBus C# (How It Works For Developers): Figure 2 - Click "New"

Puedes seleccionar la plantilla "Aplicación de Consola" o "Aplicación de Consola (.NET Core)" de la lista de referencias de plantillas de proyectos a continuación.

Proporciona un nombre para tu proyecto en el campo "Nombre".

NServiceBus C# (Cómo funciona para desarrolladores): Figura 3 - Proporcione un nombre y ubicación para el proyecto

Elige una ubicación de almacenamiento para el proyecto.

Hacer clic en "Crear" iniciará el proyecto de aplicación de consola.

NServiceBus C# (How It Works For Developers): Figure 4 - Click "create"

Instalar paquetes NServiceBus

Navega a Herramientas > Administrador de Paquetes NuGet > Consola del Administrador de Paquetes para abrir la Consola del Administrador de Paquetes NuGet.

Ejecuta el siguiente comando para instalar el paquete NuGet de NServiceBus.

PM > Install-Package NServiceBus

Elija un transporte

El transporte es necesario para que NServiceBus reciba y envíe mensajes. Optaremos por el Transporte de Aprendizaje, ya que es fácil de usar y funciona bien para pruebas y desarrollo.

Instala el paquete para el Transporte de Aprendizaje ejecutando.

PM > Install-Package NServiceBus.RabbitMQ

Configurar NServiceBus

Configurar el punto final

Configure la configuración del endpoint NServiceBus en su archivo Program.cs:

using NServiceBus;
using System;
using System.Threading.Tasks;
using Messages;

class Program
{
    static async Task Main()
    {
        Console.Title = "Sender";
        var endpointConfiguration = new EndpointConfiguration("SenderEndpoint");
        
        // Use RabbitMQ Transport
        var transport = endpointConfiguration.UseTransport<RabbitMQTransport>();
        transport.ConnectionString("host=localhost");
        
        // Set up error queue
        endpointConfiguration.SendFailedMessagesTo("error");
        
        // Set up audit queue
        endpointConfiguration.AuditProcessedMessagesTo("audit");
        
        // Start the endpoint
        var endpointInstance = await Endpoint.Start(endpointConfiguration).ConfigureAwait(false);
        Console.WriteLine("Press Enter to send a message...");
        Console.ReadLine();
        
        // Send a message
        var message = new MyMessage
        {
            Content = "Hello, NServiceBus with RabbitMQ!"
        };
        await endpointInstance.Send("ReceiverEndpoint", message).ConfigureAwait(false);
        Console.WriteLine("Message sent. Press Enter to exit...");
        Console.ReadLine();
        
        // Stop the endpoint
        await endpointInstance.Stop().ConfigureAwait(false);
    }
}

NServiceBus C# (Cómo funciona para desarrolladores): Figura 5 - Ejemplo de salida de consola

Crear un mensaje

Para representar el mensaje, agrega una nueva clase.

public class MyMessage : IMessage
{
    public string Content { get; set; }
}

Crear un gestor de mensajes

Para manejar el mensaje, agrega una nueva clase.

using NServiceBus;
using System.Threading.Tasks;

public class MyMessageHandler : IHandleMessages<MyMessage>
{
    public Task Handle(MyMessage message, IMessageHandlerContext context)
    {
        Console.WriteLine($"Received message: {message.Content}");
        return Task.CompletedTask;
    }
}

Enviar un mensaje

Envía un mensaje desde el Endpoint. Adapta tu método principal para transmitir un mensaje con la ayuda del handler.

using NServiceBus;
using System;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        Console.Title = "Receiver";
        var endpointConfiguration = new EndpointConfiguration("ReceiverEndpoint");
        
        // Serialization configuration
        endpointConfiguration.UseSerialization<NewtonsoftJsonSerializer>();
        
        // Use RabbitMQ Transport
        var transport = endpointConfiguration.UseTransport<RabbitMQTransport>();
        transport.UseConventionalRoutingTopology(QueueType.Quorum);
        transport.ConnectionString("host=localhost");
        
        // Set up error queue
        endpointConfiguration.SendFailedMessagesTo("error");
        
        // Set up audit queue
        endpointConfiguration.AuditProcessedMessagesTo("audit");
        endpointConfiguration.EnableInstallers();
        
        // Start the endpoint
        var endpointInstance = await Endpoint.Start(endpointConfiguration).ConfigureAwait(false);
        Console.WriteLine("Press Enter to exit...");
        Console.ReadLine();
        
        // Stop the endpoint
        await endpointInstance.Stop().ConfigureAwait(false);
    }
}

NServiceBus C# (Cómo funciona para desarrolladores): Figura 6 - Ejemplo de salida de consola

Inicia la aplicación y construye el proyecto. La consola debería mostrar el mensaje "Mensaje recibido: ¡Hola, NServiceBus!"

Empezando

En un proyecto de C#, integrar NServiceBus con RabbitMQ e IronPDF implica configurar mensajes entre NServiceBus y RabbitMQ, así como usar IronPDF para crear PDFs. Aquí tienes un cómo hacerlo detallado para comenzar:

¿Qué es IronPDF?

IronPDF es una biblioteca .NET diseñada para crear, leer, editar y convertir archivos PDF. Con ella, los programadores pueden trabajar con archivos PDF en aplicaciones C# o VB.NET con una herramienta poderosa e intuitiva. Las características y capacidades de IronPDF se describen completamente a continuación:

NServiceBus C# (Cómo funciona para desarrolladores): Figura 7 - IronPDF: La página de inicio de la biblioteca C# PDF

Características de IronPDF

Generación de PDF desde HTML

Convierte JavaScript, HTML y CSS a PDF. Soporta consultas de medios y diseño responsivo, dos estándares web contemporáneos. Útil para producir documentos PDF dinámicamente estilizados, facturas e informes usando HTML y CSS.

Edición de PDF

A PDFs ya existentes, añade texto, imágenes y otros materiales. Extrae texto e imágenes de archivos PDF. Combina varios PDFs en un archivo. Divide archivos PDF en varios documentos. Incluye anotaciones, pies de página, encabezados y marcas de agua.

Conversión de PDF

Convierte Word, Excel, imágenes y otros formatos de archivo a PDF. Conversión de PDF a imagen (PNG, JPEG, etc.).

Rendimiento y Fiabilidad

El alto rendimiento y la confiabilidad son los objetivos de diseño en entornos de producción. Administra eficientemente documentos grandes.

Instalación de IronPDF

Instala IronPDF abriendo la Consola del Administrador de Paquetes NuGet.

PM > Install-Package IronPdf

Configurar el remitente con mensaje

Mensajes es un proyecto compartido (librería de clases) que el remitente y el destinatario utilizarán ambos. Define la clase de mensaje en el proyecto de Mensajes. Crea un nuevo proyecto de Librería de Clases llamado Mensajes y añádelo a la solución.

Definir el mensaje:

Dentro del proyecto Messages, cree una nueva clase llamada GeneratePdfMessage.cs:

using NServiceBus;

public class GeneratePdfMessage : IMessage
{
    public string Content { get; set; }
    public string OutputPath { get; set; }
}

En los proyectos tanto del Remitente como del Receptor, incluye una referencia al proyecto de Mensajes.

Configura el endpoint de NServiceBus en el proyecto del Remitente para usar RabbitMQ para la entrega de mensajes.

using NServiceBus;
using System;
using System.Threading.Tasks;
using Messages;

class Program
{
    static async Task Main()
    {
        Console.Title = "Sender";
        var endpointConfiguration = new EndpointConfiguration("SenderEndpoint");

        // Use RabbitMQ Transport
        var transport = endpointConfiguration.UseTransport<RabbitMQTransport>();
        transport.ConnectionString("host=localhost");

        // Set up error queue
        endpointConfiguration.SendFailedMessagesTo("error");

        // Set up audit queue
        endpointConfiguration.AuditProcessedMessagesTo("audit");
        endpointConfiguration.EnableInstallers();

        // Start the endpoint
        var endpointInstance = await Endpoint.Start(endpointConfiguration).ConfigureAwait(false);
        Console.WriteLine("Press Enter to send a message...");
        Console.ReadLine();

        // Send a message
        var message = new GeneratePdfMessage
        {
            Content = "<h1>Hello, NServiceBus with RabbitMQ and IronPDF!</h1>",
            OutputPath = "output.pdf"
        };
        await endpointInstance.Send("ReceiverEndpoint", message).ConfigureAwait(false);
        Console.WriteLine("Message sent. Press Enter to exit...");
        Console.ReadLine();

        // Stop the endpoint
        await endpointInstance.Stop().ConfigureAwait(false);
    }
}

Configuración del Endpoint: el endpoint se inicializa con el nombre "SenderEndpoint" llamando a new EndpointConfiguration("SenderEndpoint").

endpointConfiguration es la configuración de transporte. Conectándose a una instancia local de RabbitMQ, el método UseTransport() configura NServiceBus para usar RabbitMQ como el mecanismo de transporte.

Las colas de auditoría y errores donde enviar mensajes fallidos y auditar mensajes procesados se configuran utilizando SendFailedMessagesTo("error") y AuditProcessedMessagesTo("audit"), respectivamente.

Mensaje Enviado: endpointInstance.Send("ReceiverEndpoint", message) envía un GeneratePdfMessage al "ReceiverEndpoint".

Configurar el receptor para generar PDF

Configura el endpoint de NServiceBus en el proyecto del Receptor para aceptar mensajes a través de RabbitMQ y producir PDFs usando IronPDF.

using NServiceBus;
using System;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        Console.Title = "Receiver";
        var endpointConfiguration = new EndpointConfiguration("ReceiverEndpoint");
        
        // Use RabbitMQ Transport
        var transport = endpointConfiguration.UseTransport<RabbitMQTransport>();
        transport.ConnectionString("host=localhost");
        
        // Set up error queue
        endpointConfiguration.SendFailedMessagesTo("error");
        
        // Set up audit queue
        endpointConfiguration.AuditProcessedMessagesTo("audit");
        
        // Start the endpoint
        var endpointInstance = await Endpoint.Start(endpointConfiguration).ConfigureAwait(false);
        Console.WriteLine("Press Enter to exit...");
        Console.ReadLine();
        
        // Stop the endpoint
        await endpointInstance.Stop().ConfigureAwait(false);
    }
}

Esta configuración, para el endpoint receptor "ReceiverEndpoint", es comparable a la configuración del Remitente.

Manejador de mensajes

En el proyecto Receiver, cree una nueva clase llamada GeneratePdfMessageHandler.cs.

using NServiceBus;
using System;
using System.Threading.Tasks;
using Messages;
using IronPdf;

public class GeneratePdfMessageHandler : IHandleMessages<GeneratePdfMessage>
{
    public Task Handle(GeneratePdfMessage message, IMessageHandlerContext context)
    {
        Console.WriteLine($"Received message to generate PDF with content: {message.Content}");
        
        // Generate PDF
        var renderer = new HtmlToPdf();
        var pdf = renderer.RenderHtmlAsPdf(message.Content);
        pdf.SaveAs(message.OutputPath);
        Console.WriteLine($"PDF generated and saved to: {message.OutputPath}");
        
        return Task.CompletedTask;
    }
}

GeneratePdfMessageHandler utiliza la interfaz IHandleMessages para manejar mensajes del tipo GeneratePdfMessage.

NServiceBus C# (Cómo funciona para desarrolladores): Figura 8 - Ejemplo de salida de consola

Método Handle: Después de recibir el mensaje, la función Handle crea un PDF usando IronPDF. El contenido HTML en el mensaje se convierte en un PDF mediante el código del renderizador HtmlToPdf, que luego lo guarda en la ruta de salida designada.

NServiceBus C# (Cómo funciona para desarrolladores): Figura 9 - Salida de PDF al usar NServiceBus con RabbitMQ junto con IronPDF

Conclusión

NServiceBus puede integrarse con RabbitMQ e IronPDF en C# para proporcionar una solución escalable y estable para sistemas distribuidos que necesitan generar PDFs de manera dinámica y confiable. Esta combinación utiliza las capacidades de procesamiento de mensajes de NServiceBus, la fiabilidad y adaptabilidad de RabbitMQ como un broker de mensajes, y las robustas herramientas de edición de PDF de IronPDF. El desacoplamiento entre servicios se asegura con la arquitectura resultante, permitiendo una evolución autónoma y escalabilidad.

RabbitMQ también asegura la entrega de mensajes incluso en caso de fallos de red o bloqueos de la aplicación. NServiceBus hace que el enrutamiento y procesamiento de mensajes sea más sencillo, e IronPDF hace posible convertir texto HTML en documentos PDF de alta calidad. Esta integración ofrece un marco flexible para desarrollar aplicaciones sofisticadas a gran escala, además de mejorar la mantenibilidad y fiabilidad del sistema.

Por último, al añadir IronPDF e Iron Software a tu kit de herramientas para programación .NET, puedes trabajar eficazmente con códigos de barras, generar PDFs, realizar OCR y enlazar con Excel. Página de Licencias de IronPDF, que comienza en $999, combina sin problemas sus características y el rendimiento, compatibilidad y facilidad de uso de la página oficial de Iron Software flexible suite para proporcionar aplicaciones web adicionales y capacidades y un desarrollo más eficiente.

Si hay opciones de licencia bien definidas que están personalizadas a los requerimientos específicos del proyecto, los desarrolladores pueden seleccionar el modelo óptimo con confianza. Estos beneficios permiten a los desarrolladores manejar una variedad de dificultades de manera eficaz y transparente.

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

Jacob Mellor es Director de Tecnología de Iron Software y un ingeniero visionario pionero en la tecnología C# PDF. Como desarrollador original de la base de código principal de Iron Software, ha dado forma a la arquitectura de productos de la empresa desde su creación, transformándola, junto con el director ejecutivo Cameron Rimington, en una empresa de más de 50 personas que presta servicios a la NASA, Tesla y organismos gubernamentales de todo el mundo.

...
Leer más

Artículos Relacionados

Key in blue circle

Obtenga su clave de prueba gratuita de 30 días al instante.

Your trial license will be sent to your email address

Sin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.

OR
bullet_checkedNo se requiere tarjeta de crédito ni creación de cuentaSin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
Reserve su Demostración en Vivo gratuita
Booking Badge

Confiado por millones de ingenieros en todo el mundo

Logos de clientes de Iron Software
Obtén tu Consulta Sin Compromiso
Completa el formulario a continuación o envía un correo a sales@ironsoftware.com
Tus detalles siempre serán mantenidos confidenciales.
Confiado por millones de ingenieros en todo el mundo
Logos de clientes de Iron Software
Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta
Biblioteca C# NuGet para PDF
Instalar con NuGet

Versión: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. En el Explorador de Soluciones, haga clic derecho en Referencias, Administrar Paquetes NuGet
  2. Seleccione Examinar y busque "IronPDF"
  3. Seleccione el paquete e instale
C# PDF DLL
Descargar DLL

Versión: 2026.9

o descargue el Instalador de Windows aquí.

  1. Descargue y descomprima IronPDF en una ubicación como ~/Libs dentro del directorio de su solución
  2. En el Explorador de Soluciones de Visual Studio, haga clic derecho en Referencias. Seleccione Examinar, "IronPDF.dll"

Licencias desde $999