Co to jest .NET MAUI?
Interfejs użytkownika .NET Multi-platform App UI (.NET MAUI) to wieloplatformowa struktura do tworzenia natywnych aplikacji mobilnych i komputerowych z użyciem języków C# i XAML.
Za pomocą programu MAUI platformy .NET można tworzyć aplikacje, które można uruchamiać w systemach Android, iOS, macOS i Windows z poziomu pojedynczej udostępnionej bazy kodu.
Program .NET MAUI jest oprogramowaniem open source i jest ewolucją platformy Xamarin.Forms, rozszerzonej od scenariuszy mobilnych do komputerów stacjonarnych, a kontrolki interfejsu użytkownika są przebudowane od podstaw pod kątem wydajności i rozszerzalności. Jeśli wcześniej użyto zestawu narzędzi Xamarin.Forms do tworzenia międzyplatformowych interfejsów użytkownika, zauważysz wiele podobieństw do interfejsów MAUI platformy .NET. Istnieją jednak również pewne różnice. Za pomocą interfejsu MAUI platformy .NET można tworzyć aplikacje wieloplatformowe przy użyciu pojedynczego projektu, ale w razie potrzeby można dodać kod źródłowy i zasoby specyficzne dla platformy. Jednym z kluczowych celów platformy .NET MAUI jest umożliwienie implementacji jak największej ilości logiki aplikacji i układu interfejsu użytkownika, jak to możliwe w ramach pojedynczej bazy kodu.
Dla kogo jest .NET MAUI
Program .NET MAUI jest przeznaczony dla deweloperów, którzy chcą:
- Pisanie aplikacji międzyplatformowych w językach XAML i C# z pojedynczej udostępnionej bazy kodu w programie Visual Studio.
- Udostępnianie układu i projektowania interfejsu użytkownika na różnych platformach.
- Udostępnianie kodu, testów i logiki biznesowej na różnych platformach.
Jak działa interfejs MAUI platformy .NET
.NET MAUI łączy interfejsy API systemów Android, iOS, macOS i Windows w jeden wspólny interfejs API, który oferuje jednolity proces tworzenia aplikacji dla programistów, pozwalając jednocześnie na pełny dostęp do wszystkich aspektów każdej platformy natywnej.
Platforma .NET 6 lub nowsza udostępnia szereg platform specyficznych dla platformy do tworzenia aplikacji: .NET dla systemu Android, .NET dla systemów iOS, .NET for Mac Catalyst i Biblioteki interfejsu użytkownika systemu Windows 3 (WinUI 3). Wszystkie te struktury mają dostęp do tej samej biblioteki klas bazowych platformy .NET (BCL). Ta biblioteka abstrahuje szczegóły podstawowej platformy od twojego kodu. BCL zależy od platformy .NET jako środowiska uruchomieniowego do zapewnienia środowiska wykonawczego dla twojego kodu. W przypadku systemów Android, iOS i macOS środowisko jest implementowane przez środowisko Mono, implementację środowiska uruchomieniowego platformy .NET. W systemie Windows, środowisko uruchomieniowe języka wspólnego platformy .NET Core (CLR) zapewnia środowisko wykonawcze.
Chociaż lista BCL umożliwia aplikacjom działającym na różnych platformach współużytkowanie wspólnej logiki biznesowej, różne platformy mają różne sposoby definiowania interfejsu użytkownika dla aplikacji i zapewniają różne modele określania sposobu komunikowania się i współdziałania elementów interfejsu użytkownika. Interfejs użytkownika można utworzyć osobno dla każdej platformy przy użyciu odpowiedniej platformy (.NET dla systemów Android, .NET dla systemów iOS, .NET for Mac Catalyst lub WinUI 3), ale takie podejście wymaga zachowania bazy kodu dla każdej rodziny urządzeń.
Program .NET MAUI udostępnia jedną platformę do tworzenia interfejsów użytkownika dla aplikacji mobilnych i klasycznych. Na poniższym diagramie przedstawiono ogólny widok architektury aplikacji .NET MAUI:
W aplikacji .NET MAUI piszesz kod, który głównie wchodzi w interakcje z kontrolkami MAUI platformy .NET i warstwą interfejsu API (1). Następnie ta warstwa bezpośrednio korzysta z natywnych interfejsów API platformy (3). Ponadto kod aplikacji może bezpośrednio korzystać z interfejsów API platformy (2), jeśli jest to wymagane.
Aplikacje MAUI platformy .NET można pisać na komputerach PC lub Mac i kompilować w natywnych pakietach aplikacji:
- Aplikacje na Androida budowane przy użyciu .NET MAUI są najpierw kompilowane z języka C# do języka pośredniego (IL), a następnie kompilowane w locie (JIT) do kodu natywnego podczas uruchamiania aplikacji.
- Aplikacje iOS zbudowane przy użyciu .NET MAUI są w pełni kompilowane w trybie AOT (ahead-of-time) z języka C# do natywnego kodu maszynowego ARM.
- Aplikacje systemu macOS utworzone przy użyciu programu .NET MAUI używają narzędzia Mac Catalyst, czyli rozwiązania firmy Apple, które udostępnia aplikację systemu iOS utworzoną za pomocą zestawu UIKit na pulpicie i rozszerza ją o dodatkowe interfejsy API zestawu AppKit i platformy zgodnie z potrzebami.
- Aplikacje systemu Windows utworzone przy użyciu platformy .NET MAUI używają biblioteki interfejsu użytkownika systemu Windows 3 (WinUI 3) do tworzenia aplikacji natywnych przeznaczonych dla pulpitu systemu Windows. Aby uzyskać więcej informacji na temat systemu WinUI 3, zobacz biblioteka interfejsu użytkownika systemu Windows.
Notatka
Tworzenie aplikacji dla systemów iOS i macOS wymaga komputera Mac.
Co udostępnia program .NET MAUI
Program .NET MAUI udostępnia kolekcję kontrolek, które mogą służyć do wyświetlania danych, inicjowania akcji, wskazywania aktywności, wyświetlania kolekcji, wybierania danych i nie tylko. Oprócz kolekcji kontrolek program .NET MAUI udostępnia również następujące elementy:
- Rozbudowany aparat układu do projektowania stron.
- Wiele typów stron do tworzenia zaawansowanych typów nawigacji, takich jak szuflady.
- Obsługa tworzenia powiązań danych w celu uzyskania bardziej eleganckich i konserwowalnych wzorców programistycznych.
- Możliwość dostosowywania procedur obsługi w celu ulepszenia sposobu prezentowania elementów interfejsu użytkownika.
- Międzyplatformowe interfejsy API na potrzeby uzyskiwania dostępu do funkcji urządzeń natywnych. Te interfejsy API umożliwiają aplikacjom dostęp do funkcji urządzeń, takich jak GPS, akcelerometr oraz stan baterii i sieci. Aby uzyskać więcej informacji, zobacz międzyplatformowe interfejsy API funkcji urządzeń.
- Międzyplatformowe funkcje graficzne, które zapewniają kanwę rysunku, która obsługuje rysowanie i malowanie kształtów i obrazów, operacje komponowania i przekształcanie obiektów graficznych.
- System jednego projektu, który umożliwia wielokierunkowe ukierunkowanie na Android, iOS, macOS i Windows. Aby uzyskać więcej informacji, zobacz .NET MAUI Single project.
- Hot Reload platformy .NET pozwala na modyfikowanie zarówno XAML, jak i zarządzanego kodu źródłowego podczas działania aplikacji, a następnie obserwowanie efektów tych modyfikacji bez konieczności ponownego kompilowania aplikacji. Aby uzyskać więcej informacji, zobacz .NET hot reload.
Międzyplatformowe interfejsy API dla funkcji urządzeń
Program .NET MAUI udostępnia międzyplatformowe interfejsy API dla funkcji urządzeń natywnych. Przykłady funkcji udostępnianych przez program .NET MAUI na potrzeby uzyskiwania dostępu do funkcji urządzeń obejmują:
- Dostęp do czujników, takich jak akcelerometr, kompas i żyroskop na urządzeniach.
- Możliwość sprawdzania stanu łączności sieciowej urządzenia i wykrywania zmian.
- Podaj informacje o urządzeniu, na którym działa aplikacja.
- Skopiuj i wklej tekst do schowka systemowego między aplikacjami.
- Wybierz jeden lub wiele plików z urządzenia.
- Bezpieczne przechowywanie danych jako par klucz/wartość.
- Korzystaj z wbudowanych silników zamiany tekstu na mowę, aby odczytywać tekst z urządzenia.
- Zainicjuj przepływy uwierzytelniania oparte na przeglądarce, które nasłuchują zwrotnego wywołania na określony zarejestrowany adres URL aplikacji.
Pojedynczy projekt
Pojedynczy projekt .NET MAUI upraszcza zagadnienia specyficzne dla platform, które zwykle napotykasz podczas tworzenia aplikacji, w jednym wspólnym projekcie. Dzięki temu może on być przeznaczony dla systemów Android, iOS, macOS i Windows.
Pojedynczy projekt MAUI platformy .NET zapewnia uproszczone i spójne środowisko programowania dla wielu platform, niezależnie od platform docelowych. Pojedynczy projekt .NET MAUI oferuje następujące funkcje:
- Pojedynczy udostępniony projekt, który może być przeznaczony dla systemów Android, iOS, macOS i Windows.
- Uproszczony wybór celu debugowania na potrzeby uruchamiania aplikacji .NET MAUI.
- Pliki zasobów udostępnionych w ramach pojedynczego projektu.
- Jeden manifest aplikacji określający tytuł, identyfikator i wersję aplikacji.
- Dostęp do interfejsów API i narzędzi specyficznych dla platformy, jeśli jest to wymagane.
- Pojedynczy punkt wejścia aplikacji dla wielu platform.
Pojedynczy projekt .NET MAUI jest dostępny dzięki zastosowaniu techniki wieloplatformowości i korzystaniu z projektów w stylu SDK. Aby uzyskać więcej informacji na temat pojedynczego projektu .NET MAUI, zobacz .NET MAUI single project.
Przeładowywanie na gorąco
Program .NET MAUI obejmuje obsługę ponownego ładowania na gorąco platformy .NET, co umożliwia modyfikowanie zarządzanego kodu źródłowego podczas działania aplikacji bez konieczności ręcznego wstrzymania lub trafienia punktu przerwania. Następnie zmiany kodu można zastosować do uruchomionej aplikacji bez ponownej kompilacji.
Program .NET MAUI obejmuje również obsługę przeładowywania kodu XAML na gorąco, co umożliwia zapisywanie plików XAML i wyświetlanie zmian odzwierciedlanych w uruchomionej aplikacji bez ponownej kompilacji. Ponadto stan nawigacji i dane będą utrzymywane, co umożliwia szybkie iterowanie interfejsu użytkownika bez utraty miejsca w aplikacji.