Condividi tramite


Introduzione a Blazor per sviluppatori di Web Forms ASP.NET

Suggerimento

Questo contenuto è un estratto dell'eBook, Blazor per gli sviluppatori di Web Forms ASP.NET per Azure, disponibile in .NET Docs o come PDF scaricabile gratuitamente che può essere letto offline.

Blazor-for-ASP-NET-Web-Forms-Developers eBook cover thumbnail.

Il framework Web Forms ASP.NET è stato un elemento fondamentale dello sviluppo Web .NET fin dalla prima distribuzione di .NET Framework nel 2002. Quando il Web era ancora in gran parte all'inizio, Web Forms ASP.NET ha reso la creazione di app Web semplici e produttive adottando molti dei modelli usati per lo sviluppo di desktop. In Web Forms ASP.NET, le pagine Web possono essere composte rapidamente da controlli dell'interfaccia utente riutilizzabili. Le interazioni dell'utente vengono gestite naturalmente come eventi. È disponibile un ricco ecosistema di controlli dell'interfaccia utente di Web Forms forniti dai fornitori Microsoft e di controllo. I controlli semplificano le attività di connessione alle origini dati e il caricamento di visualizzazioni di dati avanzati. Per l'inclinazione visiva, la finestra di progettazione Web Forms offre una semplice interfaccia di trascinamento della selezione per la gestione dei controlli.

Nel corso degli anni, Microsoft ha introdotto nuovi framework Web basati su ASP.NET per far fronte alle tendenze di sviluppo Web. Alcuni di questi framework Web includono ASP.NET MVC, pagine Web ASP.NET e più di recente ASP.NET Core. Con ogni nuovo framework, alcuni hanno stimato il declino imminente di Web Forms ASP.NET e lo criticano come un framework Web datato e superato. Nonostante queste previsioni, molti sviluppatori Web .NET continuano a trovare Web Forms ASP.NET un modo semplice, stabile e produttivo per svolgere il proprio lavoro.

In questo momento, quasi mezzo milione di sviluppatori Web usa Web Forms ASP.NET ogni mese. Il framework Web Forms ASP.NET è stabile fino al punto che documenti, esempi, libri e post di blog di un decennio fa rimangono utili e pertinenti. Per molti sviluppatori Web .NET, "ASP.NET" è ancora sinonimo di "Web Forms ASP.NET" come era quando .NET è stato concepito per la prima volta. Le discussioni relative a vantaggi e svantaggi di Web Forms ASP.NET rispetto agli altri nuovi framework Web .NET potrebbero continuare a infuriare. Web Forms ASP.NET rimane un framework diffuso per la creazione di app Web.

Ciononostante, le innovazioni nello sviluppo di software non rallentano. Tutti gli sviluppatori di software devono rimanere al passo con le nuove tecnologie e le tendenze. Due tendenze in particolare meritano di essere considerate:

  1. Il passaggio a open source e multipiattaforma
  2. Il passaggio della logica dell'app al client

.NET open source e multipiattaforma

Quando .NET e Web Forms ASP.NET sono stati forniti per la prima volta, l'ecosistema della piattaforma aveva un aspetto molto diverso rispetto a quello di oggi. I mercati desktop e server erano dominati da Windows. Piattaforme alternative come macOS e Linux stavano ancora cercando di ottenere trazione. Web Forms ASP.NET viene fornito con .NET Framework come componente solo Windows, il che significa che le app Web Forms ASP.NET possono essere eseguite solo nei computer Windows Server. Molti ambienti moderni ora usano diversi tipi di piattaforme per server e computer di sviluppo, in modo che il supporto multipiattaforma per molti utenti sia un requisito assoluto.

Ora la maggior parte dei framework Web moderni è anche open source, offrendo numerosi vantaggi. Gli utenti non vengono controllati da un singolo proprietario del progetto per correggere i bug e aggiungere funzionalità. I progetti open source offrono una maggiore trasparenza sui progressi dello sviluppo e sulle modifiche imminenti. I progetti open source godono di contributi di un'intera community e promuovono un ecosistema open source di supporto. Nonostante i rischi dell'open source, molti consumatori e collaboratori hanno trovato i giusti adattamenti che consentono loro di usufruire dei vantaggi di un ecosistema open source in modo sicuro e ragionevole. Esempi di tali mitigazioni includono contratti di licenza di collaboratore, licenze descrittive, analisi pedigree e basi di supporto.

