Über Microservices gibt es zahlreiche Bücher und noch viel mehr Artikel. Darin finden sich darin auch viele Erfahrungen, Tipps, Meinungen und jede Menge Vorteile. Als einer dieser Vorteile taucht gerne die Wahlfreiheit der verwendeten Sprache/Plattform auf. Darauf möchte ich in diesem Beitrag näher eingehen. Grundaussage Ein Microservice ist eigenständig. Es läuft in einer passenden Umgebung. …
Kategorie-Archive: Softwareentwicklung
The importance of automated software testing
Much has already been written about automated software testing – by me as well. Still there are so many developers out there, who say automated tests only costs money and time and so they rather put their time into building more functionality. Because this is, what the customer needs – they think. Some developers even …
How to test your web API with .NET Core
It’s so important to test your software automatically. Unit Tests are really great for testing small, atomic parts. But you have to ensure that your complete systems works as expected. This is where web API tests comes into play. First, some words about the motivation behind this article: A lot of people don’t want to …
Web API und Datenbankzugriff mit Go
Go aka golang wurde hauptsächlich entwickelt, um Concurrency optimal zu unterstüzten. Daher bietet sich an, eine Web API mit Go zu entwickeln. Dieser Beitrag zeigt, was dafür notwendig ist und dass dafür nicht sonderlich viel Aufwand eingesetzt werden muss. Folgendes möchte der Beitrag zeigen: Web API mit versionierter API-Entstelle, JSON wird als Datenformat verwendet; Die …
ASP.NET Core und Custom Formatter
Der Datenaustausch kann in ASP.NET Core MVC per JSON, XML bzw. reinem Text geschehen. Dies ist allerdings nicht für alle Fälle ausreichend. Daher kann man selbst eingreifen und für zusätzliche Unterstützung sorgen. Dieser Artikel zeigt, wie man das iCalendar-Format unterstützt. Grundlagen Formatter werden verwendet, um Inhaltsanfragen (siehe Accept-Header – Stichwort Content Negotiation) zu verarbeiten. Das …
Services mit Konfiguration in .NET Core injecten
.NET Core kommt mit einer integrierten Dependency Injection. Dadurch kann man sich fertige Instanzen registrierter Typen/Schnittstellen an beliebigen Stellen “einfügen” (oder injecten) lassen. Dependency Injection ist ein Entwurfsmuster. Dieses definiert die Abhängigkeiten eines Objektes zur Laufzeit. Alle Abhängigkeiten werden an einem zentralen Ort registriert (vgl. Container) und daraus bezogen (vgl. Single Responsibility). Das Objekt ist …
„Services mit Konfiguration in .NET Core injecten“ weiterlesen
.NET Core API mit Swagger/OpenAPI dokumentieren
Die OpenAPI Specification erlaubt die Beschreibung von RESTful APIs. Damit können diese nicht zur spezifiziert, sondern auch dokumentiert werden. Eine Vielfalt an Tools unterstützt beim Schreiben einer Spezifikation, bei der Generierung von Server- und Client-Code, sowie bei der Dokumentation. Besteht nun bereits eine entsprechende API auf Basis .NET Core, dann kann eine Spezifikation bzw. Dokumentation …
„.NET Core API mit Swagger/OpenAPI dokumentieren“ weiterlesen
Serilog in ASP.NET Core verwenden
Logging-Frameworks wie log4net und NLog sind äußerst bekannt und zahlreich eingesetzt. Mit Serilog steht eine superschnelle Alternative zur Verfügung, die zudem auf das Loggen von strukturierten Daten ausgerichtet ist. Dieser Beitrag zeigt die Einbindung von Serilog, sowie die Konfiguration über die Konfigurationsdatei appsettings.json. Abschließend werden noch einige Tipps für den Umgang mit Serilog gegeben. Serilog …
.NET Core und Integrationstests
Im Gegensatz zu Unit Tests werden mit Integrationstests komplette Funktionalitäten getestet. Verwendete Systeme (Datenbanken etc.) müssen für Tests entsprechend konfiguriert sein und zur Verfügung stehen. Nehmen wir als Beispiel eine Web API. Diese gibt definierte Endpunkte nach außen. Ein Client (Browser, Mobilgerät etc.) kann diese Endpunkte bedienen und darüber Informationen abfragen oder übermitteln. Integrationstests fungieren …
Ist meine .NET Core/Standard Anwendung plattformunabhängig?
Wer wünscht sich nicht bereits bei der Entwicklung auf Inkompatibilitäten der Plattformen hingewiesen zu werden. Der API Analyzer hilft dabei.