Premier Developer Consultant
Randy Patterson erläutert die Vorteile der Verwendung des neuen Worker Service-Projektprojekts, das in .NET Core 3 eingeführt wurde.
Mit .NET Core 3 wurde eine neue Projektvorlage namens Worker Service eingeführt. Diese Vorlage soll Ihnen einen Ausgangspunkt für plattformübergreifende Dienste bieten. Als alternativer Anwendungsfall bietet es eine sehr schöne Umgebung für allgemeine Konsolenanwendungen, die sich perfekt für Container und Mikrodienste eignet.

Einige der Vorteile der Verwendung dieser Vorlage umfassen die folgenden Bereiche.

Abhängigkeitsinjektion
Die Worker-Service-Vorlage konfiguriert einen standardmäßigen Dependency-Injektionscontainer, den wir verwenden können. Dies ist ein großer Vorteil gegenüber der generischen Konsolenvorlage.
Das Hinzufügen von Diensten umfasst das Aktualisieren der
ConfigureServices- Methode in der Datei
Program.cs :
Host.CreateDefaultBuilder(args) .ConfigureServices((hostContext, services) => { services.AddTransient<ICustomerService,CustomerService>(); services.AddHostedService<Worker>(); });
Konfiguration
Dieselben Konfigurationsanbieter, die für ASP.NET Core eingerichtet wurden, werden hier für Worker Services dupliziert. Dies gibt uns eine leistungsstarke und vertraute Umgebung zum Speichern von Konfigurationsinformationen:
- appsettings.json
- appsettings. {Environment} .json
- Benutzergeheimnisse (nur für die Entwicklung)
- Umgebungsvariablen
- Befehlszeilenargumente
Weitere Informationen zu den einzelnen Anbietern finden Sie in meinem vorherigen Artikel, der
hier veröffentlicht wurde .
Protokollierung
Ebenso wurden Protokollanbieter so konfiguriert, dass sie mit der Standardkonfiguration für ASP.Net Core übereinstimmen, sodass Sie die folgenden Anbieter haben:
- Konsole
- Debuggen
- Ereignisquelle
- EventLog (nur unter Windows)
Sie können die Protokollanbieter ändern, indem Sie dem
Hostobjekt in
Program.cs eine
ConfigureLogging- Methode hinzufügen:
Host.CreateDefaultBuilder(args) .ConfigureServices((hostContext, services) => { services.AddHostedService<Worker>(); }) .ConfigureLogging(logging => { logging.ClearProviders(); logging.AddConsole(); });
Weitere Informationen zur Protokollierung finden Sie in der
Dokumentation zu ASP.NET Core.
Worker Startup Class
In der Datei
Worker.cs befindet sich schließlich der größte Teil Ihres Codes. Es gibt drei überschreibbare Methoden aus der Basisklasse
BackgroundService , mit denen Sie den Lebenszyklus Ihrer Anwendung verknüpfen können:
ExecuteAsync - eine abstrakte Methode, die als Haupteinstiegspunkt für Ihre Anwendung verwendet wird. Wenn diese Methode beendet wird, wird Ihre Anwendung beendet.
StartAsync - Eine virtuelle Methode, die beim Starten des Dienstes überschrieben und zum einmaligen Einrichten von Ressourcen verwendet werden kann.
StopAsync - Eine virtuelle Methode, die beim Herunterfahren der Anwendung aufgerufen wird und ein guter Ort ist, um Ressourcen freizugeben und Objekte zu entsorgen.
Zusammenfassung
Mit der neuen Worker-Service-Vorlage in .NET Core 3 wird eine Hosting-Umgebung erstellt, die sich gut für Konsolenanwendungen, Microservices, containerisierte Anwendungen und plattformübergreifende Hintergrunddienste eignet. Obwohl diese Vorteile unabhängig von der Vorlage konfiguriert werden können, bietet die Worker-Service-Vorlage eine konsistente Startumgebung zwischen ASP.NET Core- und Konsolenanwendungen.