Posts

QuestPDF

Bild
QuestPDF QuestPDF ist ein hilfreiches Tool, um in .NET Anwendungen PDF Dateien zu erstellen. Durch die Fluent API ist die Erstellung eines PDF sehr einfach. Zusätzlich bietet QuestPDF eine Preview des PDF an, was die Bibliothek von anderen PDF Bibliotheken abhebt und dem Entwickler viel Zeit spart. Lizenz QuestPDF ist eine open-source Bibliothek. Sie verwendet die eigene QuestPDF Lizenz und kann gratis unter der MIT Lizenz verwendet werden. Firmen, welche mehr als eine Million USD Umsatz im Jahr machen, müssen die Professional oder Enterprise Lizenz kaufen. Wie verwende ich QuestPDF? Um mit dem Erstellen von PDFs loszulegen, muss zuerst das Nuget Package installiert werden. Dafür kann man die Package Manager Console oder den Nuget Package Manager verwenden: PDF in Datei speichern Um ein PDF in einer Datei abzuspeichern, braucht man einen FileStream. Diesen kann man bei der Methode "GeneratePdf" von QuestPDF als Argument mitgeben, wodurch automatisch in die Datei geschriebe...

ASP.NET Core Identity

Bild
ASP.NET Core Identity ASP.NET Core Identity ist ein Authentifizierungs- und Autorisierungs-Framework, das in ASP.NET Core-Anwendungen integriert ist. Es bietet eine robuste Lösung zur Verwaltung von Benutzern, Passwörtern, Rollen, Claims und anderen sicherheitsrelevanten Funktionen. Diese API erleichtert Entwicklern die Implementierung von sicheren Anmeldesystemen und bietet dabei eine hohe Flexibilität und Anpassbarkeit.  In diesem Blogpost werden wir uns anschauen, wie man Identity konfiguriert und verwendet. Installation Das Nuget Package kann mit dem folgenden Befehl installiert werden: Konfiguration Die Authentifizierung kann nun in der Program-Klasse konfiguriert werden. Dafür wird die Methode "AddIdentity()" verwendet.  Mit der Methode "AddEntityFrameworkStores()" wird der DbContext angegeben, worin sich das Model für die Benutzer befindet. Dafür wird typischerweise die Klasse "IdentityUser" des Frameworks verwendet. Man kann allerdings auch...

AES in C#

Bild
AES in C# Mit der Digitalisierung wurde die Verschlüsselung von Daten immer wichtiger. Einer der leistungsstärksten symmetrischen Verschlüsselungsalgorithmen, der in vielen Bereichen weit verbreitet ist, ist der Advanced Encryption Standard (AES). In diesem Blogpost werden wir einen Blick auf den AES-Algorithmus werfen, seine Funktionsweise verstehen und den Algorithmus in C# ausprobieren. Was ist AES? AES ist ein symmetrischer Verschlüsselungsalgorithmus, welcher von Joan Daemen und Vincent Rijmen entwickelt wurde. Er wurde als Ersatz für den veralteten Data Encryption Standard (DES) eingeführt und wird heute weltweit in verschiedenen Anwendungen eingesetzt, darunter Netzwerksicherheit, sichere Kommunikation und Datenschutz. Wie funktioniert AES? Der AES-Algorithmus arbeitet mit Blöcken von Daten, die in 128-Bit unterteilt werden. Diese Blöcke werden dann durch eine Reihe von Transformationen verschlüsselt, die auf einer spezifischen Rundenschlüsselstruktur basieren. AES verwendet ein...

Custom JsonConverter mit System.Text.Json

