Udostępnij przez


Wybieranie struktury aplikacji

Ten artykuł zawiera informacje potrzebne do rozpoczęcia tworzenia aplikacji dla systemu Windows i wybierania struktury interfejsu użytkownika, która pasuje do zestawu umiejętności i scenariusza.

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.

Interfejs użytkownika WinUI

Logo WinUI.

Użyj 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 wrażenie dopracowania, którego oczekują klienci.

Notatka

Zestaw zestawu SDK aplikacji systemu Windows to zestaw nowych składników i narzędzi deweloperskich reprezentujących najnowszą ewolucję platformy deweloperskich aplikacji systemu Windows. Zestaw SDK aplikacji systemu Windows udostępnia ujednolicony zestaw interfejsów API i narzędzi, których aplikacje pulpitowe w systemie Windows 11 i działa także z systemem Windows 10, wersja 1809, mogą używać w jednolity sposób.

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 utworzono aplikacje dla systemu Windows, ale chcesz rozpocząć pracę z zestawem SDK aplikacji systemu Windows w istniejącej aplikacji, zobacz Przewodniki dotyczące platformy.

React Native dla komputerów stacjonarnych

React Native to platforma programowa , która umożliwia tworzenie aplikacji międzyplatformowych. Rozwiązanie React Native for Desktop obejmuje oprogramowanie 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. Ta obsługa obejmuje komputery, tablety, urządzenia 2-w-1, konsole Xbox, urządzenia mieszanej rzeczywistości oraz inne.

Za pomocą oprogramowania React Native for Desktop piszesz większość lub cały kod aplikacji w języku JavaScript lub TypeScript. Struktura 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. Jeśli moduł jeszcze nie istnieje, możesz łatwo napisać moduł macierzysty, aby go uwidocznić.

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 i preferencje dotyczące JavaScript lub TypeScript.
  • Chcesz również korzystać z bibliotek języka JavaScript w npmjs.com i wielu bibliotek natywnych.
  • Aplikacja używa natywnych kontrolek, wyglądu wizualnego, animacji i kolorów, dzięki czemu jest zintegrowana z językiem projektowania używanym w systemie Windows. Ponadto aplikacje React Native dla komputerów stacjonarnych nie muszą iść na kompromis w kwestii zestawu API, które mogą wywoływać. 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:

WPF

WPF to dobrze ugruntowana struktura dla aplikacji klasycznych systemu Windows z dostępem do platformy .NET lub programu .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 spakowanymi aplikacjami WPF, zapewniając dodatkowy poziom zabezpieczeń. To ulepszenie wymaga niewielkiej ilości zmian w kodzie dzięki nowej funkcji zabezpieczeń izolacji aplikacji Win32 .

Napiwek

Jeśli już zainwestowano 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żywanie zestawu SDK aplikacji Windows w aplikacji WPF i Unowocześnij swoje aplikacje klasyczne.

Napiwek

Jeśli potrzebujesz więcej pomocy przy podejmowaniu decyzji, która struktura jest najlepszym wyborem dla aplikacji, zobacz moduł szkoleniowy Wybieranie najlepszej struktury aplikacji dla projektu deweloperów systemu Windows .

Inne opcje platformy natywnej

Wiele aplikacji dla systemu Windows jest pisanych przy użyciu systemu Win32, Windows Forms lub UWP. Każda z tych ram jest wspierana i nadal otrzymuje aktualizacje poprawek błędów, niezawodności i zabezpieczeń, ale na różnym poziomie inwestowania w nowe funkcje i style. Aby uzyskać więcej informacji na temat tych typów aplikacji, zobacz następujące karty.

Aplikacje desktopowe Win32 (nazywane również klasycznymi aplikacjami) są pierwotnym rodzajem aplikacji dla natywnych aplikacji systemu Windows, które wymagają bezpośredniego dostępu do systemu Windows i sprzętu. Ten dostęp sprawia, że Win32 jest preferowanym typem aplikacji dla aplikacji wymagających najwyższej wydajności i bezpośredniego dostępu do sprzętu systemowego.

Korzystając z interfejsu API Win32 w języku C++, można osiągnąć najwyższy poziom wydajności i efektywności. Masz większą kontrolę nad platformą docelową z niezarządzanym kodem niż jest to możliwe w zarządzanym środowisku uruchomieniowym, takich 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 języka 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ń. To ulepszenie wymaga niewielkiej ilości zmian w kodzie dzięki nowej funkcji zabezpieczeń izolacji aplikacji Win32 .

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 Use the Windows App SDK in an existing project (Używanie zestawu SDK aplikacji systemu Windows w istniejącym projekcie ) i Modernizuj aplikacje klasyczne.

