Co to jest .NET MAUI?
Interfejs użytkownika aplikacji wieloplatformowej platformy .NET (.NET MAUI) to międzyplatformowa platforma do tworzenia natywnych aplikacji mobilnych i klasycznych przy użyciu 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. Używając interfejsu .NET MAUI, można tworzyć aplikacje wieloplatformowe w ramach jednego projektu, mając jednak w razie potrzeby możliwość dodania specyficznego dla platformy kodu źródłowego i zasobów. 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.
Who .NET MAUI is for
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
Platforma .NET MAUI łączy interfejsy API systemów Android, iOS, macOS i Windows w jeden interfejs API, który umożliwia wykonywanie operacji zapisu w dowolnym miejscu dla deweloperów, a jednocześnie zapewnia bezpośredni dostęp do każdego aspektu 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 wyodrębnia szczegóły bazowej platformy z dala od kodu. Lista BCL zależy od środowiska uruchomieniowego platformy .NET w celu zapewnienia środowiska wykonawczego dla kodu. W przypadku systemów Android, iOS i macOS środowisko jest implementowane przez środowisko Mono, implementację środowiska uruchomieniowego platformy .NET. W systemie Windows platforma .NET CoreCLR udostępnia środowisko wykonywania.
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 wykonywać ćwiczenia 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 systemu Android utworzone przy użyciu kompilacji .NET MAUI z języka C# do języka pośredniego (IL), który jest następnie skompilowany just in time (JIT) do natywnego zestawu podczas uruchamiania aplikacji.
- Aplikacje dla systemu iOS utworzone przy użyciu interfejsu MAUI platformy .NET są w pełni kompilowane z języka C# do natywnego kodu zestawu 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.
Uwaga
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 dla 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.
- Pojedynczy system projektu korzystający z wielu elementów docelowych przeznaczonych dla systemów Android, iOS, macOS i Windows. Aby uzyskać więcej informacji, zobacz .NET MAUI Single project (Pojedynczy projekt .NET MAUI).
- Przeładowywanie na gorąco platformy .NET, dzięki czemu można modyfikować kod XAML i zarządzany kod źródłowy podczas działania aplikacji, a następnie obserwować wyniki modyfikacji bez ponownego kompilowania aplikacji. Aby uzyskać więcej informacji, zobacz Przeładowywanie na gorąco platformy .NET.
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 aparatów zamiany tekstu na mowę, aby odczytywać tekst z urządzenia.
- Zainicjuj przepływy uwierzytelniania oparte na przeglądarce, które nasłuchują wywołania zwrotnego do określonego zarejestrowanego adresu URL aplikacji.
Pojedynczy projekt
Pojedynczy projekt .NET MAUI przyjmuje środowiska programistyczne specyficzne dla platformy, które zwykle napotykasz podczas tworzenia aplikacji i abstrakcji ich w jednym udostępnionym projekcie, który może 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 włączony przy użyciu wielowersyjności i korzystania z projektów w stylu zestawu SDK. Aby uzyskać więcej informacji na temat pojedynczego projektu .NET MAUI, zobacz .NET MAUI single project (Pojedynczy projekt .NET MAUI).
Gorące ponowne ładowanie
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.