Bild
Custom JsonConverter mit System.Text.Json Die Bibliothek System.Text.Json bietet Funktionen, um Daten in und aus JSON zu konvertieren. Seit .NET Core 3.1 ist die Bibliothek Teil des .NET Frameworks und muss nicht mehr manuell installiert werden.  In manchen Fällen ist es allerdings erforderlich, das Verhalten der Serialisierung oder Deserialisierung anzupassen und eigene Regeln zu definieren. Dafür bietet System.Text.Json die Möglichkeit, benutzerdefinierte JsonConverter zu erstellen. Beispiel Du hast die Klassen Person und Address . Ein Person-Objekt enthält ein Address-Objekt mit der Adresse der Person: Nun möchtest du die Klasse Person ins JSON-Format umwandeln. Allerdings sollte die Struktur dabei abgeflacht sein, damit alle Eigenschaften der Adresse direkt dem Person-Objekt untergeordnet sind. JsonConverter Hier kommt der benutzerdefinierte JsonConverter ins Spiel. Dafür wird eine neue Klasse erstellt, welche vom Typ JsonConverter erbt. Diese Klasse muss die Methoden...

AutoMapper

Bild
Automapper Der AutoMapper ist ein Package für .NET unter der MIT Lizenz. Sein Ziel ist es, das Mapping von Models zu ViewModels zu vereinfachen und wieder verwendbare Regeln für das Mapping festzulegen. Warum AutoMapper? Der AutoMapper wurde ursprünglich für ASP.NET MVC erstellt. Das Problem war, dass in MVC Projekten für jede Ansicht ein ViewModel existierte. Dies sind vereinfachte Klassen eines Models, um nur die benötigten Daten an die Ansicht zu geben. Dadurch häufte sich allerdings eine Menge von "Zuweisungscode", welcher unschön und anfällig für Null Reference Exceptions war. Deshalb entwickelte Jimmy Bogard den AutoMapper. Damit konnte er die Null Reference Exceptions verhindern, Boilerplate Code entfernen und sicherstellen, dass immer alle Werte des ViewModels gesetzt waren. Trotzdem steht der AutoMapper von vielen unter Kritik. Das Mapping sei anfällig für Laufzeitfehler und durch die "Magie" beim Mappen sei es schwer, die Fehler zu debuggen. AutoMappe...

Stable Diffusion

Bild
Stable Diffusion Stable Diffusion ist ein Bildgenerator, welcher auf künstlicher Intelligenz basiert. Die Software ist Open-Source und somit für jeden zugänglich. In diesem Beitrag werden wir uns die Funktionen anschauen und verstehen, wie man Stable Diffusion auf seinem eigenen Rechner offline ausführen kann. Stable Diffusion API Die Stable Diffusion API bietet eine Schnittstelle, um Bilder auf programmatischer Ebene zu generieren. Wenn man keinen eigenen Server für den Bildgenerator aufsetzen möchte, ist dies eine gute Lösung. Text to Image Die wahrscheinlich wichtigste und bekannteste Funktion der Stable Diffusion API ist der Text2Image-Endpoint. Er ermöglicht das Generieren von Bildern mit einem Prompt. Die URL des Endpoints lautet  https://stablediffusionapi.com/api/v3/text2img .  Body Im Body des Post-Endpoints werden die Argumente für die Bildgenerierung mitgegeben. Somit kann beispielsweise der Prompt "Cat on the moon" an den Endpoint geschickt werden. {   "key...

.NET 8 und C# 12

Bild
.NET 8 und C# 12 Mit dem Release von .NET 8 und C# 12 gibt es viele spannende Neuerungen. In diesem Blogpost werden wir uns die neuen Features und Verbesserungen anschauen, welche die neuen Versionen mit sich bringen. .NET 8 Die neue Version von .NET wurde im November 2023 veröffentlicht. Da es sich um einen LTS-Release (Long-Term-Support) handelt, wird sie für drei Jahre unterstützt werden, weshalb sich der Umstieg auch bei grösseren Projekten lohnt.  Blazor Die Entscheidung für das passende Hosting Model fiel mit Blazor nicht einfach. Während Blazor Server schnelle Ladezeiten verspricht, kann man mit Blazor WebAssembly einfach Interaktivität in seine Website einbauen. Mit .NET 8 wurden die beiden Hosting Models zusammengeführt, was einem ermöglicht. Dadurch kann man für jeden Komponenten den Rendermode selbst bestimmen. Insgesamt gibt es vier Rendermodes: Static Server : Auf dem Server wird statisches HTML generiert und an den Client gesendet. Interactive Server : Das HTML wird a...