IRONSOFTWAREHOME
ENTWICKLER-UPDATES

NServiceBus C# (Wie es für Entwickler funktioniert)

Jacob Mellor, Chief Technology Officer @ Team Iron
Jacob Mellor
Updated: 21. April 2026

NServiceBus ist ein leistungsstarker und anpassungsfähiger Service-Bus, der für das .NET Framework entwickelt wurde und die Entwicklung verteilter Systeme vereinfacht. Die starken Messaging-Muster, die es bietet, garantieren eine zuverlässige Nachrichtenbearbeitung und -übermittlung über mehrere Microservices und Anwendungen hinweg. NServiceBus abstrahiert die zugrundeliegende Messaging-Architektur, sodass Entwickler sich auf die Geschäftslogik konzentrieren können, anstatt auf die Feinheiten des Aufbaus verteilter Systeme.

Im Gegensatz dazu ist IronPDF eine beliebte .NET-Bibliothek zum Erstellen, Anzeigen und Bearbeiten von PDF-Dateien. Sie ist bekannt für ihre Benutzerfreundlichkeit und sehr effizient beim Erstellen von PDFs aus verschiedenen Quellen, wie beispielsweise ASPX-Dateien und HTML.

Entwickler können durch die Kombination von NServiceBus und IronPDF zuverlässige, skalierbare und wartbare Softwaresysteme erstellen, die PDF-Dokumente im Rahmen ihrer Geschäftsprozesse generieren und verwalten können.

Wir werden in diesem Artikel untersuchen, wie man ein einfaches C# NServiceBus-Projekt einrichtet und es mit IronPDF integriert, damit Sie einen nahtlosen Workflow zur Verwaltung und Erstellung von PDF-Dokumenten in einer verteilten Anwendungsarchitektur aufbauen können. Nach dem Lesen dieses Einführungstutorials sollten Sie genau wissen, wie diese zwei effektiven Technologien zusammenarbeiten können, um Ihre PDF-bezogenen Aufgaben in einem verteilten Umfeld zu vereinfachen.

What is NServiceBus C#?

NServiceBus ist ein leistungsstarkes und anpassungsfähiges Framework, das es erleichtert, verteilte Systeme und serviceorientierte .NET-Architekturen zu erstellen. Durch die Nutzung von NServiceBus können Sie problemlos verschiedene Nachrichtentypen verwalten und eine zuverlässige Kommunikation sicherstellen. Dies ist besonders wichtig in einer Webanwendung und ähnlichen Architekturen, in denen nahtloses Nachrichten-Routing und -Verarbeitung entscheidend sind. Die Nachrichtenhandler von NServiceBus sind effektiv im Empfang von Nachrichten und stellen sicher, dass jede logische Komponente reibungslos interagiert. NServiceBus hat die folgenden wichtigen Funktionen:

NServiceBus C# (Wie es für Entwickler funktioniert): Abbildung 1 - NServiceBus C#

Funktionen von NServiceBus

Nachrichtengestützte Kommunikation

NServiceBus fördert die nachrichtenbasierte Kommunikation zwischen verschiedenen Diensten oder Komponenten in einem System. Durch das Entkoppeln von Komponenten schafft diese Methode Designs, die einfacher zu skalieren und zu verwalten sind.

Zuverlässige Nachrichtenübermittlung

Durch die automatische Verwaltung von Wiederholungsversuchen, Dead-Letter-Warteschlangen und anderen Fehlertoleranztechniken wird eine zuverlässige Nachrichtenzustellung garantiert. In verteilten Systemen, in denen Netzwerkausfälle und andere Fehlertypen häufig sind, ist diese Zuverlässigkeit entscheidend.

Publish/Subscribe-Modell

Das Publish/Subscribe-Muster wird von NServiceBus unterstützt, sodass Dienste Ereignisse veröffentlichen und andere Dienste diese Ereignisse abonnieren können. Dies ermöglicht ereignisgetriebene Architekturen, bei denen Modifikationen an Ereignissen in einer Systemkomponente Reaktionen in anderen Komponenten auslösen können.

Saga-Management

Langfristige Geschäftsprozesse können mit NServiceBus dank seiner integrierten Unterstützung für Sagas verwaltet werden. Sagas ermöglichen es der Serviceplattform, den Zustand zu verwalten und komplexe Operationen zwischen mehreren Diensten zu koordinieren.