La community di .NET ha adottato sia il supporto multipiattaforma che l'open source. .NET Core è un'implementazione open source e multipiattaforma di .NET in esecuzione su un'ampia gamma di piattaforme, tra cui Windows, macOS e varie distribuzioni Linux. Xamarin fornisce Mono, una versione open source di .NET. Mono viene eseguito su Android, iOS e diversi altri fattori di forma, tra cui orologi e televisori intelligenti. Nel 2020, Microsoft ha rilasciato .NET 5 che riconcilia .NET Core e Mono in "un singolo runtime e framework .NET che può essere usato ovunque e che ha comportamenti ed esperienze di sviluppo uniformi di runtime".

Web Forms ASP.NET trarrà vantaggio dal passaggio al supporto open source e multipiattaforma? La risposta, purtroppo, è no, o almeno non nella stessa misura del resto della piattaforma. Il team di .NET ha chiarito che Web Forms ASP.NET non verrà convertito in .NET Core o .NET 8. Perché?

Agli albori di .NET Core erano stati compiuti sforzi per convertire Web Forms ASP.NET. Tuttavia, il numero di modifiche di rilievo necessarie era troppo drastico. Qui c'è anche una confessione di Microsoft chi dichiara che esiste un limite al numero di framework Web che può supportare contemporaneamente. Forse qualcuno della community prenderà la causa della creazione di una versione open source e multipiattaforma di Web Forms ASP.NET. Il codice sorgente per Web Forms ASP.NET è stato reso disponibile pubblicamente nel modulo di riferimento. Tuttavia, per il momento, sembra che Web Forms ASP.NET rimarrà solo Windows e senza un modello di contributo open source. Se il supporto multipiattaforma o open source diventa importante per gli scenari, è necessario cercare qualcosa di nuovo.

Questo significa che Web Forms ASP.NET è inattivo e non deve più essere usato? Certo che no! Fintanto che .NET Framework viene fornito come parte di Windows, Web Forms ASP.NET sarà un framework supportato. Per molti sviluppatori Web Forms, la mancanza di supporto multipiattaforma e open source non è un vero problema. Se non si ha un requisito per il supporto multipiattaforma, open source o qualsiasi altra nuova funzionalità in .NET Core o .NET 8, è consigliabile attenersi a Web Forms ASP.NET in Windows. Web Forms ASP.NET continuerà a essere un modo produttivo per scrivere app Web per molti anni a venire.

Ma c'è un'altra tendenza che vale la pena considerare, e questo è il passaggio al client.

Sviluppo Web a lato client

Tutti i framework Web basati su .NET, incluso Web Forms ASP.NET, hanno storicamente avuto un aspetto comune: sono sottoposti a rendering del server. Nelle app Web sottoposte a rendering del server, il browser effettua una richiesta al server, che esegue una parte del codice (codice .NET nelle app ASP.NET) per produrre una risposta. Tale risposta viene inviata nuovamente al browser per essere gestita. In questo modello, il browser viene usato come motore di rendering sottile. Il duro lavoro di produzione dell'interfaccia utente, l'esecuzione della logica di business e la gestione dello stato si verifica nel server.

Tuttavia, i browser sono diventati piattaforme versatili. Implementano un numero sempre crescente di standard Web aperti che concedono accesso alle funzionalità del computer dell'utente. Perché non sfruttare la potenza di calcolo, l'archiviazione, la memoria e altre risorse del dispositivo a lato client? Le interazioni dell'interfaccia utente, in particolare, possono trarre vantaggio da un aspetto più ricco e più interattivo quando viene gestito almeno parzialmente o completamente a lato client. La logica e i dati che devono essere gestiti nel server possono comunque essere gestiti a lato server. È possibile usare chiamate API Web o anche protocolli in tempo reale, come WebSocket. Questi vantaggi sono disponibili gratuitamente per gli sviluppatori Web se sono disposti a scrivere in JavaScript. I framework dell'interfaccia utente a lato client, ad esempio Angular, React e Vue, semplificano lo sviluppo Web sul lato client e sono cresciuti in popolarità. Gli sviluppatori di Web Forms ASP.NET possono anche trarre vantaggio dall'uso del client e anche avere un supporto predefinito con framework JavaScript integrati come ASP.NET AJAX.

