Programmering

Forståelse .NET MAUI og fremtiden for Xamarin

I 2000 handlede Microsofts Professional Developers Conference om at sætte scenen for .NET og introducere mange af de teknologier, vi har brugt i de sidste to årtier. Tyve år senere er det rimeligt at sige, at Microsoft har trykket på en reset-knap på udbredelsen af ​​.NET og dens mange udviklerrammer. På Build 2020 udarbejdede virksomheden sin køreplan for de næste tyve år og byggede på sin Project Reunion-meddelelse.

Fremtiden er én .NET

Det er muligt at se tilbage omkring seks år for at se rødderne i dag i den åbne sourcing af .NET og oprettelsen af. NET Foundation. Platformen havde brug for en uafhængig instans til at hyrde den gennem overgangen fra den gamle .NET Framework til en ny, arvfri, modulær .NET Core. Denne overgang måtte omfatte mere end Windows; det måtte bringe Xamarins mobile klienter og Unitys 3-D-spilplatforme sammen samt sigte mod at udvide rækkevidden af ​​.NET til macOS og Linux.

Det bringer os til 2020 og den kommende overgang fra den aldrende .NET Framework 4 til en ny. NET 5, den næste store udgivelse af. NET Core med de fleste af de velkendte. NET Framework API'er og navneområder. Denne transformation vil starte med store ændringer for Microsofts Xamarin-udviklingsværktøjer til mobil og platform, da Microsoft skifter ingeniørindsats væk fra Xamarins Mono til .NET 5.

At bringe Mono og .NET sammen i .NET 6

Én ting er klar: Microsoft smider ikke både sine og dine investeringer i Xamarin væk. Mono vil ikke gå nogen steder endnu. Masser af store projekter afhænger af Mono, og vi ser Xamarin fortsætte med at udvikle Mono for at understøtte nye udgivelser af Android og iOS. Men hvis du vil have nye funktioner og nye API'er og en bredere udviklingsmodel på tværs af platforme, vil din fremtidige udviklingsstrategi være baseret på .NET 5 og den løbende årlige .NET-udgivelsesplan. Et komplet, samlet .NET er stadig langt væk, og skønt .NET 5 vil være et vigtigt skridt fremad, vil vi først se sammenlægning i slutningen af ​​2021 og den planlagte frigivelse af den næste langsigtede supportudgivelse, .NET 6.

Hensigten er ikke helt at erstatte Mono, men at have et fælles sæt klassebiblioteker og en enkelt værktøjskæde til .NET Core og til Mono, der bygger på det arbejde, der allerede foregår i funktioner på platformniveau som f.eks. NET Standard biblioteker. Det efterlader et spændende spørgsmål: Hvordan ser et brugergrænseflade på tværs af platforme ud i den konvergerede fremtid? Selvom der er en platformoverskridende mulighed i Uno Platforms havn i WinUI 3 med understøttelse af mobilenheder sammen med WebAssembly og macOS, er de kontrolelementer, som Microsoft sender i WinUI, Windows-desktopkontroller, og de fungerer bedst i desktop- og tabletapplikationer.

Udvikling af en platform på tværs af platforme til .NET

Xamarin tilbyder et alternativ til WinUI til udvikling på tværs af platforme. Dens strategi på tværs af platforme er baseret på en blanding af XAML-understøttelse af indfødte kontroller til både iOS og Android sammen med sin egen cross-platform Xamarin Forms. Xamarin Forms er en MVVM-udviklingsplatform (model-view-viewmodel) i sig selv med sit eget kontroludseende og -baseret baseret på Android's Material Design sprog. Xamarin Forms giver iOS- og Android-apps et ensartet udseende, mens de stadig giver dem adgang til indfødte funktioner og tjenester.

Med .NET 6 beregnet til at forene de forskellige. NET-platforme, er Xamarin Forms det logiske fundament for et nyt sæt af mobil UI-værktøj og en ny UI-platform på tværs af platforme til. NET. Microsoft afslørede denne nye tilgang i Build 2020 og kaldte den .NET Multiplatform App UI (MAUI).

.NET MAUI er den næste generation af Xamarin Forms, der er beregnet til at give udviklere mulighed for at oprette en app en gang i et enkelt Visual Studio-projekt med en enkelt codebase, der er målrettet mod enhver understøttet enhed. Målet er at levere en forenklet projektstruktur. I stedet for en enkelt løsning med separate projekter for hver platform, du målretter mod, vil MAUI med et enkelt projekt indeholde de ressourcer, der er nødvendige for at målrette mod specifikke platforme. Hvis du har brug for native API'er for at få adgang til enhedsspecifikke tjenester, kan disse pakkes i en platformvisning og bruges på kompileringstidspunktet, når målretning bygger for hver platform. Ved siden af ​​platformskoden kan du samle ressourcer, der vil blive brugt af din XAML, inklusive billeder og skrifttyper, hvilket giver dig et sted at administrere alle elementerne i din applikation.

Den nye projektmodel, der følger med .NET 6, er nøglen til denne tilgang, da den anvender en mere logisk gruppering på de moduler, der bruges i platforme-apps, og hvordan kode bygges og implementeres. På trods af de strukturelle ændringer i projekterne skal den kode, du skriver i morgen, være meget som i dag, men lettere at implementere på tværs af flere platforme og holde sig opdateret med ændringer i platform-API'er og applikationsdesignressourcer.

Vejen til .NET MAUI

Vi er stadig måneder væk fra at se brugbar .NET MAUI-kode, da det afhænger af .NET 6 SDK-funktioner, selvom et GitHub-lager allerede er åbent med nogle af de første implementeringer. Når en forhåndsvisning sendes mod slutningen af ​​2020, skal vi få nogenlunde svar på de eksisterende Xamarin-formularer, som vi fortsætter med at blive udviklet parallelt med .NET MAUI. Vigtige ændringer vil være omkring, hvordan du strukturerer projekter, hvor et nyt navneområde flytter fra Xamarins eget navneområde til .NET's System.

Den offentliggjorte køreplan for .NET MAUI antyder, at vi oprindeligt får en preview-version baseret på et omdøbning af den nuværende Xamarin Forms-udgivelse med nogle forenklinger og nye funktioner, der kommer fra .NET 6s nye funktioner. Flere ændringer vil komme i løbet af 2021, når .NET MAUI og .NET 6 udvikler sig, med macOS og Windows-kontroller, der slutter sig til Android og iOS i løbet af sommeren 2021. Du skulle være i stand til at levere ensartede applikationer inden den planlagte november 2021-udgivelse med en frigivelseskandidat, der forventes i September 2021.

Microsoft planlægger andre ændringer af Xamarin i .NET 6-tidsrammen, flytter andre Xamarin-biblioteker til System og omdøber Xamarin.iOS og Xamarin.Android til .NET til iOS og .NET til Android. Det er et logisk skridt, hvis det er lidt trist for de af os, der har fulgt udviklingen af ​​Xamarin siden Monos tidlige dage.

Måske er en mere positiv måde at tænke på det på, at med flytningen til en .NET Core-platform som grundlaget for alle ting. NET, er det ikke så meget, som Microsoft absorberer Xamarin, da Xamarin bliver hjertet i .NETs open source-fremtid. . Det er en god arv for Mono-projektet.

$config[zx-auto] not found$config[zx-overlay] not found