Erweiterbarkeit und Anpassung

Es bietet ein außergewöhnliches Maß an Erweiterbarkeit, sodass Entwickler die Handhabung, Verarbeitung und den Transport von Nachrichten personalisieren können. Dank seiner Anpassungsfähigkeit kann es in einer Vielzahl von Szenarien verwendet werden.

Integration mit verschiedenen Messaging-Plattformen

Zahlreiche Nachrichtensysteme, einschließlich MSMQ, RabbitMQ, Azure Service Bus, Amazon SQS und andere, können in NServiceBus integriert werden. Dies ermöglicht es Entwicklern, die Kommunikationsinfrastruktur zu wählen, die ihren Anforderungen am besten entspricht.

Create and configure NServiceBus in C#

Sie müssen zunächst Ihre Entwicklungsumgebung einrichten, ein einfaches Projekt erstellen und einen grundlegenden Nachrichtendienst und ein Szenario entwickeln, bevor Sie mit dem Einsatz von NServiceBus in einem C#-Projekt beginnen können. Hier ist eine Schritt-für-Schritt-Anleitung:

Ein neues Visual Studio-Projekt erstellen

In Visual Studio ist der Prozess zur Erstellung eines Konsolenprojekts einfach. Verwenden Sie diese einfachen Schritte in der Visual Studio-Umgebung, um eine Konsolenanwendung zu starten:

Stellen Sie sicher, dass Sie Visual Studio auf Ihrem PC installiert haben, bevor Sie es verwenden.

Ein neues Projekt starten

Klicken Sie auf Datei, dann auf Neu, und schließlich auf Projekt.

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

Sie können die Vorlage "Konsolen-App" oder "Konsolen-App (.NET Core)" aus der Liste der Projektvorlagenreferenzen unten auswählen.

Geben Sie Ihrem Projekt im Feld "Name" einen Namen.

NServiceBus C# (Wie es für Entwickler funktioniert): Abbildung 3 - Geben Sie einen Namen und einen Speicherort für das Projekt an

Wählen Sie einen Speicherort für das Projekt.

Durch Klicken auf "Erstellen" wird das Konsolenanwendungsprojekt gestartet.

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

NServiceBus-Pakete installieren

Navigieren Sie zu Werkzeuge > NuGet-Paket-Manager > Paket-Manager-Konsole, um die NuGet-Paket-Manager-Konsole zu öffnen.

Führen Sie den folgenden Befehl aus, um das NServiceBus NuGet-Paket zu installieren.

PM > Install-Package NServiceBus

Wählen Sie einen Transport

NServiceBus benötigt einen Transport, um Nachrichten zu empfangen und zu senden. Wir werden beim Learning Transport bleiben, da er einfach zu verwenden ist und sich gut für Tests und Entwicklung eignet.

Installieren Sie das Paket für den Learning Transport, indem Sie es ausführen.

PM > Install-Package NServiceBus.RabbitMQ

NServiceBus konfigurieren

Einrichten des Endpunkts

Konfigurieren Sie den NServiceBus-Endpunkt in Ihrer Program.cs Datei:

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# (Wie es für Entwickler funktioniert): Abbildung 5 - Beispiel Konsolenausgabe

Nachricht verfassen

Fügen Sie eine neue Klasse zur Darstellung der Nachricht hinzu.

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

Erstellen eines Message Handlers

Fügen Sie eine neue Klasse zur Bearbeitung der Nachricht hinzu.

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;
    }
}

Nachricht senden

Senden Sie eine Nachricht vom Endpunkt. Passen Sie Ihren primären Weg an, um eine Nachricht mit Hilfe des Handlers zu übermitteln.

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# (Wie es für Entwickler funktioniert): Abbildung 6 - Beispiel Konsolenausgabe

Starten Sie die Anwendung und bauen Sie das Projekt. Die Konsole sollte die Nachricht "Nachricht erhalten: Hallo, NServiceBus!" anzeigen.

Einstieg

In einem C#-Projekt umfasst die Integration von NServiceBus mit RabbitMQ und IronPDF das Konfigurieren von Nachrichten zwischen NServiceBus und RabbitMQ sowie die Verwendung von IronPDF zum Erstellen von PDFs. Hier ist eine umfassende Anleitung:

