{"id":280,"date":"2026-08-28T20:38:45","date_gmt":"2026-08-28T20:38:45","guid":{"rendered":"https:\/\/www.fabricioruch.ch\/?p=280"},"modified":"2026-08-28T20:38:45","modified_gmt":"2026-08-28T20:38:45","slug":"your-machine-will-outlive-your-ui-framework","status":"publish","type":"post","link":"https:\/\/www.fabricioruch.ch\/?p=280","title":{"rendered":"Your Machine Will Outlive Your UI Framework"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Was 24 Jahre WinForms \u00fcber Technologieentscheidungen f\u00fcr langlebige Software lehren<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Vor einiger Zeit habe ich dar\u00fcber geschrieben, warum ich C# WinForms noch lange nicht f\u00fcr tot halte.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Damals ging es vor allem um Pragmatismus: WinForms ist ausgereift, stabil, produktiv und f\u00fcr viele klassische Windows-Anwendungen immer noch erstaunlich gut geeignet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">2026 interessiert mich daran aber ein anderer Aspekt viel mehr.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ich habe in meiner Laufbahn einige Technologien kommen und gehen sehen. Manche wurden als Zukunft pr\u00e4sentiert. Manche sollten bestehende Technologien abl\u00f6sen. Manche waren technisch tats\u00e4chlich moderner.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Und trotzdem ist WinForms noch da.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nicht irgendwie eingefroren in einer alten Version des .NET Frameworks, sondern als Bestandteil des aktuellen .NET. Microsoft liefert mit neuen .NET-Versionen weiterhin neue WinForms-Versionen aus. .NET 10 brachte unter anderem Dark Mode, vollst\u00e4ndig integrierte asynchrone Formulare, Designer-Verbesserungen, Accessibility-Verbesserungen und neue APIs. F\u00fcr .NET 11 befinden sich bereits weitere \u00c4nderungen in Entwicklung.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das wirft f\u00fcr mich eine interessantere Frage auf:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Was passiert, wenn die Software, die wir heute entwickeln, l\u00e4nger lebt als die Technologie, auf der wir sie aufbauen?<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Bei einer Website mag das \u00e4rgerlich sein.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bei einem Automaten, einer Maschine, einem Kassensystem, einem Laborger\u00e4t oder einer industriellen Anlage kann es ein ernsthaftes wirtschaftliches Problem werden.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Eine Maschine denkt nicht in Releasezyklen<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Softwareentwickler denken h\u00e4ufig in Jahren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Industrie denkt teilweise in Jahrzehnten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eine Maschine, die heute f\u00fcr viel Geld installiert wird, kann 2040 noch irgendwo in einer Produktionshalle stehen. Ein Automat kann nach zehn Jahren noch vollkommen seinen Zweck erf\u00fcllen. Ein Messger\u00e4t wird nicht automatisch wertlos, nur weil sein Benutzerinterface nicht mehr dem aktuellen Fluent Design entspricht.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das ver\u00e4ndert die Architekturfrage fundamental.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bei einem kurzlebigen Produkt kann ich relativ aggressiv auf neue Technologien setzen. Wenn ich ohnehin davon ausgehe, dass das System in f\u00fcnf Jahren ersetzt oder grundlegend \u00fcberarbeitet wird, ist das Risiko \u00fcberschaubar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bei einem System mit 15 oder 20 Jahren erwarteter Lebensdauer sieht die Rechnung anders aus.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dann muss ich nicht nur fragen:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Was kann diese Technologie heute?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ich muss auch fragen:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Wie wahrscheinlich ist es, dass ich diese Technologie in zehn oder zwanzig Jahren noch vern\u00fcnftig betreiben, bauen und warten kann?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Diese zweite Frage wird bei Architekturentscheidungen erstaunlich oft untersch\u00e4tzt.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">2002: WinForms<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Windows Forms erschien mit dem urspr\u00fcnglichen .NET Framework Anfang der 2000er-Jahre.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aus heutiger Sicht ist das Framework alt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sehr alt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Und trotzdem ver\u00f6ffentlicht Microsoft 2026 Dokumentation f\u00fcr WinForms auf .NET 11 Preview. Microsoft schreibt selbst, dass jede .NET-Version eine neue Version von Windows Forms mitbringt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mit .NET 10 kamen beispielsweise:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>asynchrone Forms und Dialoge,<\/li>\n\n\n\n<li>Dark Mode,<\/li>\n\n\n\n<li>Verbesserungen am Designer,<\/li>\n\n\n\n<li>neue Clipboard-APIs,<\/li>\n\n\n\n<li>Accessibility-Verbesserungen,<\/li>\n\n\n\n<li><code>ScreenCaptureMode<\/code>,<\/li>\n\n\n\n<li>neue Analyzer,<\/li>\n\n\n\n<li>zahlreiche Bugfixes.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr .NET 11 Preview dokumentiert Microsoft bereits weitere Arbeiten an Visual Styles, System Settings, Performance bei Bulk Operations, ToolStrip, Layout, Designer, PropertyGrid und Dark Mode.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist ein bemerkenswerter Zustand.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein UI-Framework aus dem Jahr 2002 bekommt 2026 neue Funktionen.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Und was kam danach?<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Genau hier wird die Geschichte interessant.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">WinForms war keineswegs die letzte gro\u00dfe UI-Technologie, die Microsoft vorgestellt hat.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Danach kamen zahlreiche neue Ans\u00e4tze.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">WPF<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">2006 erschien Windows Presentation Foundation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">WPF war gegen\u00fcber WinForms in vielen Bereichen ein erheblicher technologischer Schritt: XAML, Data Binding, Styles, Templates, Vektorgrafik, Animationen, eine wesentlich st\u00e4rkere Trennung zwischen Darstellung und Logik und sp\u00e4ter die starke Verbreitung von MVVM.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn man damals WPF gew\u00e4hlt hat, war das keineswegs eine schlechte Langzeitentscheidung.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das muss man 2026 ausdr\u00fccklich festhalten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">WPF hat den Test der Zeit ebenfalls bestanden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Microsoft entwickelt WPF weiterhin innerhalb von modernem .NET. .NET 10 brachte Performanceverbesserungen, Fluent-Style-\u00c4nderungen, neue APIs und weitere Verbesserungen. Auch .NET 11 Preview enth\u00e4lt bereits WPF-\u00c4nderungen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">WPF geh\u00f6rt deshalb nicht auf die Liste der gescheiterten WinForms-Nachfolger.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es geh\u00f6rt zusammen mit WinForms auf die wesentlich interessantere Liste:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Windows-Desktoptechnologien, die tats\u00e4chlich langlebig geworden sind.<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Silverlight<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Dann kam Silverlight.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Silverlight war technisch interessant und zeitweise enorm pr\u00e4sent. Microsoft positionierte es f\u00fcr Rich Internet Applications und Anwendungen, die Teile der WPF-Welt in den Browser bringen sollten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wer damals auf die Technologie setzte, konnte daf\u00fcr vollkommen nachvollziehbare Gr\u00fcnde haben.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Heute ist die Situation eindeutig.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Microsoft beendete den Support f\u00fcr Silverlight am 12. Oktober 2021.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Damit ist die Technologiegeschichte abgeschlossen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die Anwendungsgeschichte m\u00f6glicherweise nicht.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Denn Software verschwindet nicht automatisch, wenn der Hersteller den Support beendet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Irgendwo existiert m\u00f6glicherweise weiterhin eine Fachanwendung, deren urspr\u00fcngliche Entwickler l\u00e4ngst das Unternehmen verlassen haben und deren Gesch\u00e4ftslogik noch immer ben\u00f6tigt wird.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das Problem wurde damit vom Hersteller zum Betreiber \u00fcbertragen.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Windows 8, Metro und WinRT<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Mit Windows 8 begann eine weitere gro\u00dfe Neuausrichtung.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Microsoft wollte Windows auf PCs, Tablets und neue Ger\u00e4teklassen ausrichten. Metro beziehungsweise die sp\u00e4tere Modern-UI-Welt unterschied sich fundamental vom klassischen Desktop.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">WinRT, Windows Store Apps und die neuen App-Modelle sollten eine neue Generation von Windows-Anwendungen erm\u00f6glichen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Technisch war vieles daran nachvollziehbar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Strategisch war es trotzdem ein Risiko.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Denn auf diese Generation folgte bereits die n\u00e4chste.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">UWP: die Zukunft, die zur Wartungsplattform wurde<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">2015 kam die Universal Windows Platform.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Der Name transportierte bereits den Anspruch: eine gemeinsame Plattform f\u00fcr unterschiedliche Windows-Ger\u00e4teklassen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Desktop, Tablet, Xbox, HoloLens und andere Ger\u00e4te sollten unter einem gemeinsamen Plattformmodell zusammengef\u00fchrt werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn jemand 2015 gesagt h\u00e4tte:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u201eF\u00fcr eine neue Windows-Anwendung nehme ich UWP. Das ist Microsofts Zukunft und WinForms ist Technologie von gestern.\u201c<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">w\u00e4re das keine absurde Entscheidung gewesen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Im Gegenteil.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sie h\u00e4tte damals ziemlich modern geklungen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">2026 beschreibt Microsoft UWP dagegen als <strong>maintenance mode<\/strong> und empfiehlt f\u00fcr aktuelle Entwicklung die Migration zum Windows App SDK.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das bedeutet nicht, dass bestehende UWP-Anwendungen pl\u00f6tzlich nicht mehr funktionieren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das w\u00e4re eine zu vereinfachte Darstellung.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es bedeutet aber etwas, das f\u00fcr langlebige Systeme mindestens genauso wichtig ist:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Die strategische Investition des Plattformherstellers hat sich verschoben.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wer eine Anwendung \u00fcber viele weitere Jahre entwickeln m\u00f6chte, steht damit irgendwann vor einer Migrationsentscheidung.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Und Migration ist nicht kostenlos.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Xamarin.Forms<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Auch Xamarin.Forms zeigt das Problem aus einer anderen Perspektive.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cross-Platform-Entwicklung mit C# war attraktiv. Eine Codebasis f\u00fcr mehrere Plattformen versprach erhebliche Produktivit\u00e4tsvorteile.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sp\u00e4ter wurde .NET MAUI zum Nachfolger.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Microsoft beendete den Support f\u00fcr alle Xamarin-SDKs einschlie\u00dflich Xamarin.Forms am 1. Mai 2024 und verweist f\u00fcr die Weiterentwicklung auf die Migration zu .NET beziehungsweise .NET MAUI.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Auch hier gilt:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die urspr\u00fcngliche Technologieentscheidung muss deshalb nicht falsch gewesen sein.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aber ihre Lebensdauer war begrenzt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr ein Produkt mit einem entsprechenden Modernisierungszyklus ist das akzeptabel.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr ein System, das m\u00f6glichst unver\u00e4ndert 20 Jahre betrieben werden soll, kann es problematisch sein.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Und WinForms?<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">W\u00e4hrend all dieser Strategiewechsel passierte etwas fast Langweiliges.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">WinForms blieb.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nicht als aufregendste Technologie.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nicht als modernste Technologie.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nicht als Framework mit der elegantesten Rendering-Architektur.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es blieb einfach verwendbar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Und irgendwann wird genau diese Eigenschaft selbst interessant.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>2002  WinForms\n  \u2502\n  \u251c\u2500\u2500\u2500\u2500 WPF \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u25ba aktiv\n  \u2502\n  \u251c\u2500\u2500\u2500\u2500 Silverlight \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u25ba Supportende\n  \u2502\n  \u251c\u2500\u2500\u2500\u2500 Windows 8 \/ Metro\n  \u2502          \u2502\n  \u2502          \u2514\u2500\u2500\u2500\u2500 WinRT \/ Store Apps\n  \u2502\n  \u251c\u2500\u2500\u2500\u2500 UWP \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u25ba Maintenance\n  \u2502                              \u2502\n  \u2502                              \u2514\u2500\u2500\u25ba Windows App SDK \/ WinUI 3\n  \u2502\n  \u251c\u2500\u2500\u2500\u2500 Xamarin.Forms \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u25ba Supportende\n  \u2502                              \u2502\n  \u2502                              \u2514\u2500\u2500\u25ba .NET MAUI\n  \u2502\n  \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u25ba WinForms 2026\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Diese Darstellung soll nicht suggerieren, dass jede dieser Technologien als direkter WinForms-Nachfolger gedacht war.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das w\u00e4re historisch falsch.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sie zeigt etwas anderes:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Wie oft sich Microsofts Vorstellung moderner Anwendungsentwicklung ver\u00e4ndert hat, w\u00e4hrend WinForms weiterhin verf\u00fcgbar blieb.<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Stellen wir uns jetzt einen Automaten vor<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Nehmen wir keine gew\u00f6hnliche Office-Anwendung.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nehmen wir einen Automaten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die konkrete Art spielt kaum eine Rolle:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ticketautomat,<\/li>\n\n\n\n<li>Verkaufsautomat,<\/li>\n\n\n\n<li>Check-in-Terminal,<\/li>\n\n\n\n<li>Zahlungsterminal,<\/li>\n\n\n\n<li>Produktionsautomat,<\/li>\n\n\n\n<li>Laborger\u00e4t,<\/li>\n\n\n\n<li>Messsystem,<\/li>\n\n\n\n<li>industrielle Bedienoberfl\u00e4che.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Die Software k\u00f6nnte ungef\u00e4hr so aufgebaut sein:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502        Benutzeroberfl\u00e4che    \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502       Application Logic      \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502          Domain Logic        \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502       Hardware Services      \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 Serial \/ USB \/ CAN \/ TCP\/IP  \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 Treiber \/ Windows \/ Hardware \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das System wird 2012 entwickelt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Der Automat kostet vielleicht Zehntausende Franken.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Er funktioniert.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Der Kunde kauft 300 St\u00fcck.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die Ger\u00e4te werden verteilt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Und dann beginnt der wirklich schwierige Teil der Softwareentwicklung:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Betrieb.<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Der Code ist nicht mehr das eigentliche Problem<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Nach zehn Jahren kennt kaum noch jemand das urspr\u00fcngliche Projekt vollst\u00e4ndig.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Entwickler haben gewechselt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bibliotheken wurden aktualisiert.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hardwarekomponenten wurden ersetzt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vielleicht gibt es einen neuen Drucker.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Einen anderen Scanner.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein neues Kartenleseger\u00e4t.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein neues Windows.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Neue Sicherheitsanforderungen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Neue Zertifikate.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Neue Netzwerkregeln.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Trotzdem soll der Automat weiterhin dasselbe tun wie vorher.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nun erreicht zus\u00e4tzlich das UI-Framework das Ende seiner strategischen Lebensdauer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Auf dem Papier klingt die L\u00f6sung einfach:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u201eDann migrieren wir eben.\u201c<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Dieser Satz kann bei langlebiger Industriesoftware sehr teuer werden.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Eine UI-Migration ist selten nur eine UI-Migration<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Man k\u00f6nnte zun\u00e4chst denken:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Altes UI\n   \u2193\nNeues UI\n\nFertig.\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">In der Realit\u00e4t sieht es eher so aus:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Neue UI-Technologie\n       \u2502\n       \u251c\u2500\u2500 Navigation neu implementieren\n       \u251c\u2500\u2500 Lifecycle ver\u00e4ndert\n       \u251c\u2500\u2500 Threading \u00fcberpr\u00fcfen\n       \u251c\u2500\u2500 Binding \u00fcberpr\u00fcfen\n       \u251c\u2500\u2500 Dialogverhalten \u00fcberpr\u00fcfen\n       \u251c\u2500\u2500 Touch testen\n       \u251c\u2500\u2500 Bildschirmtastatur testen\n       \u251c\u2500\u2500 DPI \/ Skalierung testen\n       \u251c\u2500\u2500 mehrere Displays testen\n       \u251c\u2500\u2500 Drucker testen\n       \u251c\u2500\u2500 Scanner testen\n       \u251c\u2500\u2500 Kartenleser testen\n       \u251c\u2500\u2500 Spezialhardware testen\n       \u251c\u2500\u2500 Deployment anpassen\n       \u251c\u2500\u2500 Logging \u00fcberpr\u00fcfen\n       \u251c\u2500\u2500 Recovery-Verhalten testen\n       \u2514\u2500\u2500 vollst\u00e4ndige Regression\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Und das alles, obwohl der Benutzer m\u00f6glicherweise keine einzige neue Funktion bekommt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist eine der unangenehmsten Arten technischer Schuld:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Kosten ohne unmittelbar sichtbaren Gesch\u00e4ftsnutzen.<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Der Automat funktioniert doch<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Das macht die Situation organisatorisch noch schwieriger.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Versuche einem Produktverantwortlichen zu erkl\u00e4ren:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Wir m\u00fcssen einen erheblichen Betrag investieren, damit die neue Version anschlie\u00dfend im Wesentlichen dasselbe macht wie die alte.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Die nachvollziehbare Antwort lautet:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Warum?<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">\u201eWeil unser UI-Framework nicht mehr strategisch weiterentwickelt wird\u201c ist technisch eine legitime Begr\u00fcndung.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Betriebswirtschaftlich bleibt sie unangenehm.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Genau deshalb sollte die erwartete Lebensdauer einer Technologie bereits bei der urspr\u00fcnglichen Architekturentscheidung ber\u00fccksichtigt werden.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Technologie hat ebenfalls eine Halbwertszeit<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Bei Architekturentscheidungen bewerten wir normalerweise Dinge wie:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Performance,<\/li>\n\n\n\n<li>Entwicklungsproduktivit\u00e4t,<\/li>\n\n\n\n<li>Wartbarkeit,<\/li>\n\n\n\n<li>Skalierbarkeit,<\/li>\n\n\n\n<li>Testbarkeit,<\/li>\n\n\n\n<li>Sicherheit,<\/li>\n\n\n\n<li>Verf\u00fcgbarkeit von Entwicklern,<\/li>\n\n\n\n<li>Lizenzkosten,<\/li>\n\n\n\n<li>\u00d6kosystem,<\/li>\n\n\n\n<li>Tooling.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Ich w\u00fcrde bei langlebigen Systemen einen weiteren Punkt explizit hinzuf\u00fcgen:<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Plattformrisiko<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Darunter verstehe ich Fragen wie:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Wie lange existiert die Technologie bereits?<\/li>\n\n\n\n<li>Wie gro\u00df ist die installierte Basis?<\/li>\n\n\n\n<li>Wie stark h\u00e4ngt sie von einem einzelnen Produktzyklus ab?<\/li>\n\n\n\n<li>Gibt es einen offenen Quellcode?<\/li>\n\n\n\n<li>Wie stark ist die Abw\u00e4rtskompatibilit\u00e4t?<\/li>\n\n\n\n<li>Wie teuer w\u00e4re eine Migration?<\/li>\n\n\n\n<li>Gibt es einen realistischen Exit-Pfad?<\/li>\n\n\n\n<li>Wie oft hat der Hersteller seine Strategie in diesem Bereich bereits ge\u00e4ndert?<\/li>\n\n\n\n<li>Ist die Technologie fundamental oder nur eine Abstraktionsschicht auf einer anderen Abstraktionsschicht?<\/li>\n\n\n\n<li>Kann ich die Anwendung notfalls jahrelang ohne neue Framework-Version betreiben?<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Das sind Architekturfragen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Keine nostalgischen Fragen.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Alter kann ein positives Signal sein<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">In der Softwareentwicklung behandeln wir Alter h\u00e4ufig automatisch als Nachteil.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist zu einfach.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eine 24 Jahre alte Technologie besitzt einen Nachteil:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sie tr\u00e4gt historische Entscheidungen mit sich herum.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aber sie besitzt gleichzeitig einen Vorteil, den eine zwei Jahre alte Technologie prinzipiell nicht besitzen kann:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>einen 24-j\u00e4hrigen Track Record.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bei WinForms wissen wir heute ziemlich viel.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wir kennen seine Grenzen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wir kennen sein Threading-Modell.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wir kennen seine Layout-Probleme.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wir kennen DPI-Probleme.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wir kennen seine St\u00e4rken.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wir kennen seine Schw\u00e4chen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wir wissen, wie man gro\u00dfe Anwendungen damit strukturiert.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wir wissen, wie man schlechte Anwendungen damit baut.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wir wissen, wie man gute Anwendungen damit baut.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Und vor allem:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wir wissen inzwischen, dass Microsoft eine enorme Menge an Kompatibilit\u00e4t erhalten hat.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist empirische Information.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Das Lindy-Prinzip der Softwareentwicklung<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Dahinter steckt eine interessante allgemeine Idee.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vereinfacht besagt der sogenannte Lindy-Effekt bei nicht verderblichen Dingen:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Je l\u00e4nger etwas bereits existiert hat, desto plausibler wird eine weitere lange Existenz.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist nat\u00fcrlich kein Naturgesetz f\u00fcr Software.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">COBOL wird nicht automatisch unsterblich, nur weil es alt ist.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Und ein altes Framework kann morgen eingestellt werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Trotzdem enth\u00e4lt der Gedanke f\u00fcr Architekturentscheidungen etwas Wertvolles.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vergleichen wir 2026 zwei Technologien:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Technologie A<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>seit 24 Jahren produktiv eingesetzt,<\/li>\n\n\n\n<li>enorme installierte Basis,<\/li>\n\n\n\n<li>Open Source,<\/li>\n\n\n\n<li>Bestandteil von modernem .NET,<\/li>\n\n\n\n<li>bekommt weiterhin Updates.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Technologie B<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>seit drei Jahren verf\u00fcgbar,<\/li>\n\n\n\n<li>technisch moderner,<\/li>\n\n\n\n<li>kleinere installierte Basis,<\/li>\n\n\n\n<li>strategisch aktuell stark beworben.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Welche wird 2040 noch existieren?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die ehrliche Antwort lautet:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Wir wissen es nicht.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aber wir besitzen f\u00fcr Technologie A wesentlich mehr empirische Daten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das sollte in einer Risikoanalyse einen Wert haben.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Neu ist kein Synonym f\u00fcr langlebig<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Das klingt banal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In der Softwareentwicklung verhalten wir uns trotzdem regelm\u00e4\u00dfig anders.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eine neue Technologie erscheint.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sie l\u00f6st reale Probleme.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die Dokumentation sieht gut aus.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Der Hersteller investiert stark.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Konferenzen sprechen dar\u00fcber.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Blogposts erkl\u00e4ren die alte Technologie f\u00fcr tot.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dann entsteht schnell folgende Gleichung:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>neu = modern\nmodern = strategisch\nstrategisch = zukunftssicher\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Der letzte Schritt ist falsch.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Modernit\u00e4t und Zukunftssicherheit sind zwei unterschiedliche Eigenschaften.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eine Technologie kann technisch hervorragend und trotzdem nach acht Jahren strategisch abgel\u00f6st sein.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eine andere kann technisch konservativ sein und 25 Jahre \u00fcberleben.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Auch WinUI 3 muss diesen Test erst noch bestehen<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Heute ist WinUI 3 Teil des Windows App SDK und Microsofts aktueller nativer UI-Stack f\u00fcr moderne Windows-Desktopanwendungen. Microsoft bezeichnet WinUI 3 entsprechend als natives UI-Framework f\u00fcr Windows-Desktop-Apps.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das Windows App SDK wird aktiv entwickelt. Im August 2026 ist die 2.x-Linie aktuell; Microsoft dokumentiert Stable-, Preview- und Experimental-Kan\u00e4le sowie einen eigenen Release-Lifecycle.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist alles positiv.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es w\u00e4re deshalb falsch, WinUI 3 als schlechte Wahl darzustellen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aber f\u00fcr ein System mit einer erwarteten Lebensdauer bis 2045 gibt es eine Tatsache, die keine Architekturpr\u00e4sentation beseitigen kann:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>WinUI 3 hat noch keinen 20-j\u00e4hrigen Track Record.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">WinForms hat ihn.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">WPF inzwischen ebenfalls.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das bedeutet nicht:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Nimm WinForms, weil WinUI 3 verschwinden wird.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Das wissen wir nicht.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es bedeutet:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Ber\u00fccksichtige, dass die langfristige Stabilit\u00e4t einer jungen Plattform zwangsl\u00e4ufig weniger empirisch belegt ist.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist Risikomanagement.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Auch modernes .NET hat einen Lifecycle<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Hier muss man allerdings fair bleiben.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">WinForms auf modernem .NET bedeutet nicht, dass man 2026 eine Anwendung auf .NET 10 baut und diese Runtime anschlie\u00dfend bis 2045 offiziell unterst\u00fctzt wird.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">.NET selbst besitzt einen klar definierten Supportzyklus.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">.NET 10 ist eine LTS-Version, ver\u00f6ffentlicht am 11. November 2025, und wird bis zum 14. November 2028 unterst\u00fctzt. Microsoft ver\u00f6ffentlicht j\u00e4hrlich neue .NET-Hauptversionen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Auch bei WinForms muss man deshalb Runtime-Upgrades einplanen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Der entscheidende Unterschied ist:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Framework-Evolution ist etwas anderes als Framework-Abl\u00f6sung.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eine Anwendung von .NET 8 auf .NET 10 und sp\u00e4ter auf .NET 12 zu aktualisieren, ist konzeptionell etwas anderes, als die gesamte Presentation-Technologie von UWP auf WinUI 3 oder von Xamarin.Forms auf MAUI zu migrieren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beides kostet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aber die Risikoklassen sind unterschiedlich.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Die eigentliche Architekturma\u00dfnahme ist Entkopplung<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Aus all dem folgt allerdings nicht:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Baut alles mit WinForms.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Das w\u00e4re die falsche Schlussfolgerung.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die bessere Schlussfolgerung lautet:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Baut langlebige Systeme so, dass der Tod einer UI-Technologie nicht den Tod des Systems bedeutet.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Bei einem industriellen System sollte die Architektur deshalb eher so aussehen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502          Presentation            \u2502\n\u2502 WinForms \/ WPF \/ WinUI \/ Web ... \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n                 \u2502\n                 \u25bc\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502        Application Layer         \u2502\n\u2502 Use Cases \/ Commands \/ Services  \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n                 \u2502\n                 \u25bc\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502             Domain               \u2502\n\u2502 Gesch\u00e4fts- und Maschinenlogik    \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n                 \u2502\n                 \u25bc\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502         Infrastructure           \u2502\n\u2502 DB \/ Netzwerk \/ Ger\u00e4te \/ I\/O     \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dann ist WinForms nicht die Anwendung.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">WinForms ist ein Adapter zur Anwendung.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist ein fundamentaler Unterschied.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn die Presentation-Schicht irgendwann ersetzt werden muss, bleibt die wertvolle Gesch\u00e4fts- und Maschinenlogik erhalten.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Das gilt auch f\u00fcr WinForms selbst<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Denn auch WinForms wird nicht ewig leben.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Zumindest sollte kein Architekt diese Annahme treffen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vielleicht existiert WinForms 2046 noch.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vielleicht nicht.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Niemand wei\u00df es.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die Tatsache, dass WinForms bereits 24 Jahre \u00fcberlebt hat, ist ein starkes Signal f\u00fcr Stabilit\u00e4t, aber keine Garantie f\u00fcr Unsterblichkeit.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Deshalb sollte auch eine neue WinForms-Anwendung nicht aus einer 30.000 Zeilen gro\u00dfen <code>MainForm.cs<\/code> bestehen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das Problem vieler alter WinForms-Systeme ist nicht WinForms.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das Problem ist, dass UI, Gesch\u00e4ftslogik, Datenbankzugriff, Ger\u00e4tekommunikation und Zustand miteinander verschmolzen wurden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dann wird aus einem Frameworkwechsel tats\u00e4chlich eine vollst\u00e4ndige Neuentwicklung.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Boring Technology<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">In der Softwareentwicklung wird \u201eboring\u201c h\u00e4ufig negativ verwendet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bei langlebigen Systemen kann boring hervorragend sein.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Boring bedeutet:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>bekannte Fehlerbilder,<\/li>\n\n\n\n<li>bekannte Einschr\u00e4nkungen,<\/li>\n\n\n\n<li>bekannte Deployment-Prozesse,<\/li>\n\n\n\n<li>verf\u00fcgbare Entwickler,<\/li>\n\n\n\n<li>gro\u00dfe Wissensbasis,<\/li>\n\n\n\n<li>wenig \u00dcberraschungen.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Getr\u00e4nkeautomat muss technologisch nicht aufregend sein.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Er muss am Montagmorgen funktionieren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Und am Dienstag.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Und nach einem Windows-Update.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Und nach dem Austausch des Druckers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Und acht Jahre sp\u00e4ter, wenn niemand aus dem urspr\u00fcnglichen Entwicklungsteam mehr dort arbeitet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist eine andere Definition von Qualit\u00e4t als die, die wir h\u00e4ufig bei neuen Frameworks verwenden.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Die wirtschaftliche Perspektive<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Technologieentscheidungen werden h\u00e4ufig anhand der initialen Entwicklungskosten bewertet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr langlebige Software ist das unzureichend.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die relevante Gr\u00f6\u00dfe ist eher:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Total Cost of Ownership\n\n= Entwicklung\n+ Wartung\n+ Updates\n+ Betrieb\n+ Schulung\n+ Abh\u00e4ngigkeiten\n+ Migrationen\n+ Regressionstests\n+ Plattformwechsel\n+ Ausfallrisiko\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Framework, das die Entwicklung im ersten Jahr um 15 Prozent beschleunigt, aber nach acht Jahren eine gro\u00dfe Migration erzwingt, kann \u00fcber den gesamten Lebenszyklus teurer sein.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Umgekehrt kann eine konservative Technologie wirtschaftlich hervorragend sein, wenn sie 15 Jahre mit \u00fcberschaubaren Updates weiterbetrieben werden kann.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das l\u00e4sst sich nicht allgemein f\u00fcr WinForms behaupten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aber es muss Bestandteil der Rechnung sein.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Die Maschine interessiert sich nicht f\u00fcr unseren Technologiegeschmack<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist vielleicht die wichtigste Erkenntnis.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eine Maschine bewertet ihre Software nicht nach:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>GitHub-Stars,<\/li>\n\n\n\n<li>Hacker-News-Diskussionen,<\/li>\n\n\n\n<li>Konferenzvortr\u00e4gen,<\/li>\n\n\n\n<li>Architekturtrends,<\/li>\n\n\n\n<li>Framework-Hype.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Sie stellt eine viel brutalere Frage:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Funktioniert das System zuverl\u00e4ssig?<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Und der Betreiber stellt noch eine:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Was kostet es mich \u00fcber seine gesamte Lebensdauer?<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Aus dieser Perspektive sehen Technologieentscheidungen pl\u00f6tzlich anders aus.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Meine Bewertung 2026<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">W\u00fcrde ich heute jede neue Windows-Anwendung mit WinForms bauen?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nein.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr ein modernes Consumer-Produkt mit aufwendiger UX w\u00fcrde ich andere Technologien evaluieren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr Cross-Platform ist WinForms offensichtlich ungeeignet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr hochgradig dynamische, responsive und stark animierte Benutzeroberfl\u00e4chen gibt es bessere Werkzeuge.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aber w\u00fcrde ich WinForms 2026 f\u00fcr eine langlebige Windows-only Business-, Maschinen- oder Industriesoftware ernsthaft in Betracht ziehen?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ja.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nicht obwohl es alt ist.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Teilweise gerade deshalb.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nicht weil WinForms technisch allen Alternativen \u00fcberlegen w\u00e4re.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist es nicht.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sondern weil 24 Jahre Produktionsgeschichte selbst eine technische Eigenschaft darstellen.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">WPF verdient dieselbe Anerkennung<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Dasselbe gilt inzwischen in erheblichem Ma\u00dfe f\u00fcr WPF.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">WPF ist j\u00fcnger als WinForms, aber ebenfalls seit rund zwei Jahrzehnten produktiv im Einsatz und wird weiterhin mit modernem .NET weiterentwickelt. Microsoft dokumentiert sowohl Verbesserungen in .NET 10 als auch Arbeiten f\u00fcr .NET 11.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr komplexere Windows-Oberfl\u00e4chen kann WPF deshalb eine sehr interessante Position einnehmen:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es besitzt wesentlich modernere UI-Konzepte als WinForms und gleichzeitig einen inzwischen sehr langen Track Record.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Man sollte deshalb nicht die falsche Geschichte erz\u00e4hlen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>WinForms gut\nWPF\/UWP\/alles danach schlecht\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Die Realit\u00e4t ist interessanter:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>WinForms \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u25ba \u00fcberlebt\n\nWPF \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u25ba \u00fcberlebt\n\nSilverlight \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u25ba beendet\n\nUWP \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u25ba Maintenance \/ Migration\n\nXamarin.Forms \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u25ba Support beendet\n\nWinUI 3 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u25ba aktiv, Zukunft offen\n\n.NET MAUI \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u25ba aktiv, Zukunft offen\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Technologiegeschichte ist nicht linear.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Was ich daraus als Softwarearchitekt mitnehme<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Ich habe Technologien kommen und gehen sehen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das hat meine Bewertung neuer Technologien ver\u00e4ndert.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ich frage heute weniger:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Ist das die modernste L\u00f6sung?<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">und h\u00e4ufiger:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Welche Art von Problem kaufe ich mir mit dieser Entscheidung f\u00fcr die n\u00e4chsten 15 Jahre ein?<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Neue Technologien k\u00f6nnen absolut die richtige Entscheidung sein.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Manchmal l\u00f6sen sie Probleme, die mit \u00e4lteren Technologien nur mit unverh\u00e4ltnism\u00e4\u00dfigem Aufwand l\u00f6sbar w\u00e4ren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aber \u201eneu\u201c ist kein Architekturargument.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u201eMicrosoft empfiehlt es\u201c ist ebenfalls keine Garantie f\u00fcr eine Lebensdauer von zwanzig Jahren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Und \u201ealt\u201c ist nicht automatisch ein Gegenargument.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bei langlebiger Software ist bewiesene Stabilit\u00e4t ein Wert.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Fazit<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">WinForms ist 2026 nicht deshalb interessant, weil es das modernste Windows-UI-Framework w\u00e4re.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es ist interessant, weil es das offensichtlich nicht ist und trotzdem noch existiert.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Seit seiner Einf\u00fchrung hat die Windows-Entwicklung mehrere strategische Wellen erlebt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Silverlight kam und ging.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Windows 8 brachte ein neues App-Modell.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">UWP wurde als universelle Plattform aufgebaut und befindet sich heute im Wartungsmodus.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Xamarin.Forms wurde durch .NET MAUI abgel\u00f6st.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Windows App SDK und WinUI 3 sind heute die aktuelle strategische Richtung.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">WPF und WinForms stehen immer noch.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Microsoft entwickelt beide weiterhin innerhalb von modernem .NET.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das macht WinForms nicht automatisch zur richtigen Wahl.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aber es widerlegt eine Denkweise, die in unserer Branche erstaunlich hartn\u00e4ckig ist:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Dass die neueste Technologie automatisch die zukunftssicherste Technologie sei.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr kurzlebige Software kann man dieses Risiko eingehen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bei einer Maschine, die zwanzig Jahre im Feld stehen soll, sollte man genauer rechnen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Denn am Ende kann etwas passieren, das in keinem Architekturdiagramm besonders spektakul\u00e4r aussieht:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Die Maschine lebt l\u00e4nger als ihr UI-Framework.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Und dann zeigt sich, ob die damalige Technologieentscheidung wirklich modern war \u2013 oder nur neu.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Quellen<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Microsoft Learn \u2013 What&#8217;s new in Windows Forms<\/strong><br>Dokumentation der WinForms-Entwicklung von .NET 5 bis .NET 11 Preview.<br><a href=\"https:\/\/learn.microsoft.com\/en-us\/dotnet\/desktop\/winforms\/whats-new\/?utm_source=chatgpt.com\">Microsoft: What&#8217;s new in Windows Forms<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Microsoft Learn \u2013 What&#8217;s new in WinForms for .NET 10<\/strong><br>Async Forms, Dark Mode, Designer-, Accessibility- und API-Verbesserungen.<br><a href=\"https:\/\/learn.microsoft.com\/en-us\/dotnet\/desktop\/winforms\/whats-new\/net100?utm_source=chatgpt.com\">Microsoft: WinForms in .NET 10<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Microsoft Learn \u2013 What&#8217;s new in WPF<\/strong><br>Aktuelle Entwicklung von WPF einschlie\u00dflich .NET 10 und .NET 11 Preview.<br><a href=\"https:\/\/learn.microsoft.com\/en-us\/dotnet\/desktop\/wpf\/whats-new\/?utm_source=chatgpt.com\">Microsoft: What&#8217;s new in WPF<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Microsoft Lifecycle \u2013 Silverlight<\/strong><br>Microsoft beendete den Silverlight-Support am 12. Oktober 2021.<br><a href=\"https:\/\/learn.microsoft.com\/de-de\/lifecycle\/announcements\/silverlight-end-of-support?utm_source=chatgpt.com\">Microsoft: Silverlight End of Support<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Microsoft Learn \u2013 Windows App Development<\/strong><br>Microsoft beschreibt UWP als Maintenance-Plattform und Windows App SDK\/WinUI 3 als aktuelle Richtung.<br><a href=\"https:\/\/learn.microsoft.com\/en-us\/windows\/apps\/?utm_source=chatgpt.com\">Microsoft: Windows App Development<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Microsoft Learn \u2013 Windows App SDK Release Channels<\/strong><br>Release- und Supportmodell des aktuellen Windows App SDK.<br><a href=\"https:\/\/learn.microsoft.com\/de-de\/windows\/apps\/windows-app-sdk\/release-channels?utm_source=chatgpt.com\">Microsoft: Windows App SDK Release Channels<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Microsoft Learn \u2013 Xamarin to .NET migration<\/strong><br>Microsoft-Support f\u00fcr Xamarin und Xamarin.Forms endete am 1. Mai 2024.<br><a href=\"https:\/\/learn.microsoft.com\/de-at\/dotnet\/maui\/migration\/?view=net-maui-8.0&amp;utm_source=chatgpt.com\">Microsoft: Upgrade Xamarin to .NET<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Microsoft \u2013 .NET Support Policy<\/strong><br>Aktuelle LTS-\/STS-Lebenszyklen; .NET 10 LTS wird bis November 2028 unterst\u00fctzt.<br><a href=\"https:\/\/dotnet.microsoft.com\/en-us\/platform\/support\/policy?utm_source=chatgpt.com\">Microsoft: .NET Support Policy<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Was 24 Jahre WinForms \u00fcber Technologieentscheidungen f\u00fcr langlebige Software lehren Vor einiger Zeit habe ich dar\u00fcber geschrieben, warum ich C# WinForms noch lange nicht f\u00fcr tot halte. Damals ging es vor allem um Pragmatismus: WinForms ist ausgereift, stabil, produktiv und f\u00fcr viele klassische Windows-Anwendungen immer noch erstaunlich gut geeignet. 2026 interessiert mich daran aber ein [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":281,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,43,33,8,25,45,32,34],"tags":[],"class_list":["post-280","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-csharp","category-innovation-management","category-methods","category-software-architecture","category-software-engineering","category-technology-management","category-winforms","category-wpf"],"_links":{"self":[{"href":"https:\/\/www.fabricioruch.ch\/index.php?rest_route=\/wp\/v2\/posts\/280","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fabricioruch.ch\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fabricioruch.ch\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fabricioruch.ch\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fabricioruch.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=280"}],"version-history":[{"count":1,"href":"https:\/\/www.fabricioruch.ch\/index.php?rest_route=\/wp\/v2\/posts\/280\/revisions"}],"predecessor-version":[{"id":282,"href":"https:\/\/www.fabricioruch.ch\/index.php?rest_route=\/wp\/v2\/posts\/280\/revisions\/282"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fabricioruch.ch\/index.php?rest_route=\/wp\/v2\/media\/281"}],"wp:attachment":[{"href":"https:\/\/www.fabricioruch.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=280"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fabricioruch.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=280"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fabricioruch.ch\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=280"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}