Programmering

Framtidsbeskyttet .NET applikasjonsutvikling med Uno Platform

Hvis du bruker tid på å lytte og snakke med Windows-utviklere, vil du vite at det er mye forvirring og frustrasjon rundt retning av plattformen, spesielt rundt .NET og UWP (Universal Windows Platform). Microsoft prøver å tegne en linje under forskjellene mellom UWP og eldre Windows SDK-er, mens de prøver å bringe alle inn i en .NET 5-fremtid med Build 2020-kunngjøringen av Project Reunion, men det vil fortsatt ta tid å levere en enhetlig plattform.

Mye av det har vært nede på hvordan Windows-plattformoppdateringer har blitt levert tidligere: koblet til operativsystemutgivelser. Project Reunion bygger på arbeidet med WinUI-brukergrensesnittkomponentene, og kobler dem fra de underliggende operativsystemene og lar utviklerplattformen utvikle seg mye raskere enn før.

Å bygge på en åpen kildekode-tilnærming til plattformen gir flere muligheter til å bringe .NET-utviklingsmodellen (og koden din) til så mange plattformer som mulig. Et eksempel på hvordan dette vil fungere er Uno Platforms WinUI-implementering, som nylig lanserte sin tredje store utgivelse.

Vi presenterer Uno Platform 3.0

Hvis du ikke har sett på Uno-plattformen før, er det kanskje enklest å tenke på det som et alternativ til Xamarin som lar deg bygge .NET-kode som kjører på iOS, Android, macOS og Internett. Jeg har skrevet om Uno før som en måte å levere kjente brukergrensesnitt over nettet ved hjelp av WinUI med WebAssembly og Microsofts Blazor-utviklingsrammeverk.

Uno Platform 3.0 er under utvikling for å støtte WinUI 3.0 sammen med WinUI 2.0. På denne måten kan du mikse og matche nye og nåværende kontroller, en tilnærming som skal fungere godt sammen med den trinnvise utrullingen av både WinUI 3.0 og Project Reunion API-er på systemnivå.

Det er mye å like i Uno, spesielt at det er liten eller ingen læringskurve. Koden kan bygges inn i din favoritt IDE og bruke eksisterende verktøy og rammer, og gir et felles brukergrensesnittlag for alle kodeversjonene dine. Du trenger bare å skrive C # og XAML en gang, med WinUI-kode som kjører direkte på Windows, og gjennom Uno på andre plattformer, og bygger på Xamarins opprinnelige verktøy for iOS, macOS og Android, og bruker Mono-WASM-implementeringen på Internett.

Bruker Uno til å bringe .NET-apper til macOS

Under panseret bygger Unos macOS-implementering på likhetene mellom macOSs AppKit og iOSs UIKit. Dette gjør at utviklingsteamet kan legge ut sine eksisterende iOS-kontrollimplementeringer. Selv om dette fungerer, har noen kontroller fortsatt problemer, så det er verdt å eksperimentere før du distribuerer noen kode til brukerne dine. Likevel er det en effektiv måte å bringe eksisterende .NET-apper fra Windows til macOS. Ved å bygge på kjerne macOS-biblioteker, bør Uno forhåpentligvis la koden din kjøre på det nylig annonserte ARM-baserte Apple-silisiumet.

Mac-støtte i Uno er relativt ny, og lanseres i mai 2020, med en reimplementering av Windows Calculator-appen på macOS og publisert gjennom Apples macOS-butikk. Å bygge en macOS-utgivelse av din eksisterende kode krever bruk av et sett med nye Uno-maler og Windows .NET kommandolinjeverktøy. Når du har installert de nye malene for enten Uno 2.3 eller 3.0, kan du opprette et stillas for en macOS-applikasjon med samme navn som prosjektet du vil målrette mot.

Du kan deretter flytte prosjektet til samme mappe som resten av applikasjonsfilene og legge til det nye prosjektet i en eksisterende Visual Studio-løsning. Kompiler koden din for macOS ved å bruke Visual Studio for Mac og konfigurer iPhone-simulatorinnstillingene for å målrette utviklings macOS-enheten din.

Ettersom du ikke kan bruke Visual Studio for Mac til å jobbe med Windows WinUI-apper, er det en god ide å bruke Git eller en lignende kildekodestyringsplattform for din komplette løsning slik at du kan administrere kodeendringer for macOS og Windows. Hvis du jobber med en WebAssembly-versjon av appen din, kan du bruke Visual Studio Code til å bygge den med C # og JavaScript feilsøkingsutvidelser. MacOS-støtte er tilgjengelig i både Uno 2.4 og 3.0, med den nyeste versjonen som demonstrerer et WinUI-basert plattformspilapplikasjon som er tilgjengelig i alle de største appbutikkene.

Bruker WinUI 3.0 i Uno

Hvis du planlegger å jobbe med WinUI 3.0, må du bruke Unos nylige 3.0-versjon. Igjen, bruk Uno Platforms .NET-maler for å sette opp stillas for koden din. Hvis du flytter eksisterende kode til WinUI 3.0, må du endre navneområdet du bruker, både for Microsoft-kontrollene og for Uno-koden din - noe som er enkelt nok å gjøre ved hjelp av refactoring-verktøyene som er innebygd i Visual Studio.

Et interessant aspekt ved Uno-plattformen er støtte for enheter med to skjermer. Ved å ta eksisterende kode til Uno og legge til kontrollene med to skjermer, bør du kunne porter apper fra Windows til den kommende Android-baserte Surface Duo med minimale endringer. Med Microsoft som prioriterer mobilapplikasjoner med to skjermer og samarbeider med Google for å forbedre støtten til kommende Android-utgivelser, vil verktøy som Uno være en viktig rute for å ta eksisterende store skjerm- og nettbrettopplevelser fra Windows og bringe dem til folding og dual-screen Android-maskinvare. .

Uno Platform og fremtiden for .NET applikasjonsutvikling

Det er klart at Microsoft tar sikte på å fjerne forvirring om hvordan man bygger applikasjoner i .NET-økosystemet, ved å bruke WinUI og Project Reunion for å gi sårt tiltrengt klarhet om fremtiden. Men så raskt som Microsoft lover at de vil bli levert, vil de fremdeles være for sakte for mange utviklere. Både Uno-plattformen og Xamarins MAUI er måter å få tilgang til disse teknologiene raskere, på toppen av din eksisterende .NET-kode.

Ved å legge til macOS og Web UI-støtte til .NET ser Uno Platform ut til å være et bedre valg for å målrette så mange brukere som mulig med minst mulig kodeendring; det er en vei til .NET-fremtiden som skal spare mye utviklingstid og holde supportbelastningen på et minimum.

Bruk av Uno bør også være fremtidssikret din eksisterende .NET-kode på andre måter. WebAssembly i nettleseren og frittstående WASI (WebAssembly System Interface) -applikasjoner bør forenkle prosessen med å bringe koden din til en ny generasjon kantmaskinvare, spesielt små skjermfaktorer og småskjermsenheter basert på ARM og andre prosessorer med lite strøm.

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