Wolverine für C# (.NET): Komplettguide mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Wolverine für C# (.NET): Der ultimative Guide zu Message Bus und CQRS

1. Was ist Wolverine und warum braucht man es?

Wolverine ist eine leistungsstarke .NET-Bibliothek, die die Pattern Message Bus und CQRS (Command Query Responsibility Segregation) implementiert. Sie bietet Entwicklern ein flexibles und robustes Werkzeug zum Bau verteilter, skalierbarer und ausfallsicherer Anwendungen. Anders als viele Alternativen ist Wolverine nicht nur eine Abstraktion für Message Queues, sondern ein vollwertiges Framework, das Routing, Fehlerbehandlung, Sagas, langlebige Prozesse und die Integration mit gängigen Transportprotokollen (RabbitMQ, Azure Service Bus, Amazon SQS, Kafka u. a.) übernimmt.

Warum Wolverine? In modernen Microservice-Architekturen und Event-Driven-Systemen ist die zuverlässige Nachrichtenübertragung zwischen Komponenten essenziell. Wolverine löst diese Aufgabe, indem es Folgendes bietet:

  • Message Bus: Ermöglicht asynchrone, zuverlässige und skalierbare Nachrichtenübertragung zwischen Diensten.
  • CQRS: Trennt Lese- und Schreiboperationen, um die Leistung zu optimieren und jeden Aspekt des Systems unabhängig zu skalieren.
  • Saga: Verwaltet langlebige Geschäftsprozesse, die aus mehreren Schritten bestehen und bei Fehlern Kompensation erfordern.
  • Integration mit ASP.NET Core: Lässt sich dank bekannter DI- und Middleware-Mechanismen problemlos in bestehende Projekte einbinden.

Wolverine ist die erste Wahl für alle, die maximale Leistung und Flexibilität ohne Kompromisse bei der Entwicklerfreundlichkeit suchen. Die Bibliothek wird aktiv von der Community weiterentwickelt und ist produktionserprobt.

2. Installation

Wolverine wird über NuGet installiert. Zunächst benötigen Sie das Basispaket sowie – je nach gewähltem Transport – zusätzliche Pakete.

Hauptinstallationsbefehl:

dotnet add package WolverineFx

Für RabbitMQ:

dotnet add package WolverineFx.RabbitMQ

Für Azure Service Bus:

dotnet add package WolverineFx.AzureServiceBus

Für Amazon SQS:

dotnet add package WolverineFx.AmazonSQS

Für Kafka:

dotnet add package WolverineFx.Kafka

Nach der Installation der Pakete konfigurieren Sie Wolverine in Ihrer Program.cs.

3. Schnellstart – Minimales funktionsfähiges Beispiel

Erstellen Sie eine .NET-Konsolenanwendung und fügen Sie das Paket WolverineFx hinzu. Ersetzen Sie dann den Inhalt der Program.cs durch den folgenden Code:

using Wolverine;
using Microsoft.Extensions.Hosting;

// 1. Host mit Wolverine erstellen
using var host = await Host.CreateDefaultBuilder(args)
    .UseWolverine(opts =>
    {
        // Wolverine-Konfiguration (vorerst ohne Transport, nutzt integrierten)
        opts.PublishAllMessages().Locally();
    })
    .StartAsync();

// 2. IMessageBus-Instanz abrufen
var bus = host.Services.GetRequiredService();

// 3. Nachricht senden
await bus.SendAsync(new HelloMessage("World"));

// 4. Handler definieren (kann in jeder Klasse stehen)
public class HelloMessageHandler
{
    public void Handle(HelloMessage message)
    {
        Console.WriteLine($"Hallo, {message.Name}!");
    }
}

// 5. Die Nachricht selbst definieren
public record HelloMessage(string Name);

Dieses minimale

Empfehlungen