Was ist IronPDF?

IronPDF ist eine .NET-Bibliothek, die für das Erstellen, Lesen, Bearbeiten und Konvertieren von PDF-Dateien entwickelt wurde. Damit können Programmierer mit PDF-Dateien in C#- oder VB.NET-Anwendungen mit einem leistungsstarken und intuitiven Tool arbeiten. Die Merkmale und Fähigkeiten von IronPDF werden unten ausführlich beschrieben:

NServiceBus C# (Wie es für Entwickler funktioniert): Abbildung 7 - IronPDF: Die C# PDF-Bibliothek Startseite

Funktionen von IronPDF

PDF-Erstellung aus HTML

JavaScript, HTML und CSS in PDF konvertieren. Unterstützt Medienabfragen und Responsive Design, zwei moderne Webstandards. Nützlich zum Erstellen dynamisch gestylter PDF-Dokumente, Rechnungen und Berichte mithilfe von HTML und CSS.

PDF-Bearbeitung

Fügen Sie bereits vorhandenen PDFs Text, Bilder und anderes Material hinzu. Text und Bilder aus PDF-Dateien extrahieren. Kombinieren Sie mehrere PDFs zu einer Datei. Teilen Sie PDF-Dateien in mehrere Dokumente auf. Fügen Sie Anmerkungen, Fußzeilen, Kopfzeilen und Wasserzeichen hinzu.

PDF-Konvertierung

Konvertieren Sie Word-, Excel-, Bild- und andere Dateiformate in PDF. PDF in Bildkonvertierung (PNG, JPEG usw.).

Leistung und Zuverlässigkeit

Hohe Leistung und Zuverlässigkeit sind die Designziele in Produktionsumgebungen. Verarbeitet große Dokumente effizient.

Installation von IronPDF

Installieren Sie IronPDF, indem Sie die NuGet-Paket-Manager-Konsole öffnen.

PM > Install-Package IronPdf

Konfigurieren Sie den Sender mit Nachricht

Nachrichten ist ein gemeinsames Projekt (Bibliothek), welches sowohl der Sender als auch der Empfänger verwenden werden. Definieren Sie die Nachrichtenklasse im Nachrichtenprojekt. Erstellen Sie ein neues Klassenbibliotheksprojekt namens Nachrichten und fügen Sie es der Lösung hinzu.

Die Nachricht definieren:

Erstellen Sie im Messages-Projekt eine neue Klasse namens GeneratePdfMessage.cs:

using NServiceBus;

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

Fügen Sie in den Projekten Sender und Empfänger jeweils einen Verweis auf das Nachrichtenprojekt ein.

Richten Sie den NServiceBus-Endpunkt im Senderprojekt ein, um RabbitMQ für die Nachrichtenübermittlung zu verwenden.

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);
    }
}

Endpunktkonfiguration: Der Endpunkt wird mit dem Namen "SenderEndpoint" initialisiert, indem new EndpointConfiguration("SenderEndpoint") aufgerufen wird.

endpointConfiguration ist die Transportkonfiguration. Indem er sich mit einer lokalen RabbitMQ-Instanz verbindet, richtet die Methode UseTransport() NServiceBus so ein, dass es RabbitMQ als Transportmechanismus verwendet.

Audit- und Fehlerwarteschlangen: Wohin fehlgeschlagene Nachrichten gesendet und verarbeitete Nachrichten überprüft werden sollen, wird mit SendFailedMessagesTo("error") bzw. AuditProcessedMessagesTo("audit") konfiguriert.

Nachricht gesendet: endpointInstance.Send("ReceiverEndpoint", message) sendet eine GeneratePdfMessage an den "ReceiverEndpoint".

Empfänger für die PDF-Erzeugung konfigurieren

Richten Sie den NServiceBus-Endpunkt im Empfängerprojekt ein, um Nachrichten über RabbitMQ zu akzeptieren und PDFs mit IronPDF zu erzeugen.

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);
    }
}

Dieses Setup für den Empfängerendpunkt "ReceiverEndpoint" ist vergleichbar mit der Senderkonfiguration.

Nachrichtenverarbeitung

Erstellen Sie im Receiver-Projekt eine neue Klasse namens 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 verwendet das IHandleMessages Interface, um Nachrichten des Typs GeneratePdfMessage zu verarbeiten.