Tuttavia, connettere due piattaforme ed ecosistemi diversi (.NET e JavaScript) comporta un costo. Sono necessarie competenze in due mondi paralleli con linguaggi, framework e strumenti diversi. Il codice e la logica non possono essere facilmente condivisi tra client e server, con conseguente sovraccarico di duplicazione e progettazione. Può anche essere difficile tenere il passo con l'ecosistema JavaScript, che ha una storia di evoluzione a velocità della luce. Il framework front-end e le preferenze degli strumenti di compilazione cambiano rapidamente. Il settore ha osservato la progressione da Grunt a Gulp a Webpack e così via. Lo stesso tasso di abbandono si è verificato con framework front-end come jQuery, Knockout, Angular, React e Vue. Ma dato il monopolio del browser JavaScript, c'era poca scelta sulla questione. Cioè fino a quando la comunità Web si è riunita e ha permesso a un miracolo di accadere!

WebAssembly soddisfa un’esigenza

Nel 2015, i principali fornitori di browser hanno unito le forze in un gruppo di community W3C per creare un nuovo standard Web aperto denominato WebAssembly. WebAssembly è un codice di byte per il Web. Se è possibile compilare il codice in WebAssembly, può essere eseguito in qualsiasi browser in qualsiasi piattaforma a velocità quasi nativa. Gli sforzi iniziali si sono concentrati su C/C++. Il risultato è stata una dimostrazione drammatica dell'esecuzione di motori di grafica 3D nativi direttamente nel browser senza plug-in. WebAssembly è stato standardizzato e implementato da tutti i principali browser.

Il lavoro sull'esecuzione di .NET in WebAssembly è stato annunciato alla fine del 2017 e rilasciato nel 2020, incluso il supporto in .NET 5 e versioni successive. La possibilità di eseguire codice .NET direttamente nel browser consente lo sviluppo Web full-stack con .NET.

Blazor: sviluppo Web full-stack con .NET

Da sola, la possibilità di eseguire codice .NET in un browser non offre un'esperienza end-to-end per la creazione di app Web lato client. Ecco dove entra in gioco Blazor. Blazor è un framework dell'interfaccia utente Web sul lato client basato su C# invece di JavaScript. Blazor può essere eseguito direttamente nel browser tramite WebAssembly. Non sono necessari plug-in del browser. In alternativa, le app Blazor possono essere eseguite a lato server in .NET e gestire tutte le interazioni utente tramite una connessione in tempo reale con il browser.

Blazor offre un ottimo supporto per gli strumenti in Visual Studio e Visual Studio Code. Il framework include anche un modello di componente dell'interfaccia utente completo e offre funzionalità predefinite per:

  • Moduli e convalida
  • Inserimento delle dipendenze
  • Routing a lato client
  • Layout
  • Debug nel browser
  • Interoperabilità JavaScript

Blazor ha molto in comune con Web Forms ASP.NET. Entrambi i framework offrono modelli di programmazione dell'interfaccia utente con stato basati su componenti e basati su eventi. La differenza principale dell'architettura è che Web Forms ASP.NET viene eseguito solo nel server. Blazor può essere eseguito a lato client nel browser. Tuttavia, se si proviene da un background Web Forms ASP.NET, c'è molto in Blazor che si apparirà familiare. Blazor è una soluzione naturale per gli sviluppatori di Web Forms ASP.NET alla ricerca di un modo per sfruttare lo sviluppo a lato client e il futuro open source e multipiattaforma di .NET.

Questo libro offre un'introduzione a Blazor che si rivolge in modo specifico agli sviluppatori di Web Forms ASP.NET. Ogni concetto Blazor viene presentato nel contesto di procedure e funzionalità di Web Forms ASP.NET. Una volta terminato questo libro, si comprenderà:

  • Come creare app Blazor.
  • Come funziona Blazor.
  • Che relazione c’è tra Blazor e .NET.
  • Strategie ragionevoli per la migrazione di app Web Forms ASP.NET esistenti a Blazor, dove appropriato.

Introduzione a Blazor

Iniziare a usare Blazor è facile. Passare a https://blazor.net e seguire i collegamenti per installare .NET SDK e modelli di progetto Blazor appropriati. Sono disponibili anche istruzioni per configurare gli strumenti di Blazor in Visual Studio o Visual Studio Code.