Omówienie opcji platformy
Ten artykuł zawiera informacje potrzebne do rozpoczęcia tworzenia aplikacji dla systemu Windows.
System Windows oferuje szeroką gamę języków, struktur i narzędzi do tworzenia aplikacji, w tym WinUI, React Native for Desktop, WPF, C++, C#, .NET i różnych platform międzyplatformowych. W tym miejscu udostępniamy informacje ułatwiające podjęcie decyzji, która opcja jest dla Ciebie najlepsza.
WinUI
Zalecamy używanie interfejsu WinUI i zestawu SDK aplikacji systemu Windows, aby tworzyć aplikacje, które wyglądają świetnie i korzystają z najnowszych wersji systemu Windows. Jeśli dopiero zaczynasz pracę nad tworzeniem aplikacji systemu Windows lub rozpoczynasz pracę nad nową aplikacją systemu Windows, platforma WinUI udostępnia zasoby potrzebne do tworzenia wspaniałych aplikacji dla systemu Windows 11.
WinUI to warstwa interfejsu użytkownika oparta na języku XAML, która zawiera nowoczesne kontrolki i style do tworzenia aplikacji systemu Windows. Jako natywna warstwa interfejsu użytkownika dla zestawu SDK aplikacji systemu Windows, uosabia Fluent Design, nadając każdej aplikacji systemu Windows dopracowany wygląd, którego oczekują klienci.
Notatka
Zestaw zestawu SDK aplikacji systemu Windows
Chociaż winUI jest natywną warstwą interfejsu użytkownika, można użyć zestawu SDK aplikacji systemu Windows z aplikacjami WPF, WinForms lub Win32. Jeśli wcześniej stworzyłeś aplikacje dla systemu Windows, ale chcesz rozpocząć pracę z Windows App SDK w istniejącej aplikacji, zobacz przewodniki specyficzne dla platformy .
React Native for Desktop
React Native to platforma programistyjna umożliwiająca tworzenie aplikacji międzyplatformowych. React Native for Desktop obejmuje platformę React Native dla systemów Windows i macOS, zapewniając obsługę platformy React Native dla zestawu Windows SDK. Platforma React Native for Desktop umożliwia tworzenie natywnych aplikacji systemu Windows dla wszystkich urządzeń obsługiwanych przez systemy Windows 10 i Windows 11 przy użyciu języka JavaScript. Obejmuje to komputery, tablety, 2-in-1, konsolę Xbox, urządzenia rzeczywistości mieszanej itp.
Za pomocą oprogramowania React Native for Desktop piszesz większość lub cały kod aplikacji w języku JavaScript lub TypeScript — a platforma tworzy natywną aplikację XAML platformy UWP. Jeśli aplikacja musi wywołać interfejs API platformy, zazwyczaj można to zrobić za pomocą jednego z wielu modułów społeczności lub jeśli moduł jeszcze nie istnieje, możesz łatwo napisać moduł macierzysty, aby uwidocznić go.
Oto kilka powodów, dla których należy wybrać platformę React Native dla programu Desktop:
- Chcesz w jak największym stopniu udostępniać kod na różnych platformach lub masz aplikacje internetowe, z którymi chcesz się podzielić kodem.
- Zwiększona produktywność deweloperów i pętla wewnętrzna dzięki szybkiemu odświeżaniu.
- Podstawy aplikacji (wydajność, ułatwienia dostępu, internacjonalizacja) są tak dobre jak natywna aplikacja platformy UWP.
- Masz doświadczenie w języku JavaScript lub TypeScript i preferujesz któryś z tych języków.
- Chciałbyś skorzystać z bibliotek wyłącznie JavaScript dostępnych na npmjs.com, a także z wielu bibliotek natywnych.
- Aplikacja będzie używać natywnych kontrolek, wyglądu wizualnego, animacji i kolorów, a zatem będzie czuć się zintegrowana z językiem projektowania używanym w systemie Windows. Ponadto aplikacje React Native for Desktop nie muszą naruszać zestawu interfejsów API, które mogą wywoływać, ponieważ platforma umożliwia wywoływanie interfejsów API platformy, a także pisanie własnych menedżerów widoków i modułów natywnych.
- Duża i rosnąca dynamika społeczności, z wieloma modułami społeczności .
Aby uzyskać więcej informacji na temat oprogramowania React Native for Desktop, zobacz następujące linki:
- React Native for Windows repo on GitHub
- repozytorium React Native dla systemu macOS w witrynie GitHub
- dokumentacja interfejsu API
- React Native for Desktop zasoby
WPF
WPF to uznana platforma dla aplikacji pulpitowych systemu Windows z dostępem do .NET lub .NET Framework. Podobnie jak winUI, używa również znaczników XAML do oddzielenia interfejsu użytkownika od kodu. WPF udostępnia kompleksowy zestaw funkcji tworzenia aplikacji, które obejmują kontrolki, powiązanie danych, układ, grafikę 2D i 3D, animację, style, szablony, dokumenty, multimedia, tekst i typografię. WPF jest częścią platformy .NET, więc można tworzyć aplikacje, które zawierają inne elementy interfejsu API platformy .NET.
Ponadto możesz teraz zintegrować środowisko piaskownicy ze spakowaną aplikacją WPF, zapewniając dodatkową warstwę zabezpieczeń. To ulepszenie wymaga niewiele zmian w kodzie dzięki nowej funkcji izolacji aplikacji Win32.
Napiwek
Jeśli zainwestowano już w WPF, możesz nadal z niego korzystać i korzystać z opcji modernizacji na platformie .NET 9. Możesz tworzyć swoje aplikacje, wiedząc, że firma Microsoft nadal inwestuje w WPF. Aby uzyskać więcej informacji, zobacz często zadawane pytania dla deweloperów systemu Windows.
Jeśli masz aplikację WPF .NET, masz również dostęp do nowoczesnych funkcji i interfejsów API platformy Windows udostępnianych przez zestaw SDK aplikacji systemu Windows . Aby uzyskać więcej informacji, zobacz Użyj Windows App SDK w aplikacji WPF oraz Modernizuj swoje aplikacje desktopowe.
Napiwek
Jeśli potrzebujesz więcej pomocy przy podejmowaniu decyzji, który framework jest najlepszym wyborem dla Twojej aplikacji, zobacz Wybierz najlepszy framework aplikacji dla projektu programowania dla systemu Windows moduł szkoleniowy.
Inne opcje platformy natywnej
Wiele aplikacji dla systemu Windows jest pisanych przy użyciu Win32, Windows Formslub uwP. Każde z tych frameworków jest obsługiwane i będzie nadal otrzymywać poprawki błędów, niezawodności i zabezpieczeń, ale inwestycje w nowe funkcje i style będą się różniły poziomem. Aby uzyskać więcej informacji na temat tych typów aplikacji, zobacz następujące karty.
Aplikacje klasyczne Win32 (czasami nazywane klasyczne aplikacje klasyczne) są oryginalnym typem aplikacji dla natywnych aplikacji systemu Windows, które wymagają bezpośredniego dostępu do systemu Windows i sprzętu. Dzięki temu win32 typ aplikacji jest wybierany dla aplikacji wymagających najwyższego poziomu wydajności i bezpośredniego dostępu do sprzętu systemu.
Użycie interfejsu API Win32 z językiem C++ umożliwia osiągnięcie najwyższych poziomów wydajności i efektywności przez przejęcie większej kontroli nad platformą docelową za pomocą kodu niezarządzanego niż jest to możliwe w środowisku uruchomieniowym zarządzanym, jak WinRT i .NET. Jednak sprawowanie takiego poziomu kontroli nad wykonaniem aplikacji wymaga większej staranności i uwagi, aby osiągnąć właściwy rezultat, a zamienia produktywność programowania na wydajność w czasie wykonywania.
Poniżej przedstawiono kilka najważniejszych informacji o tym, co oferuje interfejs API Win32 i język C++, aby umożliwić tworzenie aplikacji o wysokiej wydajności.
- Optymalizacje na poziomie sprzętu, w tym ścisła kontrola nad alokacją zasobów, okresami istnienia obiektów, układem danych, wyrównaniem, pakowaniem bajtów i nie tylko.
- Dostęp do zestawów instrukcji zorientowanych na wydajność, takich jak SSE i AVX, za pomocą funkcji wewnętrznych.
- Wydajne, bezpieczne dla typów programowanie ogólne przy użyciu szablonów.
- Wydajne i bezpieczne kontenery i algorytmy.
- DirectX, w szczególności Direct3D i DirectCompute.
- Użyj C++/WinRT, aby utworzyć nowoczesne aplikacje klasyczne Win32 z najwyższej klasy dostępem do interfejsów API środowiska Uruchomieniowego systemu Windows (WinRT).
Ponadto możesz teraz zintegrować środowisko piaskownicy z aplikacjami Win32, zapewniając dodatkową warstwę zabezpieczeń. Dzięki nowej, bezpiecznej funkcji izolacji aplikacji Win32 , to ulepszenie wymaga niewielkich lub żadnych zmian w Twoim kodzie.
Masz również dostęp do nowoczesnych funkcji i interfejsów API platformy Windows udostępnianych przez zestaw SDK aplikacji systemu Windows . Aby uzyskać więcej informacji, zobacz Użyj Windows App SDK w istniejącym projekcie oraz Zmodernizuj swoje aplikacje desktopowe.
Inne opcje międzyplatformowe
Jeśli aplikacja musi być międzyplatformowa, oprócz oprogramowania React Native for Desktop, należy rozważyć MAUI platformy .NET lub Progresywna aplikacja internetowa (PWA). Dostępnych jest wiele innych opcji (poniżej znajduje się lista popularnych opcji), ale są to kilka dobrych punktów wyjścia.
Program .NET MAUI wykorzystuje możliwości winUI w systemie Windows, a jednocześnie umożliwia wykonywanie w innych systemach operacyjnych. Kolejną opcją międzyplatformową Progresywne aplikacje internetowe (PWA) są witryny internetowe, które działają jak zainstalowane, aplikacje natywne w systemie Windows i inne obsługiwane platformy, a jednocześnie działają jak zwykłe witryny internetowe w przeglądarkach.
Aby uzyskać więcej informacji, zobacz następujące karty.
Interfejs użytkownika aplikacji wieloplatformowych platformy .NET (MAUI) to wieloplatformowa platforma typu open source do tworzenia aplikacji dla systemów Android, iOS, macOS i Windows, które korzystają z natywnego interfejsu użytkownika i usług każdej platformy z jednej bazy kodu platformy .NET. Ponieważ platforma .NET MAUI faworyzuje natywne środowiska platformy, używa interfejsu WinUI i zestawu SDK aplikacji systemu Windows, dzięki czemu aplikacje uzyskują najnowsze środowisko użytkownika w systemie Windows. Zapewnia to aplikacjom dostęp do wszystkiego, co otrzymujesz za pomocą interfejsu WinUI, oraz możliwość dotarcia do innych platform.
Program .NET MAUI dla systemu Windows jest doskonałym wyborem, jeśli:
- Chcesz udostępnić jak najwięcej kodu platformy .NET w aplikacjach mobilnych i klasycznych.
- Chcesz udostępnić swoją aplikację nie tylko na system Windows, ale także na inne platformy stacjonarne i mobilne, zapewniając natywną obsługę tych platform.
- Chcesz użyć języka C# i/lub XAML do tworzenia aplikacji międzyplatformowych.
- Używasz Blazor do tworzenia aplikacji webowych i chcesz uwzględnić całość lub część tej aplikacji w aplikacji mobilnej lub stacjonarnej.
Aby uzyskać więcej informacji na temat interfejsu MAUI platformy .NET, zobacz następujące linki:
- Dokumentacja platformy .NET MAUI
- .NET MAUI w witrynie GitHub
- harmonogram działania produktu .NET MAUI
- tworzenie aplikacji systemu Windows przy użyciu .NET MAUI
- Zasoby do nauki .NET MAUI
- seria wideo — .NET MAUI dla początkujących
- Build 2022: Tworzenie aplikacji natywnych dla dowolnego urządzenia przy użyciu platformy .NET i programu Visual Studio
Porównanie funkcji platformy programowania aplikacji
Istnieje wiele opcji tworzenia aplikacji dla systemu Windows. Najlepsza opcja zależy od wymagań aplikacji, istniejącego kodu i znajomości technologii. W poniższej tabeli wymieniono najpopularniejsze struktury programistyczne aplikacji dostępne w systemie Windows oraz funkcje obsługiwane przez każdą platformę.
Funkcja | .NET MAUI | Blazor Hybrid | React Native for Desktop | UWP XAML (Windows.UI.Xaml) | Win32 (MFC lub ATL) | Formularze systemu Windows | WinUI 3 | WPF |
---|---|---|---|---|---|---|---|---|
Język | C# | C# | JavaScript, TypeScript | C#, C++, Visual Basic | C++, Rust | C#, Visual Basic | C#, C++ | C#, Visual Basic |
język interfejsu użytkownika | XAML/Code | Brzytwa | JSX | XAML | Kod | Kod | XAML | XAML |
projektant interfejsu użytkownika Przeciągnij & i upuść |
❌ | ❌ | ❌ | ✅ | ❌ | ✅ | ❌ | ✅ |
debugowanie interfejsu użytkownika | przeładowywanie na gorąco | przeładowywanie na gorąco | Szybkie Odświeżanie | przeładowywanie na gorąco | - | przeładowywanie na gorąco | przeładowywanie na gorąco | Gorące przeładowanie |
Płynny Design | ✅ | ✅ | ✅ | ✅ (poprzez WinUI 2) | ❌ | ❌ | ✅ | ❌ |
.NET | .NET | .NET | N/A | .NET Core & .NET Native | N/A | .NET & .NET Framework | .NET | .NET & .NET Framework |
zestaw SDK aplikacji systemu Windows | ✅ (więcej informacji) | ✅ za pośrednictwem MAUI | ✅ (więcej informacji) | ❌ | ✅ | ✅ (więcej informacji) | ✅ | ✅ (więcej informacji) |
Świetne do ekranów dotykowych | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ |
międzyplatformowe | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
aplikacje Xbox/HoloLens | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
Piaskownica (AppContainer) | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
Obecnie obsługiwane | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Otrzymywanie aktualizacji | ✅ | ✅ | ✅ | ✅ (poprawki usterek & zabezpieczeń) | ✅ | ✅ | ✅ | ✅ |
harmonogram działania | GitHub | GitHub | GitHub | N/a | N/a | GitHub | GitHub | GitHub |
Dowiedz się więcej o każdej z tych opcji:
- Deweloper systemu Windows — często zadawane pytania
- .NET Multi-platform App UI (.NET MAUI)
- ASP.NET Core Blazor Hybrid
- React Native for Desktop (na komputery stacjonarne)
- Uniwersalna platforma Windows (UWP)
- Zalecenia dotyczące wyboru między ATL i MFC
- Windows Forms
- Windows Presentation Foundation (WPF)
- WinUI w zestawie SDK aplikacji systemu Windows (WinUI 3)
Następne kroki
-
rozpoczynanie tworzenia aplikacji dla systemu Windows za pomocą interfejsu WinUI
WinUI jest naszą zalecaną platformą dla aplikacji systemu Windows, a te kroki szybko pomogą Ci rozpocząć pracę.
-
Konfigurowanie środowiska deweloperskiego w systemie Windows
System Windows nie jest po prostu doskonały do tworzenia aplikacji uruchamianych w systemie Windows. Jest to również zaawansowane środowisko do tworzenia aplikacji dla dowolnej platformy. Dowiedz się więcej o narzędziach i opcjach dostępnych w celu zmaksymalizowania programowania.