NServiceBus C# (Wie es für Entwickler funktioniert): Abbildung 8 - Beispiel Konsolenausgabe

Handle Methode: Nach dem Empfang der Nachricht erstellt die Handle Funktion ein PDF mit IronPDF. Der HTML-Inhalt in der Nachricht wird durch den HtmlToPdf Renderer-Code in ein PDF umgewandelt, der es dann im vorgesehenen Ausgabepfad speichert.

NServiceBus C# (Wie es für Entwickler funktioniert): Abbildung 9 - PDF-Ausgabe bei Verwendung von NServiceBus mit RabbitMQ zusammen mit IronPDF

Abschluss

NServiceBus kann in C# mit RabbitMQ und IronPDF integriert werden, um eine skalierbare und stabile Lösung für verteilte Systeme zu bieten, die PDFs dynamisch und zuverlässig generieren müssen. Diese Kombination nutzt die Fähigkeiten von NServiceBus zur Nachrichtenverarbeitung, die Zuverlässigkeit und Anpassungsfähigkeit von RabbitMQ als Nachrichtenbroker und die robusten PDF-Bearbeitungstools von IronPDF. Die resultierende Architektur sorgt für Entkopplung zwischen Diensten, was eine autonome Entwicklung und Skalierung ermöglicht.

RabbitMQ stellt auch die Nachrichtenübermittlung sicher, selbst im Falle von Netzwerk- oder Anwendungsfehlern. NServiceBus vereinfacht das Routing und die Verarbeitung von Nachrichten, und IronPDF ermöglicht die Umwandlung von HTML-Text in hochwertige PDF-Dokumente. Diese Integration bietet ein flexibles Framework für die Entwicklung anspruchsvoller, groß angelegter Anwendungen und verbessert gleichzeitig die Wartbarkeit und Zuverlässigkeit des Systems.

Letztendlich können Sie, indem Sie IronPDF und Iron Software zu Ihrem Toolkit for .NET-Programmierung hinzufügen, effektiv mit Barcodes arbeiten, PDFs erstellen, OCR durchführen und eine Verbindung mit Excel herstellen. IronPDFs Lizenzierungsseite, die bei $999 beginnt, integriert nahtlos seine Funktionen sowie die Leistung, Kompatibilität und Benutzerfreundlichkeit der flexiblen Suite der offiziellen Website von Iron Software, um zusätzliche Webanwendungen und -fähigkeiten sowie eine effizientere Entwicklung bereitzustellen.

Wenn es klar definierte Lizenzoptionen gibt, die auf die spezifischen Projektanforderungen zugeschnitten sind, können Entwickler mit Zuversicht das optimale Modell auswählen. Diese Vorteile ermöglichen es Entwicklern, eine Vielzahl von Herausforderungen effektiv und transparent zu bewältigen.

Jacob Mellor, Chief Technology Officer @ Team Iron
Chief Technology Officer

Jacob Mellor ist Chief Technology Officer bei Iron Software und ein visionärer Ingenieur, der Pionierarbeit in der C# PDF-Technologie leistet. Als der ursprüngliche Entwickler hinter der Kern-Codebasis von Iron Software hat er die Produktarchitektur des Unternehmens seit seiner Gründung geprägt und es zusammen mit CEO Cameron Rimington in ein Unternehmen mit mehr als 50 Mitarbeitern verwandelt, das die NASA, Tesla und globale Regierungsbehörden beliefert.

...
Weiterlesen

Verwandte Artikel

Key in blue circle

Holen Sie sich sofort Ihren kostenlosen 30-Tage-Testschlüssel.

Your trial license will be sent to your email address

Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.

bullet_checkedIhr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Buchen Sie Ihre kostenlose Live-Demo
Booking Badge

Von Millionen von Ingenieur*innen weltweit vertraut

Kundenlogos von Iron Software
Erhalten Sie Ihre unverbindliche Beratung
Füllen Sie das Formular unten aus oder senden Sie eine E-Mail an sales@ironsoftware.com
Ihre Daten werden immer vertraulich behandelt.
Von Millionen von Ingenieur*innen weltweit vertraut
Kundenlogos von Iron Software
Erhalten Sie sofort Ihren kostenlosen 30-Tage-Testschlüssel.
Ihr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.