Inne opcje międzyplatformowe

Jeśli twoja aplikacja musi być międzyplatformowa, oprócz oprogramowania React Native for Desktop, rozważ użycie platformy .NET MAUI, rozwiązania Blazor Hybrid lub progresywnej aplikacji internetowej (PWA). Dostępnych jest wiele innych opcji (oto lista popularnych opcji), ale te opcje są dobrymi punktami wyjścia.

Program .NET MAUI wykorzystuje możliwości winUI w systemie Windows, a jednocześnie umożliwia wykonywanie w innych systemach operacyjnych. Rozwiązanie Blazor Hybrid łączy klasyczne i mobilne platformy klienckie z platformami .NET i Blazor. 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.

Wieloplatformowy interfejs użytkownika aplikacji platformy .NET (MAUI) to wieloplatformowa platforma typu open source do tworzenia aplikacji dla systemów Android, iOS, macOS i Windows. Za pomocą interfejsu MAUI platformy .NET można korzystać z natywnego interfejsu użytkownika i usług każdej platformy z poziomu pojedynczej 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. Takie podejście zapewnia aplikacjom dostęp do wszystkiego, co uzyskujesz dzięki interfejsowi WinUI, oraz możliwości uzyskiwania dostępu 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 systemie Windows, ale także na innych platformach docelowych dla komputerów stacjonarnych i urządzeń mobilnych, oferując natywne doświadczenia platformy.
  • Chcesz używać języka C# i/lub XAML do tworzenia aplikacji międzyplatformowych.
  • Używasz platformy Blazor do tworzenia aplikacji internetowych i chcesz uwzględnić całość lub część tego w aplikacji mobilnej lub klasycznej.

Aby uzyskać więcej informacji na temat interfejsu MAUI platformy .NET, zobacz następujące linki:

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 Hybrydowy React Native dla komputerów stacjonarnych Język XAML platformy UWP (Windows.UI.Xaml) Win32 (MFC lub ATL) Windows Forms WinUI 3 WPF
Język C# C# JavaScript, TypeScript C#, C++, Visual Basic C++, Rdza C#, Visual Basic C#, C++ C#, Visual Basic
Język interfejsu użytkownika XAML/Kod Razor JSX XAML Code Code XAML XAML
Projektant interfejsu użytkownika
Przeciągnij & i upuść
Niewspierane Niewspierane Niewspierane Obsługiwane Niewspierane Obsługiwane Niewspierane Obsługiwane
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 Przeładowywanie na gorąco
Płynny projekt Obsługiwane Obsługiwane Obsługiwane Obsługiwane (za pośrednictwem interfejsu WinUI 2) Niewspierane Niewspierane Obsługiwane Niewspierane
.SIEĆ .NET .NET N/A .NET Core i .NET Native N/A .NET i .NET Framework .NET .NET i .NET Framework
Zestaw SDK aplikacji systemu Windows Obsługiwane (więcej informacji) Obsługiwaneprzez MAUI Obsługiwane (więcej informacji) Niewspierane Obsługiwane Obsługiwane (więcej informacji) Obsługiwane Obsługiwane (więcej informacji)
Doskonałe do dotyku Obsługiwane Obsługiwane Obsługiwane Obsługiwane Niewspierane Niewspierane Obsługiwane Niewspierane
Wieloplatformowy Obsługiwane Obsługiwane Obsługiwane Niewspierane Niewspierane Niewspierane Niewspierane Niewspierane
Aplikacje Xbox/HoloLens Niewspierane Niewspierane Obsługiwane Obsługiwane Niewspierane Niewspierane Niewspierane Niewspierane
Piaskownica (AppContainer) Niewspierane Niewspierane Obsługiwane Obsługiwane Niewspierane Niewspierane Niewspierane Niewspierane
Obecnie obsługiwane Obsługiwane Obsługiwane Obsługiwane Obsługiwane Obsługiwane Obsługiwane Obsługiwane Obsługiwane
Odbieranie aktualizacji Obsługiwane Obsługiwane Obsługiwane Obsługiwane (zabezpieczenia i poprawki usterek) Obsługiwane Obsługiwane Obsługiwane Obsługiwane
Harmonogram działania GitHub GitHub GitHub N/a N/a GitHub GitHub GitHub

Dowiedz się więcej o każdej z tych opcji:

Następne kroki