Entwickler-Blog · Notizen aus der Praxis

Geek Overflow

Notizen aus .NET, WPF, Azure und dem echten Entwickleralltag.

Aktuelle Beiträge
Ein sichtbar genutzter Entwicklerarbeitsplatz mit Tastatur, Notizbuch und Monitor

Aus dem Archiv

Notizen, die im Alltag weiterhelfen.

239 Beiträge

Fluent-Theming in WPF unter .NET 10

Eine interne WPF-Anwendung, die ich pflege, sah neben allem anderen auf einem Windows-11-Rechner aus wie von 2010. Graue Rahmen, harte Kanten, die alten Aero2-Formen. Bisher hätte das ein eigenes Ressourcenwörterbuch oder eine fremde Bibliothek bedeutet. Seit .NET 9 liegt ein Fluent-Design im Framework selbst, und unter .NET 10 deckt es genug Steuerelemente ab, dass ich es an einem Nachmittag eingeschaltet habe.

Der closed-Modifier für geschlossene Klassenhierarchien in C# 15

Wer in C# eine feste Menge von Fällen abbilden will, greift seit Jahren zum gleichen Muster: eine abstrakte Basisklasse, ein paar abgeleitete Records, darüber ein switch. Das funktioniert, hat aber einen Haken. Der Compiler weiß nicht, dass die Liste der Ableitungen abgeschlossen ist. Jemand kann in einem anderen Projekt eine weitere Ableitung nachschieben, und mein switch läuft plötzlich ins Leere. Deshalb steht am Ende immer ein _ => throw-Zweig, den ich nie ausgelöst sehen will und der trotzdem da sein muss.

Automatischer CSRF-Schutz in ASP.NET Core

Ich hatte einen Minimal-API-Endpunkt, der ein Formular per [FromForm] einliest, und bekam beim Absenden ohne mein Zutun ein 400 zurück. Die Ursache: ASP.NET Core validiert bei Formularbindung automatisch das Antiforgery-Token. Die Middleware landet schon in der Pipeline, sobald etwas wie AddRazorComponents oder MapControllerRoute sie einzieht, UseAntiforgery ruft man nicht mehr selbst auf. Geprüft wird nur bei POST, PUT und PATCH und nur, wenn der Endpunkt Formulardaten bindet. Reine JSON-Endpunkte bleiben außen vor, was für Cookie-lose APIs auch richtig ist.

Asynchrone Validierung in ASP.NET Core

Die haeufigste Validierung, die ich brauche und die am schlechtesten unterzubringen war, ist die Eindeutigkeitspruefung: Ist diese E-Mail schon vergeben? Das laesst sich nicht am Wert allein entscheiden, es braucht einen Blick in die Datenbank. Und genau da hoerte die eingebaute Validierung immer auf.

Migrationen in EF Core zurückrollen

Nach dotnet ef database update landet man meistens bei der neuesten Migration. Weniger bekannt: derselbe Befehl nimmt auch den Namen einer älteren Migration entgegen und rollt bis dahin zurück, dotnet ef database update AddCustomerTable etwa. EF Core führt dazu für jede dazwischenliegende Migration die Down()-Methode rückwärts aus. Für die komplette Rückkehr zum leeren Schema gibt es die Kurzform dotnet ef database update 0.

Gelesen im Juli

Die Aufzeichnung zu Agent Skills für .NET. Nach dem eigenen Versuch mit dem Harness war das der Text, der die Abstufung von Rechten am klarsten beschreibt.

Grafikkarte im Container nutzen

Läuft Ollama im Container ohne Zusatz, rechnet es auf der CPU, auch wenn eine Grafikkarte vorhanden ist. Das erklärt die meisten Berichte über langsame lokale Modelle im Docker-Betrieb.

Geschaut: Halt and Catch Fire

Über Mr. Robot hatte ich geschrieben, dass ich sie abgebrochen habe. Die Serie, die ich stattdessen empfehlen würde, hat kaum jemand gesehen.

Notizbuch und Tastatur auf einem genutzten Entwicklerarbeitsplatz
Real work / no lab setup

Wer hier schreibt

Matt. Entwickler, Notizsammler, Problemlöser.

Ich schreibe über .NET, C#, WPF, Azure, Werkzeuge – und immer öfter über KI. Nicht aus dem Lehrbuch, sondern aus dem echten Entwickleralltag.

Mehr über mich

Nach Thema einsteigen

Woran ich gerade denke und arbeite.