Mi az a .NET MAUI?
A .NET többplatformos alkalmazás felhasználói felülete (.NET MAUI) egy platformfüggetlen keretrendszer natív mobil- és asztali alkalmazások C# és XAML használatával történő létrehozásához.
A .NET MAUI használatával olyan alkalmazásokat fejleszthet, amelyek egyetlen megosztott kódbázisból futtathatók Androidon, iOS-en, macOS-en és Windowson.
A .NET MAUI nyílt forráskódú, és a Xamarin.Forms fejlődése, mobilról asztali forgatókönyvekre bontva, az alapoktól a teljesítmény és a bővíthetőség érdekében újraépített felhasználói felületi vezérlőkkel. Ha korábban a Xamarin.Formst használta platformfüggetlen felhasználói felületek létrehozásához, akkor a .NET MAUI-val való sok hasonlóság figyelhető meg. Vannak azonban különbségek is. A .NET MAUI használatával többplatformos alkalmazásokat hozhat létre egyetlen projekttel, de szükség esetén platformspecifikus forráskódot és erőforrásokat is hozzáadhat. A .NET MAUI egyik fő célja, hogy lehetővé tegye az alkalmazáslogika és a felhasználói felület lehető legnagyobb részének implementálását egyetlen kódbázisban.
Kinek szól a .NET MAUI?
A .NET MAUI azoknak a fejlesztőknek szól, akik a következőt szeretnék:
- Platformfüggetlen alkalmazások írása XAML-ben és C#-ban egyetlen megosztott kódbázisból a Visual Studióban.
- Felhasználói felület elrendezésének és kialakításának megosztása platformok között.
- Kódot, teszteket és üzleti logikát oszthat meg a platformok között.
A .NET MAUI működése
A .NET MAUI egyetlen API-vá egyesíti az Android, az iOS, a macOS és a Windows API-kat, amely lehetővé teszi az egyszeri futtatású fejlesztői élményt, és emellett mély hozzáférést biztosít az egyes natív platformok minden aspektusához.
A .NET 6 vagy újabb platformspecifikus keretrendszereket biztosít az alkalmazások létrehozásához: .NET androidos, .NET for iOS, .NET for Mac Catalyst és Windows UI 3 (WinUI 3) kódtár. Ezek a keretrendszerek mind ugyanahhoz a .NET alaposztálytárhoz (BCL) férnek hozzá. Ez a könyvtár absztrahálja a mögöttes platform részleteit, így az eltávolodik a kódtól. A BCL a .NET-futtatókörnyezettől függ, hogy megadja a kód végrehajtási környezetét. Android, iOS és macOS esetén a környezetet a Mono, a .NET-futtatókörnyezet implementálása valósítja meg. Windows rendszeren a .NET Core Common Language Runtime (CLR) biztosítja a végrehajtási környezetet.
Bár a BCL lehetővé teszi a különböző platformokon futó alkalmazások számára a közös üzleti logika megosztását, a különböző platformok különböző módokon határozzák meg az alkalmazás felhasználói felületét, és különböző modelleket biztosítanak annak meghatározásához, hogy a felhasználói felület elemei hogyan kommunikáljanak és működjenek együtt. Az egyes platformok felhasználói felületét külön-külön készítheti el a megfelelő platformspecifikus keretrendszerrel (Androidhoz készült.NET, .NET iOS-hez, .NET for Mac Catalyst vagy WinUI 3), de ehhez a megközelítéshez szükség van egy kódbázis fenntartására minden egyes eszközcsaládhoz.
A .NET MAUI egyetlen keretrendszert biztosít a mobil- és asztali alkalmazások felhasználói felületeinek létrehozásához. Az alábbi ábra egy .NET MAUI-alkalmazás architektúrájának magas szintű nézetét mutatja be:
A .NET MAUI-alkalmazásokban olyan kódot ír, amely elsősorban a .NET MAUI-vezérlőkkel és az API-réteggel (1) kommunikál. Ez a réteg ezután közvetlenül használja a natív platform API-kat (3). Emellett az alkalmazáskód szükség esetén közvetlenül használhat platform API-kat (2).
A .NET MAUI-alkalmazások PC-n vagy Macen is írhatók, és natív alkalmazáscsomagokba állíthatók össze:
- A .NET MAUI használatával létrehozott Android-alkalmazásokat C#-ból köztes nyelvre (IL) fordítják, amelyet majd az alkalmazás indításakor natív assembly-re fordítanak le.
- A .NET MAUI használatával készült iOS-alkalmazások teljesen előzetesen (AOT) C#-ból natív ARM assembly kódba kompilálva vannak.
- A .NET MAUI használatával készült macOS-alkalmazások a Mac Catalystot használják, amely az Apple egyik megoldása, amely az UIKittel készült iOS-alkalmazást hozza az asztalra, és igény szerint további AppKit- és platform API-kkal bővíti azt.
- A .NET MAUI használatával készült Windows-alkalmazások a Windows UI 3 (WinUI 3) kódtár használatával hoznak létre natív alkalmazásokat, amelyek a Windows asztalt célják. További információ a WinUI 3-ról: Windows felhasználói felületi kódtár.
Jegyzet
Az iOS-hez és macOS-hez készült alkalmazások létrehozásához Mac szükséges.
Amit a .NET MAUI biztosít
A .NET MAUI olyan vezérlők gyűjteménye, amelyek felhasználhatók adatok megjelenítésére, műveletek indítására, tevékenység jelzésére, gyűjtemények megjelenítésére, adatok kiválasztására stb. A .NET MAUI a vezérlők gyűjteménye mellett a következőket is biztosítja:
- Kifinomult elrendezési eszköz lapok tervezéséhez.
- Gazdag navigációs elemek, például oldalsávok létrehozására alkalmas többféle oldaltípus.
- Az adatkötés támogatása elegánsabb és karbantarthatóbb fejlesztési mintákhoz.
- A kezelők testreszabásának lehetősége a felhasználói felület elemeinek megjelenítésének javítására.
- Platformfüggetlen API-k natív eszközfunkciók eléréséhez. Ezek az API-k lehetővé teszik az alkalmazások számára az eszköz olyan funkcióinak elérését, mint a GPS, a gyorsulásmérő, valamint az akkumulátor és a hálózati állapot. További információ: Platformfüggetlen API-k eszközfunkciókhoz.
- Platformfüggetlen grafikus funkciók, amelyek olyan vászont biztosítanak, amely támogatja az alakzatok és képek rajzolását és festését, a összeállítási műveleteket és a grafikus objektumok átalakítását.
- Egyetlen projektrendszer, amely több célzást használ az Android, az iOS, a macOS és a Windows megcélzásához. További információért tekintse meg: .NET MAUI Single project.
- A .NET hot reload funkcióval az alkalmazás futása közben módosíthatja mind az XAML, mind a felügyelt forráskódot, és az alkalmazás újraépítése nélkül figyelheti meg a módosítások eredményét. További információért lásd: .NET "hot reload".
Platformfüggetlen API-k eszközfunkciókhoz
A .NET MAUI platformfüggetlen API-kat biztosít a natív eszközfunkciókhoz. Példák a .NET MAUI által az eszközfunkciók eléréséhez biztosított funkciókra:
- Hozzáférés az érzékelőkhöz, például a gyorsulásmérőhöz, az iránytűhöz és a giroszkóphoz az eszközökön.
- Az eszköz hálózati kapcsolati állapotának ellenőrzése és a változások észlelése.
- Adjon meg információt arról az eszközről, amelyen az alkalmazás fut.
- Másolja és illessze be a szöveget a rendszer vágólapjára az alkalmazások között.
- Válasszon egy vagy több fájlt az eszközről.
- Az adatokat kulcs/érték párokként biztonságosan tárolhatja.
- Beépített szövegfelolvasási motorokkal olvashat szöveget az eszközről.
- Olyan böngészőalapú hitelesítési folyamatokat kezdeményezhet, amelyek egy adott alkalmazás regisztrált URL-címére való visszahívást figyelnek.
Önálló projekt
A .NET MAUI egyetlen projektje a jellemzően az alkalmazások fejlesztése során tapasztalt platformspecifikus fejlesztési élményeket veszi igénybe, és egyetlen megosztott projektbe absztraktálja őket, amely az Android, iOS, macOS és Windows rendszert célozza meg.
A .NET MAUI egyetlen projektje leegyszerűsített és egységes platformfüggetlen fejlesztési élményt nyújt, függetlenül a megcélzott platformoktól. A .NET MAUI önálló projektje a következő funkciókat biztosítja:
- Egyetlen megosztott projekt, amely androidos, iOS, macOS és Windows rendszert célozhat meg.
- Egyszerűsített hibakeresési cél kiválasztása a .NET MAUI-alkalmazások futtatásához.
- Megosztott erőforrásfájlok az egyetlen projekten belül.
- Egyetlen alkalmazásjegyzék, amely megadja az alkalmazás címét, azonosítóját és verzióját.
- Szükség esetén hozzáférés platformspecifikus API-khoz és eszközökhöz.
- Egyetlen platformfüggetlen alkalmazásbeléptetési pont.
A .NET MAUI önálló projektje több célzással és SDK-stílusú projektek használatával engedélyezve van. A .NET MAUI önálló projekttel kapcsolatos további információkért lásd .NET MAUI önálló projekt.
Azonnali újratöltés
A .NET MAUI támogatja a .NET gyorstöltést, amely lehetővé teszi a felügyelt forráskód módosítását az alkalmazás futtatása közben anélkül, hogy manuálisan kellene szüneteltetnie vagy elütnie egy töréspontot. Ezután a kód szerkesztései újrafordítás nélkül alkalmazhatók a futó alkalmazásra.
A .NET MAUI támogatja az XAML gyorstöltést is, amely lehetővé teszi az XAML-fájlok mentését és a futó alkalmazásban megjelenő módosítások újrafordítás nélküli megjelenítését. Emellett a navigációs állapot és az adatok is megmaradnak, így gyorsan iterálhat a felhasználói felületen anélkül, hogy elveszítené a helyét az alkalmazásban.