Razvoj aplikacija .NET za provjeru budućnosti s platformom Uno

Ako neko vrijeme provodite slušajući i razgovarajući s programerima za Windows, znat ćete da postoji velika zbrka i frustracija oko smjera platforme, posebno oko .NET-a i UWP-a (Universal Windows Platform). Microsoft pokušava podvući crtu pod razlikama između UWP-a i starijih Windows SDK-ova, dok pokušava navesti sve u budućnost .NET 5 najavama Build 2020 o Project Reunionu, ali još uvijek će trebati vremena za isporuku jedinstvene platforme.

Puno toga ovisilo je o načinu isporuke ažuriranja platforme Windows u prošlosti: zajedno s izdanjima operativnog sustava. Project Reunion nadovezuje se na rad s komponentama korisničkog sučelja WinUI, odvajajući ih od osnovnih operativnih sustava i omogućavajući razvojnoj platformi da se razvija mnogo brže nego prije.

Nadograđivanje otvorenog koda pristupa platformi daje više mogućnosti za donošenje razvojnog modela .NET (i vašeg koda) na što više platformi. Primjer kako će to funkcionirati je implementacija WinUI platforme Uno, koja je nedavno pokrenula svoje treće veliko izdanje.

Predstavljamo platformu Uno 3.0

Ako niste ranije gledali platformu Uno, možda je najlakše o njoj razmišljati kao o alternativi Xamarinu koja vam omogućuje izradu .NET koda koji radi na iOS-u, Androidu, macOS-u i Webu. O Unu sam već pisao kao o načinu isporuke poznatih korisničkih sučelja putem weba pomoću WinUI-a s WebAssembly i Microsoftovog razvojnog okvira Blazor.

Uno Platform 3.0 razvija se za podršku WinUI 3.0 uz WinUI 2.0. Na taj način možete kombinirati i podudarati nove i trenutne kontrole, pristup koji bi trebao dobro funkcionirati uz postupno uvođenje i WinUI 3.0 i API-ja Project Reunion API-ja na razini sustava.

U Uno se može puno toga voljeti, pogotovo što se malo ili nimalo nema krivulje učenja. Kôd se može ugraditi u vaš omiljeni IDE i koristiti postojeće alate i okvire, pružajući zajednički sloj korisničkog sučelja za sve verzije vašeg koda. Trebate samo jednom napisati svoj C # i XAML, s WinUI kodom koji se izravno izvodi na Windowsima i putem Uno-a na drugim platformama, nadograđujući Xamarin-ove izvorne alate za iOS, macOS i Android i koristeći Mono-WASM implementaciju na Mreža.

Korištenje aplikacije Uno za dovođenje .NET aplikacija u macOS

Ispod haube, Unova implementacija macOS-a temelji se na sličnostima između macOS-ovog AppKit-a i iOS-ovog UIKit-a. To omogućuje razvojnom timu da objavljuje svoje postojeće implementacije iOS kontrole. Iako ovo funkcionira, neke kontrole i dalje imaju problema, pa vrijedi eksperimentirati prije nego što bilo koji kôd postavite na svoje korisnike. Bez obzira na to, to je učinkovit način za prenošenje postojećih .NET aplikacija iz sustava Windows na macOS. Gradeći na jezgri macOS knjižnica, Uno bi, nadam se, trebao dopustiti da se vaš kôd izvodi na nedavno najavljenom Apple silicijumu koji se temelji na ARM-u.

Podrška za Mac u Unu relativno je nova, lansirana je u svibnju 2020. godine, ponovnom implementacijom aplikacije Windows Kalkulator na macOS i objavljena putem Appleove macOS trgovine. Izgradnja macOS izdanja vašeg postojećeg koda zahtijeva upotrebu niza novih Uno predložaka i Windows .NET alat za naredbene retke. Nakon što instalirate nove predloške za Uno 2.3 ili 3.0, možete stvoriti skelu aplikacije za macOS aplikaciju s istim nazivom kao i projekt koji želite ciljati.

Tada možete taj projekt premjestiti u istu mapu kao i ostale datoteke vašeg programa i dodati novi projekt u postojeće rješenje Visual Studija. Sastavite svoj kôd za macOS koristeći Visual Studio za Mac i konfigurirajte njegove postavke simulatora iPhonea da ciljaju vaš razvojni macOS uređaj.

Budući da ne možete koristiti Visual Studio za Mac za rad na Windows WinUI aplikacijama, dobra je ideja da za svoje cjelovito rješenje koristite Git ili sličnu platformu za kontrolu izvornog koda kako biste mogli upravljati promjenama koda za macOS i Windows. Ako radite na verziji aplikacije WebAssembly, upotrijebite Visual Studio Code za izradu s proširenjima za otklanjanje pogrešaka C # i JavaScript. Podrška za MacOS dostupna je i u verzijama Uno 2.4 i 3.0, a najnovija verzija demonstrira višeplatformsku aplikaciju za reprodukciju video zapisa zasnovanu na WinUI koja je dostupna u svim glavnim trgovinama aplikacija.

Korištenje WinUI 3.0 u Uno

Ako planirate raditi s WinUI 3.0, morate upotrijebiti nedavno izdanje Uno 3.0. Opet, upotrijebite .NET predloške platforme Uno za postavljanje skela za svoj kôd. Ako premještate postojeći kôd u WinUI 3.0, morate promijeniti prostor imena koji koristite, kako za Microsoftove kontrole, tako i za svoj Uno kôd - nešto što je dovoljno jednostavno učiniti pomoću alata za refaktoriranje ugrađenih u Visual Studio.

Jedan zanimljiv aspekt Uno platforme je podrška za uređaje s dva zaslona. Uzimajući postojeći kôd u Uno i dodajući njegove kontrole na dva zaslona, ​​trebali biste moći prenijeti aplikacije iz Windows-a na nadolazeći Surface Duo zasnovan na Androidu uz minimalne promjene. Budući da Microsoft daje prioritet mobilnim aplikacijama s dva zaslona i surađuje s Googleom na poboljšanju podrške za nadolazeća Android izdanja, alati poput Uno bit će važan put za preuzimanje postojećih velikih zaslona i tableta iz sustava Windows te njihovo preklapanje i Android hardver na dva zaslona .

Uno platforma i budućnost razvoja .NET aplikacija

Jasno je da Microsoft želi ukloniti zbrku oko toga kako graditi aplikacije u .NET ekosustavu, koristeći WinUI i Project Reunion kako bi pružio prijeko potrebnu jasnost o budućnosti. No čim Microsoft obeća da će biti isporučeni, i dalje će vjerojatno biti prespor za mnoge programere. I Uno platforma i Xamarinov MAUI načini su bržeg pristupa tim tehnologijama, povrh vašeg postojećeg .NET koda.

Dodavanjem podrške za macOS i web UI u .NET, Uno platforma izgleda kao bolji izbor za ciljanje što većeg broja korisnika s najmanjom količinom promjene koda; to je put u .NET budućnost koji bi trebao uštedjeti puno vremena za razvoj i svesti opterećenje podrške na minimum.

Korištenje Uno-a vaš bi postojeći .NET kôd trebao zaštititi budućnost i na druge načine. WebAssembly u internetskom pregledniku i samostalne aplikacije WASI (WebAssembly System Interface) trebaju pojednostaviti postupak približavanja koda novoj generaciji rubnog hardvera, posebno malog oblika i uređaja s malim zaslonom koji se temelje na ARM-u i drugim procesorima male snage.