Matt
Softwareentwickler aus Dresden
Ich bin Matt, eigentlich Matthias. Zu Hause bin ich im .NET-Umfeld: C#, WPF, ASP.NET Core und alles, was sich drumherum ansammelt – von Azure über Build-Pipelines bis zu den Werkzeugen, die den Alltag erträglich machen.
Geek Overflow schreibe ich seit November 2017. Die Namensähnlichkeit zu Stack Overflow ist kein Zufall: Vieles hier ist genau das, was ich selbst gesucht und nicht gefunden habe. Entsprechend sind die meisten Beiträge Notizen an mein zukünftiges Ich – Lösungen, die ich mir sonst beim dritten Mal wieder zusammensuchen müsste. Wenn sie dabei noch jemand anderem helfen, umso besser.
Nicht alles dreht sich um Code. Zwischen den Tutorials landen hier auch mal ein Rezept, ein Spiel oder eine Meinung zu dem, was gerade in der Technikwelt passiert. Seit 2024 läuft der Blog auf Jekyll, davor lag er jahrelang bei WordPress.
Beiträge (239)
- OpenAPI 3.2 in ASP.NET Core – 04. August 2026
- C# 15 Union-Typen: echte diskriminierte Vereinigungen – 03. August 2026
- Neue Hardware-Mindestanforderungen in .NET 11 – 02. August 2026
- Native OpenTelemetry-Tags in ASP.NET Core – 02. August 2026
- Ein .env-File in .NET laden – 01. August 2026
- Runtime-native async in .NET 11 – 31. Juli 2026
- MCP-Server-Vorlage in .NET 11 – 30. Juli 2026
- Statisches SSR in Blazor mit Formular, Flash-Message und Cache – 30. Juli 2026
- DefaultAzureCredential lokal statt Verbindungszeichenfolgen – 29. Juli 2026
- Collection-Expression-Argumente in C# 15 – 28. Juli 2026
- Resilienz-Pipelines mit Microsoft.Extensions.Resilience – 27. Juli 2026
- LINQ Full Outer Join in .NET 11 – 27. Juli 2026
- Whisper lokal für Transkription – 26. Juli 2026
- Fluent-Theming in WPF unter .NET 10 – 25. Juli 2026
- Der closed-Modifier für geschlossene Klassenhierarchien in C# 15 – 24. Juli 2026
- Automatischer CSRF-Schutz in ASP.NET Core – 24. Juli 2026
- Asynchrone Validierung in ASP.NET Core – 23. Juli 2026
- Migrationen in EF Core zurückrollen – 21. Juli 2026
- Veraltete Beiträge kennzeichnen statt löschen – 21. Juli 2026
- Gelesen im Juli – 20. Juli 2026
- Den Commit finden, der es kaputtgemacht hat – 17. Juli 2026
- Grafikkarte im Container nutzen – 16. Juli 2026
- Geschaut: Halt and Catch Fire – 15. Juli 2026
- Geplante Aufgaben im Container – 13. Juli 2026
- Welches SQL erzeugt EF Core hier? – 10. Juli 2026
- Warum der Router lokale Namen blockiert – 09. Juli 2026
- Agent Harness ausprobiert – 08. Juli 2026
- Feste Puffer ohne unsafe – 07. Juli 2026
- zstd statt gzip – 06. Juli 2026
- Entwicklungsumgebung als Datei – 03. Juli 2026
- SQLite im WAL-Modus – 02. Juli 2026
- Wie viele Beiträge hier eigentlich stehen – 01. Juli 2026
- Halbzeit 2026 – 30. Juni 2026
- Gelesen im Juni – 29. Juni 2026
- QR-Code auf der Kommandozeile – 25. Juni 2026
- Warum ich immer noch WPF nehme – 24. Juni 2026
- Werbefilter ohne Ausfallrisiko – 23. Juni 2026
- Welche appsettings-Datei gilt jetzt eigentlich? – 22. Juni 2026
- Nur einen Teil des Repositories auschecken – 18. Juni 2026
- Ein Agent, der vorher fragt – 17. Juni 2026
- Lokales Modell als Ausweichlösung – 16. Juni 2026
- Warum die WPF-Liste bei 5000 Einträgen hakt – 15. Juni 2026
- Wenn Docker die Platte volllaufen lässt – 12. Juni 2026
- FrozenDictionary für Nachschlagetabellen – 11. Juni 2026
- Build 2026, aus der Ferne betrachtet – 10. Juni 2026
- Aspire 13.4 mit eigenen Befehlen im Dashboard – 09. Juni 2026
- Eigene Typen mit eckigen Klammern erzeugen – 08. Juni 2026
- dotnet watch scheitert unter Linux – 04. Juni 2026
- In ein Backup hineinschauen – 03. Juni 2026
- Test-Token ohne Identitätsanbieter – 02. Juni 2026
- Gelesen im Mai – 28. Mai 2026
- Was ein halbes Jahr kurze Notizen gebracht hat – 27. Mai 2026
- Warum im Heimnetz plötzlich IPv6 dazwischenfunkt – 26. Mai 2026
- Was das Homelab wirklich verbraucht – 25. Mai 2026
- Teilweise Aktualisierung ohne PATCH-Chaos – 22. Mai 2026
- Wenn Daten leise kaputtgehen – 21. Mai 2026
- Wenn das Modell JSON liefern soll – 20. Mai 2026
- In fremden Code hineindebuggen – 19. Mai 2026
- SSH-Verbindungen benennen – 18. Mai 2026
- Welcher Render-Modus in Blazor? – 14. Mai 2026
- Dependency Properties, endlich verstanden – 13. Mai 2026
- Notizen an Commits hängen – 12. Mai 2026
- Cache mit zwei Ebenen – 11. Mai 2026
- NVMe drosselt bei Hitze – 08. Mai 2026
- Container ohne Dockerfile bauen – 07. Mai 2026
- Ein MCP-Server für das eigene Homelab – 06. Mai 2026
- Schnelle Absicherung für Dienste ohne Anmeldung – 05. Mai 2026
- Welches Modell liegt gerade im Speicher? – 04. Mai 2026
- Gelesen im April – 30. April 2026
- Warum ich Dinge selbst hoste, und warum nicht alles – 29. April 2026
- USB-Geräte an eine VM durchreichen – 28. April 2026
- Konfigurationsdateien versionieren ohne Symlink-Zoo – 27. April 2026
- Von unterwegs ins Heimnetz – 26. April 2026
- Logs an einer Stelle sammeln – 25. April 2026
- Ein Reverse Proxy fürs Heimnetz – 24. April 2026
- Zwei Modelle im Test gegeneinander – 23. April 2026
- Backups, die man auch zurückspielen kann – 22. April 2026
- Embeddings lokal erzeugen – 21. April 2026
- Welches lokale Modell läuft auf welcher Hardware? – 20. April 2026
- Den Homelab-Rechner bei Bedarf wecken – 18. April 2026
- depends_on reicht nicht – 17. April 2026
- Eigene Systemprompts als Ollama-Modell – 16. April 2026
- Lokale Sprachmodelle in .NET einbinden – 15. April 2026
- Vor jedem Update ein Snapshot – 14. April 2026
- Agent Framework 1.0, während ich weg war – 13. April 2026
- Mein Homelab, neun Jahre nach der QNAP – 11. April 2026
- Gelesen im März – 30. März 2026
- Was ich in .gitignore inzwischen immer eintrage – 27. März 2026
- Gespielt: Frostpunk – 26. März 2026
- CancellationToken nicht schlucken – 25. März 2026
- Wie alt ist die SSD wirklich? – 24. März 2026
- Markdown sicher darstellen – 23. März 2026
- Laufende .NET-Prozesse beobachten – 20. März 2026
- Nullable Reference Types in ein bestehendes Projekt einführen – 19. März 2026
- Primärkonstruktoren und ihre Fallstricke – 17. März 2026
- robocopy für alles, was Kopieren heißt – 16. März 2026
- Warum das JSON aus der Konsole anders aussieht – 13. März 2026
- Ein Jahr MCP: was daraus geworden ist – 12. März 2026
- Git-Aliase, die ich täglich benutze – 11. März 2026
- Deadlocks sichtbar machen – 09. März 2026
- Wiederkehrende Befehle als VS-Code-Task – 06. März 2026
- .NET Aspire, aber nur für lokal – 05. März 2026
- System.Threading.Channels statt eigener Queue – 03. März 2026
- Formatierung in der Pipeline prüfen – 02. März 2026
- Gelesen im Februar – 27. Februar 2026
- Abgebrochen: Mr. Robot nach Staffel 2 – 26. Februar 2026
- Ein einfaches Backup-Skript für das NAS – 25. Februar 2026
- Wenn man doch mal Python braucht – 24. Februar 2026
- Antwortkomprimierung einschalten – 23. Februar 2026
- Kompilierte Abfragen in EF Core – 20. Februar 2026
- Wann ich keine Tests schreibe – 19. Februar 2026
- record struct für kleine Werte – 17. Februar 2026
- Welcher Prozess hält die Datei fest? – 16. Februar 2026
- HttpClient nicht selbst erzeugen – 13. Februar 2026
- Wie ich WPF-Anwendungen teste – 12. Februar 2026
- Wo das PowerShell-Profil wirklich liegt – 11. Februar 2026
- Mehrere Implementierungen eines Interfaces – 09. Februar 2026
- Korrekturen automatisch dem richtigen Commit zuordnen – 06. Februar 2026
- Microsoft Agent Framework, jetzt als Release Candidate – 05. Februar 2026
- dotnet watch kann mehr als starten – 03. Februar 2026
- Der neue Lock-Typ in .NET 9 – 02. Februar 2026
- Kurz gespielt: Manor Lords – 29. Januar 2026
- Warum hier keine Kommentare mehr sind – 27. Januar 2026
- Variablen in .http-Dateien – 22. Januar 2026
- Zwei Windows-Einstellungen, die ich jedes Mal vergesse – 20. Januar 2026
- Ein altes WPF-Projekt auf .NET 10 heben – 16. Januar 2026
- ExecuteUpdate statt Laden und Speichern – 14. Januar 2026
- Wer belegt Port 5000? – 12. Januar 2026
- Native AOT für kleine Kommandozeilenwerkzeuge – 09. Januar 2026
- Alle globalen dotnet-Tools aktualisieren – 05. Januar 2026
- Jahresrückblick 2025 – 29. Dezember 2025
- Logging ohne Boxing – 27. Dezember 2025
- Vanillekipferl, dritter Anlauf – 23. Dezember 2025
- Zwei Branches gleichzeitig mit git worktree – 20. Dezember 2025
- Gespielt: Shadow Tactics und Desperados III – 18. Dezember 2025
- required statt Konstruktor-Orgien – 16. Dezember 2025
- Rechner neu aufsetzen mit winget – 13. Dezember 2025
- Blazor oder WPF für interne Werkzeuge? – 11. Dezember 2025
- SQLite im Arbeitsspeicher für EF-Core-Tests – 09. Dezember 2025
- Zugangsdaten aus dem Repository halten – 06. Dezember 2025
- Was ein Jahr mit KI im Arbeitsalltag geändert hat – 04. Dezember 2025
- Collection Expressions statt new List – 02. Dezember 2025
- Nachgeholt: The Sinner, Staffel 2 bis 4 – 29. November 2025
- tar ist unter Windows längst dabei – 28. November 2025
- Warum der Blog nachts kurz weg war – 26. November 2025
- Wann sich ein eigener GitHub-Runner lohnt – 24. November 2025
- System.Text.Json ohne Reflection – 21. November 2025
- Die Datei, die Formatierungsdiskussionen beendet – 19. November 2025
- git switch und git restore – 18. November 2025
- Wo PowerShell den Verlauf ablegt – 15. November 2025
- NuGet Audit auch für transitive Pakete – 13. November 2025
- .NET 10 ist da – 11. November 2025
- WSL frisst den ganzen Arbeitsspeicher – 06. November 2025
- Eine einzelne .cs-Datei ausführen – 03. November 2025
- Gespielt: Impostor Factory – 31. Oktober 2025
- Der Timeout, der nicht greift – 24. Oktober 2025
- git maintenance gegen langsame Repositories – 20. Oktober 2025
- C# 14: das field-Schlüsselwort – 14. Oktober 2025
- Anfällige Pakete finden ohne Zusatzwerkzeug – 06. Oktober 2025
- Woher weiß ich, ob die Antwort besser geworden ist? – 16. September 2025
- Ein eigener NuGet-Feed im Heimnetz – 24. August 2025
- MVVM ohne Boilerplate: das CommunityToolkit in WPF – 03. August 2025
- Eigene Dokumente durchsuchbar machen mit den Vector Data Extensions – 15. Juli 2025
- TimeProvider: Zeit endlich testbar – 28. Juni 2025
- Tool Calling mit Microsoft.Extensions.AI – 08. Juni 2025
- Ein Interface für alle LLMs: IChatClient – 20. Mai 2025
- Minimal APIs, zwei Jahre später – 26. April 2025
- Paketversionen zentral verwalten mit Directory.Packages.props – 05. April 2025
- Einen MCP-Server in C# schreiben – 22. März 2025
- Warum ein gutes Onboarding essenziell ist – 01. März 2025
- API-Fehlerbehandlung in ASP.NET Core – 18. Februar 2025
- Git Commit-Datum auf Author-Datum setzen (PowerShell) – 17. Februar 2025
- SignalR 101 - Eine Einführung für .NET 8 – 23. Januar 2025
- Globale Hotkeys in WPF mit .NET 8 – 13. Januar 2025
- Behaviors in WPF – Interaktive Funktionen ohne Code – 01. Januar 2025
- Discriminated Unions in C# – 02. August 2024
- Syntax-Highlighting mit Jekyll – 01. August 2024
- re:upload mit Jekyll – 31. Juli 2024
- API erstellen mit OData 8.0 – 01. Juli 2023
- Regex und Logging mit Source Generators in .NET 6 – 10. April 2023
- Amtsgericht lädt Daten auf RAM-Disk und schaltet Computer aus – 21. März 2023
- Wie erstellt man ein NuGet-Package – 17. März 2023
- Netzwerklaufwerke für Programme – 08. Februar 2023
- Projektweite Global Usings – 28. Januar 2023
- Endpoints Explorer in VS 2022 – 26. Januar 2023
- WebAPI testen mit .http Files – 25. Januar 2023
- Neues Wikipedia Design – 22. Januar 2023
- Minimal Hosting API – 22. Januar 2023
- ASP.Net Statuspage mit IHealthCheck – 22. Januar 2023
- PDF erstellen mit Syncfusion – 13. Januar 2023
- Erste MAUI App – 13. Januar 2023
- .NET 6 - Validierung der .NET-Konfiguration – 13. Januar 2023
- .NET 6 - Hosts für jeden Zweck – 13. Januar 2023
- .NET 6 Entity Framework - Präzision einstellen – 13. Januar 2023
- Gesehen: The Menu – 20. Dezember 2022
- Sprachen lernen mit ChatGPT – 16. Dezember 2022
- Dev-Tunnels für ASP.NET – 16. Dezember 2022
- Deobfuskieren mit ChatGPT – 16. Dezember 2022
- ChatGPT - ein neuer Hype? – 16. Dezember 2022
- Erweiterte Mustererkennung in C# – 30. November 2022
- Einführung in Blazor WebAssembly – 18. November 2022
- Verwendung von IMemoryCache in .NET – 20. August 2022
- Rust als Systemsprache: Ein kurzer Überblick – 18. Juli 2022
- Dependency Injection in .NET 6 – 12. Juni 2022
- Blazor Hybrid-Apps: Web und Desktop vereint – 05. November 2021
- Leistungsverbesserungen in .NET 6 – 10. Mai 2021
- C# 9.0: Neue Features im Überblick – 25. März 2021
- Neue Features in .NET 5 – 15. März 2021
- Neue Features in Entity Framework Core 5 – 20. Februar 2021
- Durable Functions in Azure: Orchestrierung leicht gemacht – 15. Dezember 2020
- Einführung in Azure DevOps Build- und Release-Pipelines – 18. November 2020
- C# 9.0: Einführung in Records – 18. August 2020
- Neues in Visual Studio 2019: Live Share und IntelliCode – 15. Februar 2020
- gRPC in .NET Core: Moderne Kommunikation für Microservices – 22. Oktober 2019
- Neue Features in C# 8.0 – 10. September 2019
- Angular mit ASP.NET Core: Komponenten hinzufügen – 25. Januar 2018
- Fehler in ASP.NET Core Web Anwendung mit Angular und Visual Studio – 23. Januar 2018
- Nintendo Labo – 18. Januar 2018
- Azure Red Shirt Dev Tour – 18. Januar 2018
- Das NetzDG und die Folgen – 04. Januar 2018
- Die Zukunft der Straßen – 03. Januar 2018
- Die Zukunft von Microsofts Mobilsparte – 20. Dezember 2017
- WhatsApp ist doch das kleinste Problem – 18. Dezember 2017
- Meinung: Phone, Mobile oder nicht - wird es wieder ein mobiles Windows geben? – 18. Dezember 2017
- Gespielt: Finding Paradise – 15. Dezember 2017
- Windows 10 Wiedergabegerät schnell wechseln – 11. Dezember 2017
- Windows 10 on ARM auf dem Snapdragon 835 – 05. Dezember 2017
- Smileys mit oder ohne Nasen – 05. Dezember 2017
- Firefox 57 anpassen – 04. Dezember 2017
- Windows erhält neues Sets-Feature – 28. November 2017
- Städte buhlen um Amazon – 28. November 2017
- Drag&Drop mit WPF – 28. November 2017
- Kinderprojekte in Peru unterstützen – 26. November 2017
- PortableUI für MonoGame – 25. November 2017
- Luther Burger vs. Luther Burger – 25. November 2017
- Chili con Carne – 25. November 2017
- Geschaut: 'The Sinner' bei Netflix – 24. November 2017
- Mein günstiger Git Server – 23. November 2017
- Ein Anfang ist gemacht – 22. November 2017