Bestehende Desktop-Applikationen udn Neuentwicklungen profitieren von modernen Funktionen und einem frischen Design. Dies lässt sich mit modernen Controls für das User Interface erreichen. Der Artikel beleuchtet die Optionen für die Standardtechnologie Windows Presentation Foundation (WPF).
Scheduling-Komponente in Windows Presentation Foundation mit Tagesansicht und Theming.
(Bild: Krypczyk / Microsoft)
Folgt man den üblichen Statistiken, dann bietet sich für den Bereich der Desktop-Applikationen ein recht einheitliches Bild. Dominierend sind aktuelle Varianten des Betriebssystem Windows, je nach Statistik von mehr als 85 Prozent, gefolgt von macOS mit ca. zehn Prozent und einem deutlich geringeren Anteil von diversen Linux-Distributionen.
Marktanteile und Versionen des Betriebssystems Windows und dessen Versionen laut T4.ai und Windowslatest.com.
(Bild: Krypczyk / t4.ai / windowslatest.com)
Splittet man das Segment der Windows Betriebssysteme weiter auf, dann kommt man zu dem Ergebnis, dass Windows 11 die ebenfalls weiterhin mit Updates versorgte Vorversion Windows 10 noch nicht nach der Anzahl der Installationen abgelöst hat. Auch sind noch weiterhin einige PCs mit Vorversionen – hauptsächlich mit Windows 7 – ausgestattet.
Daraus lässt sich schlussfolgern, dass dem Betriebssystem Windows nach wie vor eine entscheidende Rolle bei der Entwicklung von Business-Applikationen für den Desktop zukommt. Es stehen unterschiedliche Technologien bereit.
Wir können hier grob die folgenden Ansätze unterscheiden: Plattformübergreifende Programmierung, zum Beispiel mit Java oder Qt; Programmierung unter Nutzung des Window API und verwaltete Technologien mit Einsatz des .NET-Frameworks. Dabei kommt dem Grafikframework Windows Presentation Foundation (WPF) in der praktischen Verwendung nach wie vor eine große Rolle zu. Zum heutigen Stand lässt sich die Grafikschnittstelle WPF wie folgt bewerten:
Vorteile
Nachteile
Kompatibel mit aktuellen Versionen von Windows 10 und 11, aber auch mit den Vorversionen, zum Beispiel Windows 7
die Standard User Interface-Controls sind teilweise nicht mehr zeitgemäß
Kompatibel mit .NET 4.* und .NET 6 (ehemals .NET Core) und der künftigen Version .NET 7
keine Verwendung der modernsten Konzepte der Datenbindung, d.h. es werden keine kompilierten Bindungen unterstützt
umfassende Werkzeugunterstützung mit Designer in Visual Studio und Visual Studio Blend
Neuerungen des Betriebssystems Windows können nicht immer direkt verwendet werden (Nutzung von Workarounds)
Nutzung der deklarativen Beschreibungssprache XAML für die Erstellung des User Interfaces
Migration auf die Folgetechnologie WinUI 3 mit größeren Anpassungen verbunden
modernes Architekturkonzept auf der Basis des Model View Model-Pattern
umfassende Erweiterung durch zahlreiche User Interface-Controls von Drittanbietern möglich
ausgereifte Technologie
große Community und Verbreitung in der Praxis
Künftig soll die Grafikschnittstelle WinUI 3 der neue Standard für Desktop-Anwendungen werden. Die WinUI 3 liegt jedoch erst in der Produktionsversion 1.* vor. Neben noch zu erwartenden größeren Anpassungen, sind auch noch nicht alle Features vollständig implementiert. Versionen vor Windows 10 werden nicht unterstützt und bisher dürften nur wenige produktiv eingesetzte Anwendungen mit Nutzung der WinUI 3 existieren. Ebenso stellen die Drittanbieter der User-Interface-Controls ihre Komponenten-Bibliotheken erst sukzessive um.
Aus heutiger Sicht spricht daher vieles dafür, Desktop-Anwendungen mit Microsoft Technologien mit der WPF zu erstellen. Existiert eine solche Anwendung bereits, dann sollte sogar eine Migration vom klassischen .NET-Framework (.NET 4.*) nach .NET 6 (ehemals .NET-Core) erwogen werden.
Das User Interface
Dieses spielt aus Sicht der Anwenderinnen und Anwender eine große Rolle. Es muss den Anforderungen in funktioneller Sicht und in Fragen des Designs (User Experience) entsprechen. Die WPF-Entwicklungsplattform unterstützt eine breite Palette an Entwicklungsfeatures. Dazu gehören die Vorgabe eines Anwendungsmodells, die Nutzung von Ressourcen, die Bereitstellung von visuellen Controls, die Verwendung von weiteren grafischen Elementen und Layoutcontainern und Konzepte für die Architektur, inklusive Datenbindung usw.
Mit dem .NET-Framework steht eine leistungsfähige Klassenbibliothek zur Verfügung, welche für zahlreiche Programmieranforderungen bereits fertige Klassen aus allen Bereichen der Anwendungsentwicklung bietet. Die Technologie ist zwar ausgereift, wirkt jedoch in Bezug auf das Design etwas altbacken, denn sie hat eben schon ein paar Jahre auf den „Buckel“.
Ein umfassendes „Facelift“ erfährt die Technologie durch den Einsatz von integrierten und modernen Komponenten. Damit können unterschiedlichste Kundenwünsche leicht implementiert werden. Die eingesetzten Controls bieten ein umfangreiches Funktionsspektrum und ein modernes Look and Feel. Mit anderen Worten: Die Apps können auf diese Weise funktionell und designtechnisch auf die Höhe der Zeit gebracht werden. Diverse Komponentenhersteller bieten eine breite Palette an WPF-Komponenten, welche sich für zahlreiche Anwendungsfälle eignen.
Wiederverwendung für eine hohe Effizienz der Entwicklung
Durch den Einsatz von (visuellen) Komponenten kann die Entwicklungszeit einer Applikation signifikant reduziert werden, d.h. die Time to Market wird deutlich verkürzt. Komponenten stehen dabei für eine Vielzahl von Einsatzzwecken zur Verfügung. Darunter befinden sich sowohl Komponenten für allgemeine Anforderungen, welche in nahezu jeder Applikation benötigt werden, als auch Komponenten für speziellere Aufgaben. Die folgende Übersicht gibt einen Überblick über Einsatzbereiche (Anforderungen) und zeigt welche Komponenten der Hersteller verwendet werden können.
PDF Viewer, Spreadsheet, RichTextBox, ExpressionEditor
PDF Viewer, Spell Checker, Application Themes
Wie man ein User Interface-Control in einer neuen bzw. bestehenden WPF-Applikation verwenden kann, soll nachfolgend gezeigt werden.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.
Eine Komponente für Projekt- und Zeitplanung
Für dieses Beispiel wird die RadScheduleView-Komponente von Telerik verwendet. Mit Hilfe dieser visuellen Komponente ist es möglich eine interaktive Zeit- und Projektplanung in die eigene Anwendung zu integrieren. In einer kalenderähnlichen Darstellung können Zeitpunkte, Termine, Intervalle usw. angezeigt werden.
Unterschiedliche Ansichten (Tage, Woche, Monat, Zeitleiste) können ausgewählt werden. Ebenso ist eine interaktive und intuitive Bearbeitung der Termine mittels Drag & Drop möglich. Für eine Synchronisation der darzustellenden Termine und Informationen mit der Datenbasis wird die RadScheduleView-Komponente üblicherweise mittels Datenbindung an die Objekte im Quellcode gebunden.
Voraussetzungen
Es wird nachfolgend davon ausgegangen, dass es um die Integration der Scheduling-Komponente in eine bestehende oder neue WPF-Applikation geht. Als Entwicklungsumgebung wird Visual Studio verwendet. Wie eingangs dargestellt, gibt es zwei grundsätzlich unterschiedliche Varianten in Abhängigkeit der .NET-Framework-Version.
Die Komponente RadScheduleView lässt sich sowohl für das ursprüngliche (klassische) .NET-Framework (bis Version 4.8), als auch für die moderne Version .NET 6 verwenden. Funktionell macht es keinen Unterschied. Es muss lediglich die korrekte Version installiert werden.
Installation und Einrichtung
Es gibt mehrere Varianten eine Komponente in einem WPF-Projekt zu verwenden. Zum einem können die Bibliotheken auf dem lokalen Entwicklungssystem bereitgestellt werden, zum anderen kann ein Verweis auf die Bibliothek direkt im Projekt eingebunden werden. Die letzte Variante ist üblich und nutzt in Visual Studio den Paketmanager NuGet. Hierüber werden über den Server die WPF-Komponenten des Herstellers zur Verfügung gestellt. Nach der Einbindung der Bibliothek im Projekt kann diese direkt in einem Fenster der Anwendung verwendet werden.
Verwendung
In WPF wird das User Interface mittels XAML-Code deklariert. Für eine Nutzung der Scheduling-Komponente ist der Verweis auf die Bibliothek notwendig und dann kann diese direkt verwendet werden:
Scheduling-Komponente, Wochenansicht und Eingabe eines Termins.
(Bild: Krypzyk / Microsoft)
Die Komponente wird mit Ihren Namen (RadScheduleView) eingebunden und dann über die Zuweisung von Werten an ausgewählte Eigenschaften konfiguriert. Ebenso erfolgt eine Bindung an die Daten für die darzustellenden Ereignisse (Termine) über die Eigenschaft AppointmentsSource. Über integrierte Dialoge kann der Anwender beispielsweise einen Termin eingeben. Zusätzlicher Code ist dazu nicht notwendig.
Scheduling-Komponente, Tagesansicht und Theming.
(Bild: Krypczyk / Microsoft)
Die Komponente bietet unterschiedliche Ansichten (Tag, Woche, Monat, …). Eine Ansicht kann über die Zuweisung einer Eigenschaft im XAML- und / oder C#-Quellcode aktiviert werden. Ebenso kann man das Design über die Zuweisung von Themen umfassend anpassen.
Weitere interessante und in der Praxis häufig gebrauchte Features sind beispielsweise die Möglichkeit der Sprach- und Formatanpassung, d.h. Lokalisierung und Globalisierung. Damit kann die Komponente auch in mehrsprachigen Anwendungen verwendet werden. Für die Nutzung von externen Daten und den Datenaustausch mit anderen Anwendungen nutzt man die Im- und Exportfunktionen. Dazu wird das übliche Kalenderformat (ics) verwendet. Im Quellcode stellt sich das wie folgt dar:
using (StreamReader reader = File.OpenText("myfile.ics")) { var importer = new AppointmentCalendarImporter(); var appointments = importer.Import(reader); this.scheduleView.AppointmentsSource = appointments; }
In diesem Fall werden Termine von der Datei myfile.ics importiert, der Datenliste appointments hinzugefügt und dann in der Scheduling-Komponente angezeigt.
Fazit und Ausblick
Komponenten als wichtige Bausteine einer Applikation.
(Bild: Krypczyk)
Komponenten für das User Interface erfüllen wichtige Aufgaben. Sie stellen Funktionalität bereit, deren eigene Implementierung sehr aufwändig wäre. Sie sind somit wichtige Bausteine einer modernen Applikation – hier dargestellt am Beispiel einer WPF-Desktop Anwendung. Durch den vielfachen Einsatz sind diese i.d.R. von hoher Qualität. Ebenso gelingt es auf diese Weise das Design der Anwendung modern zu gestalten.