Come sviluppare app multi piattaforma con .NET 8.0

Sviluppare un'unica app per Windows, OSX, iOS e Android con MAUI. Scopri come fare

Sviluppare app multipiattaforma con .NET 8.0

È il sogno segreto di ogni sviluppatore. È il Sacro Grall di ogni project manager, di ogni cliente che lavora con team in outsourcing e di ogni product owner (da Scrum).

Gli sviluppatori sognano da anni un unico framework .NET multipiattaforma. Cosa che consentirebbe agli sviluppatori di lavorare su progetti per qualsiasi prodotto Microsoft senza dover cambiare piattaforma e soprattutto senza dover utilizzare 5 linguaggi diversi.

Senza dover impazzire a studiare tecnologie diverse per essere in grado di sviluppare applicazioni web e applicazioni native per Windows, Mac, iOS e Android. Ma oggi la speranza sta per diventare realtà…

Abbiamo cercato una prima possibilità, sviluppare applicazioni web, con molte difficoltà a creare la UI dovendo usare CSS e HTML e senza poter sfruttare a pieno la potenza del dispositivo con i relativi sensori hardware.

Da quando il web è diventato enormemente di più di una scatola grigia, in cui navigare tra link e testi in un mondo a 56kb, con immagini che si caricavano in un quarto d'ora. Molte big company hanno cercato di addomesticarlo, con compagni come Adobe con Flash, per sviluppare vere e proprie applicazioni.

L’avvento degli smartphone nel 2007, anche se sembra passata un’era geologica, ha velocizzato la roulette su cui balla la pallina dell’innovazione.

Sono stati fatti molti tentativi, molti dei quali sono stati dei grandi flop, per un motivo molto semplice: giravano dentro un plugin e funzionava su una manciata di browser.

Analizziamo perché è sempre stato necessario un plugin, ActiveX (deprecati in agosto 2020) o Java che fosse:

  • HTML non è nato per disegnare UI
  • Javascript è un linguaggio con molti limiti, che vediamo tra poco
  • Gli sviluppatori e i team hanno sempre preferito usare un solo linguaggio per ottimizzare le risorse

Vediamo gli svantaggi di Javascript rispetto a .NET e C#

1. Gira solo lato client

2. Non è standard perché ogni browser lo interpreta

3. È difficile fare debug

4. La funzione bitwise rallenta il codice

5. Se il rendering viene interrotto l’utente non si accorge di errori

E poi avevamo la seconda possibilità, sfruttare Xamarin Forms per sviluppare applicazioni multipiattaforma, ma con molto codice ridondante e l’impossibilità di sviluppare applicazioni per MacOS senza avere Mac.

Lo sviluppo multipiattaforma con .NET sta per cambiare radicalmente

Sviluppare App Multipiattaforma

Questo obiettivo si sta per realizzare, come rivelato durante la conferenza degli sviluppatori di Microsoft Build che si è svolta a maggio 2020.

Microsoft ha presentato un'anteprima di .NET MAUI (Multi-platform App UI), un framework per creare interfacce utente (UI) a stack singolo, che supporta lo sviluppo di software per la maggior parte dei principali sistemi operativi, come Windows, Android, iOS e MacOS! Mica male davvero.

Sarà disponibile con .NET 6.0 da metà 2021 in preview.

MAUI non supporterà ufficialmente Linux, sebbene possa supportare in modo informale i sistemi operativi basati su Linux attraverso la comunità degli utenti e non la sento per niente una mancanza. Linux è un sistema operativo che va bene per pubblicare API tramite Azure sui Cloud Service, ma certamente possiamo fare a meno di applicazioni native per Linux per utenti finali.

Xamarin.Forms ha già il supporto multipiattaforma integrato per le app mobili Android e iOS, su cui si basa MAUI.

La modellazione è uno dei componenti più importanti per riunire le varie interfacce utente. Questo processo si verificherà nei prossimi due anni quando Microsoft implementerà la sua roadmap sia per Xamarin.Forms che per MAUI.

Come sviluppatore .NET con progetti attivi dovrai imparare le differenze e le somiglianze tra i due durante questo periodo, per sfruttare appieno i vantaggi di un'interfaccia utente unificata.

Scopri come migliorare subito le tue applicazioni .NET con i nostri corsi

Categoria

UI

Tag

UI multiplaform .NET 8.0