Eine Übersicht über die Windows-Entwicklungsoptionen
Artikel
Dieser Artikel enthält die Informationen, die Sie benötigen, um mit dem Erstellen von Apps für die Windows-Desktopumgebung zu beginnen.
Windows bietet eine Vielzahl von Optionen zum Erstellen von Apps, einschließlich C++, .NET und anderen neuen Technologien wie Open Source-Tools in WSL und Rust. So viel Auswahl kann am Anfang überwältigend sein.
Die Windows-UI-Bibliothek 3 (WinUI) ist das neueste Benutzeroberflächenframework für Windows-Desktop-Apps, einschließlich verwalteter Apps, die C# und .NET verwenden, sowie nativer Apps, die C++ mit der Win32-API verwenden. Es befindet sich noch in einer sehr aktiven Entwicklungsphase, sodass es derzeit zwar vielleicht nicht alle Ihre Anforderungen erfüllen kann, aber es wird mit jedem neuen Release weiterentwickelt.
Durch die Integration des Fluent Design-Systems in alle Benutzeroberflächen-Steuerelemente und Stile bietet WinUI unter Verwendung der neuesten Benutzeroberflächenmuster einheitliche, intuitive und zugängliche Benutzerumgebungen. WinUI 3 ist als Teil des Windows App SDK verfügbar. Das Windows-App SDK bietet einen einheitlichen Satz von APIs und Tools, die von jeder C++ Win32- oder C# .NET-App auf einer breiten Palette von Zielversionen des Windows-Betriebssystems auf konsistente Weise verwendet werden können.
Win32-Desktop-Apps (auch als klassische Desktop-Apps bezeichnet) sind der ursprüngliche App-Typ für native Windows-Anwendungen, die direkten Zugriff auf Windows und Hardware erfordern. Dies macht diesen App-Typ zur ersten Wahl für Anwendungen, die das höchste Maß an Leistung und den direkten Zugriff auf die Systemhardware benötigen.
Durch Verwendung der Win32-API mit C++ können Sie höchste Leistung und Effizienz erzielen, indem Sie über die Zielplattform mit nicht verwaltetem Code mehr Kontrolle erhalten, als dies in einer verwalteten Laufzeitumgebung wie WinRT und .NET möglich ist. Einen solchen Grad an Kontrolle über die Ausführung Ihrer Anwendung auszuüben, setzt jedoch größere Sorgfalt und Aufmerksamkeit voraus, um Fehler zu vermeiden, und tauscht Entwicklungsproduktivität gegen Laufzeitleistung ein.
Hier finden Sie einige Highlights der Win32-API mit C++, die Ihnen die Erstellung von Hochleistungsanwendungen ermöglichen.
Optimierungen auf Hardwareebene, einschließlich strenger Kontrolle der Ressourcenzuordnung, Objektlebensdauer, Datenlayout, Ausrichtung, Bytepakete und mehr.
Zugriff auf leistungsorientierte Anweisungssätze wie SSE und AVX durch intrinsische Funktionen.
Effiziente, typsichere generische Programmierung mithilfe von Vorlagen.
Effiziente und sichere Container und Algorithmen.
DirectX, insbesondere Direct3D und DirectCompute (Hinweis: UWP bietet ebenfalls DirectX-Interoperabilität).
Verwenden Sie C++/WinRT, um moderne Win32-Desktop-Apps mit erstklassigem Zugriff auf Windows-Runtime-APIs (WinRT) zu erstellen.
Sie haben auch Zugriff auf moderne Windows-Plattformfeatures und -APIs, die vom Windows App SDK bereitgestellt werden. Weitere Informationen finden Sie unter Modernisieren Ihrer Desktop-Apps.
WPF ist eine gut etablierte Plattform für verwaltete Windows-Anwendungen mit Zugriff auf .NET oder das .NET Framework und verwendet ebenfalls XAML-Markup, um die Benutzeroberfläche vom Code zu trennen. Diese Plattform wurde für Desktopanwendungen entwickelt, für die eine ausgereifte Benutzeroberfläche, die Anpassung von Formatvorlagen sowie grafikintensive Szenarien erforderlich sind. Die WPF-Entwicklungsfunktionen ähneln den WinUI 3-Entwicklungsfunktionen, sodass die Migration von WPF zu WinUI 3 einfacher ist als die Migration von Windows Forms.
Sie haben auch Zugriff auf moderne Windows-Plattformfeatures und -APIs, die vom Windows App SDK bereitgestellt werden. Weitere Informationen finden Sie unter Modernisieren Ihrer Desktop-Apps.
Windows Forms ist die ursprüngliche Plattform für verwaltete Windows-Anwendungen mit einem einfachen Benutzeroberflächenmodell und Zugriffsmöglichkeit auf das gesamte .NET oder das .NET Framework. Es ist hervorragend geeignet, Entwickler einen schnellen Einstieg in die Entwicklung von Anwendungen zu ermöglichen, auch für Entwickler, die noch keine Erfahrungen mit der Plattform haben. Es handelt sich um eine formularbasierte, schnelle Anwendungsentwicklungsplattform mit einer großen integrierten Sammlung von visuellen und nicht visuellen Drag & Drop-Steuerelementen. Windows Forms verwendet kein XAML. Wenn Sie also später beschließen, die Anwendung für WinUI 3 neu zu schreiben, müssen Sie die Benutzeroberfläche vollständig neu schreiben.
Sie haben auch Zugriff auf moderne Windows-Plattformfeatures und -APIs, die vom Windows App SDK bereitgestellt werden. Weitere Informationen finden Sie unter Modernisieren Ihrer Desktop-Apps.
Die Universelle Windows-Plattform (UWP) bietet ein allgemeines Typensystem, APIs und Anwendungsmodell für alle Geräte auf der universellen Windows-Plattform. Nicht nur können Sie UWP zum Erstellen von Desktopanwendungen für Windows-PCs verwenden. UWP ist auch die einzige unterstützte Plattform zum Schreiben einzelner universeller Apps, die auf Xbox-, HoloLens- und Surface Hub-Anwendungen ausgeführt werden können. UWP-Apps können native oder verwaltet sein.
UWP ist eine hochgradig anpassbare Plattform, die XAML-Markup verwendet, um die Benutzeroberfläche (Darstellung) vom Code (Geschäftslogik) zu trennen. UWP eignet sich für Desktop-Apps, für die eine ausgereifte Benutzeroberfläche, die Anpassung von Formatvorlagen sowie grafikintensive Szenarien erforderlich sind. UWP verfügt zudem über eine integrierte Unterstützung für das Fluent Design-System für die Standard-UX-Erfahrung und ermöglicht den Zugriff auf die Windows-Runtime-APIs (WinRT).
Sie haben keinen Zugriff auf die APIs, die vom Windows App SDK bereitgestellt werden. Um das Windows App SDK zu verwenden, müssen Sie Ihre UWP-App zu WinUI 3 migrieren. Weitere Informationen finden Sie unter Windows App SDK.
Plattformübergreifende Optionen
WinUI dient auch als Basis für plattformübergreifende Technologien, die großartige native Windows-Erfahrungen mit einer Vielzahl von Codierungssprachen bieten. .NET MAUI und React Native für Windows nutzen die Leistungsfähigkeit von WinUI unter Windows und ermöglichen gleichzeitig die Ausführung unter anderen Betriebssystemen. Als weitere plattformübergreifende Option sind Progressive Web-Apps (PWAs) Websites, die wie installierte, native Apps unter Windows und anderen unterstützten Plattformen funktionieren, während sie wie normale Websites in Browsern verwendet werden können.
.NET Multi-Platform App UI (MAUI) ist ein plattformübergreifendes Open Source-Framework zum Erstellen von Android-, iOS-, macOS- und Windows-Anwendungen, die die native Benutzeroberfläche und die Dienste jeder Plattform aus einer einzigen .NET-Codebasis nutzen. Da .NET MAUI plattformnative Benutzeroberflächen bevorzugt, werden WinUI 3 und das Windows App SDK verwendet, damit Apps die neueste Benutzererfahrung auf Windows erhalten. Dadurch erhalten Ihre Apps Zugriff auf alles, was mit WinUI 3 verfügbar ist, sowie die Möglichkeit, andere Plattformen zu erreichen.
.NET MAUI für Windows ist eine gute Wahl, wenn Folgendes zutrifft:
Sie möchten so viel .NET-Code wie möglich für mobile Anwendungen und Desktopanwendungen gemeinsam nutzen.
Sie möchten Ihre Anwendung über Windows hinaus an andere mobile und Desktopziele mit nativen Plattformerfahrungen ausliefern.
Sie möchten C# und/oder XAML zum Erstellen plattformübergreifender Apps verwenden.
Sie verwenden Blazor für die Webentwicklung und möchten dies vollständig oder teilweise in eine mobile oder Desktopanwendung einschließen.
Progressive Web-Apps (PWAs) ermöglichen den Zugriff auf offene Webtechnologien, um plattformübergreifende Interoperabilität zu ermöglichen. PWAs bieten Ihren Benutzern eine App-ähnliche Benutzeroberfläche, die für ihre Geräte angepasst ist. PWAs sind Websites, die schrittweise optimiert werden, um wie installierte, native Apps auf unterstützenden Plattformen (einschließlich Windows) zu funktionieren, während sie wie normale Websites in Browsern verwendet werden können.
Wenn sie unter Windows installiert werden, entsprechen PWAs anderen Apps. Beispiel:
Eine PWA kann zum Startmenü hinzugefügt werden.
Eine PWA kann an die Taskleiste angeheftet werden.
PWAs können Dateien verarbeiten.
PWAs können ausgeführt werden, wenn sich der Benutzer anmeldet.
PWAs können an den Microsoft Store übermittelt werden, wo Millionen von Windows-Benutzern sie zusammen mit anderen Windows-Apps entdecken und problemlos installieren können.
React Native ist eine Entwicklungsplattform, mit der Sie plattformübergreifende Apps erstellen können.
React Native für Windows bietet React Native-Unterstützung für Windows 10 und Windows 11 SDKs. Damit können Sie mit JavaScript native Windows-Apps für alle von Windows 10 und Windows 11 unterstützten Geräte erstellen. Dies schließt PCs, Tablets, 2-in-1-Geräte, Xbox, Mixed Reality-Geräte usw. ein.
Mit React Native für Windows schreiben Sie den Großteil des Codes oder den gesamten Code Ihrer App in JavaScript (oder TypeScript), und das Framework erzeugt eine native UWP-XAML-Anwendung. Wenn Ihre App eine Plattform-API aufrufen muss, können Sie dazu in der Regel eines der vielen Communitymodule verwenden, oder wenn noch kein Modul existiert, können Sie einfach ein natives Modul schreiben und bereitstellen.
Hier sind einige Gründe für die Auswahl von React Native für Windows:
Sie möchten Code so weit wie möglich plattformübergreifend teilen, oder Sie verfügen über Webeigenschaften, für die Sie Code freigeben möchten.
Verbesserte Entwicklerproduktivität und innere Schleife dank schneller Aktualisierung.
Die Grundlagen Ihrer App (Leistung, Barrierefreiheit, Internationalisierung) sind genauso gut wie bei einer nativen UWP-App.
Sie verfügen über Erfahrung mit JavaScript oder TypeScript und bevorzugen diese Sprache.
Sie möchten reine JavaScript-Bibliotheken für npmjs.com und auch viele native Bibliotheken nutzen.
Ihre App verwendet die nativen Steuerelemente, die visuelle Darstellung, Animationen und Farben und wirkt daher wie integriert in die in Windows verwendete Entwurfssprache. Darüber hinaus müssen React Native für Windows-Apps keine Kompromisse bei der Anzahl der APIs eingehen, die sie aufrufen können, da das Framework sowohl den Aufruf von Plattform-APIs als auch das Schreiben eigener Ansicht-Manager und nativer Module ermöglicht.
Große und wachsende Community-Dynamik mit vielen Communitymodulen.
Die Quelle für diesen Inhalt finden Sie auf GitHub, wo Sie auch Issues und Pull Requests erstellen und überprüfen können. Weitere Informationen finden Sie in unserem Leitfaden für Mitwirkende.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter https://aka.ms/ContentUserFeedback.