Condividi tramite


Introduzione a Blazor per gli sviluppatori di Web Form 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.

Anteprima della copertina dell'eBook Blazor-for-ASP-NET-Web-Forms-Developers.

Il framework Web Form 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, ASP.NET Web Form ha reso la creazione di app Web semplici e produttive adottando molti dei modelli usati per lo sviluppo di desktop. In ASP.NET Web Form, 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 dei Web Forms forniti da Microsoft e da altri fornitori di componenti. I controlli semplificano le attività di connessione alle origini dati e la visualizzazione di visualizzazioni di dati avanzate. Per chi preferisce un approccio visivo, il progettista di Web Forms offre una semplice interfaccia drag-and-drop per la gestione dei controlli.

Nel corso degli anni, Microsoft ha introdotto nuovi framework web basati su ASP.NET per affrontare le tendenze nello 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 ASP.NET Web Form e lo criticano come un framework Web obsoleto e non aggiornato. Nonostante queste stime, molti sviluppatori Web .NET continuano a trovare ASP.NET Web Form un modo semplice, stabile e produttivo per svolgere il proprio lavoro.

Al momento della scrittura, quasi mezzo milione di sviluppatori Web usano ASP.NET Web Form ogni mese. Il framework web form 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 form ASP.NET" come era quando .NET è stato concepito per la prima volta. Gli argomenti relativi ai vantaggi e ai svantaggi di ASP.NET Web Forms rispetto agli altri nuovi framework Web .NET potrebbero continuare. ASP.NET Web Form rimane un framework diffuso per la creazione di app Web.

Anche in questo caso, 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 a codice aperto e multipiattaforma

Quando .NET e ASP.NET Web Form sono stati forniti per la prima volta, l'ecosistema della piattaforma ha un aspetto molto diverso rispetto a quello di oggi. I mercati desktop e server erano dominati da Windows. Piattaforme alternative come macOS e Linux erano ancora in difficoltà per ottenere trazione. ASP.NET Web Forms è fornito insieme a .NET Framework come componente esclusivo per Windows, il che significa che le app ASP.NET Web Forms possono essere eseguite solo su server Windows. 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.

La maggior parte dei framework Web moderni è ora anche open source, che offre numerosi vantaggi. Gli utenti non sono vincolati a un unico 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 dei 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 mitigazioni adatte che consentono loro di usufruire dei vantaggi di un ecosistema open source in modo sicuro e ragionevole. Esempi di tali mitigazioni includono accordi di licenza dei contributori, licenze permissive, verifiche di origine e fondazioni 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. Mono è una versione open source di .NET che funziona su Android, iOS e diverse altre piattaforme, tra cui orologi e smart TV. Nel 2020, Microsoft ha rilasciato .NET 5 che ha riconciliato .NET Core e Mono in "un singolo runtime e framework .NET che può essere usato ovunque e che ha comportamenti di runtime uniformi ed esperienze di sviluppo".

ASP.NET Web Form 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 .NET ha reso chiaro che ASP.NET Web Form non verrà convertito in .NET Core o .NET 8. Perché?

Nei primi giorni di .NET Core sono stati compiuti sforzi per convertire ASP.NET Web Form. Si è riscontrato che il numero di modifiche di rilievo necessarie era eccessivo. C'è anche un'ammissione qui che anche per Microsoft, 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 ASP.NET Web Form. Il codice sorgente per ASP.NET Web Forms è stato reso disponibile pubblicamente in formato di riferimento. Tuttavia, per il momento, sembra ASP.NET Web Form 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.

Ciò significa che ASP.NET Web Form è inattivo e non deve più essere usato? Certo che no! Se .NET Framework viene fornito come parte di Windows, ASP.NET Web Form sarà un framework supportato. Per molti sviluppatori di Web Forms, la mancanza di supporto multipiattaforma e open source non è un 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 ASP.NET Web Form in Windows. ASP.NET Web Form continuerà a essere un modo produttivo per scrivere app Web per molti anni.

Ma c'è un'altra tendenza da considerare, e questo è il passaggio al client.

Sviluppo Web sul lato client

Tutti i framework Web basati su .NET, tra cui ASP.NET Web Forms, hanno storicamente avuto una cosa in comune: sono renderizzati sul server. Nelle app Web sottoposte a rendering server, il browser effettua una richiesta al server, che esegue codice (codice .NET nelle app ASP.NET) per produrre una risposta. Tale risposta viene inviata nuovamente al browser per gestire. 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 l'accesso alle funzionalità del computer dell'utente. Perché non sfruttare la potenza di calcolo, l'archiviazione, la memoria e altre risorse del dispositivo 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 sul lato client. La logica e i dati che devono essere gestiti nel server possono comunque essere gestiti sul lato server. È possibile usare chiamate API Web o anche protocolli in tempo reale, ad esempio WebSocket. Questi vantaggi sono disponibili gratuitamente per gli sviluppatori Web se sono disposti a scrivere JavaScript. I framework dell'interfaccia utente lato client, ad esempio Angular, React e Vue, semplificano lo sviluppo Web sul lato client e sono cresciuti in popolarità. Gli sviluppatori di ASP.NET Web Forms possono anche trarre vantaggio dall'utilizzo del client e hanno persino un supporto già pronto con framework JavaScript integrati come ASP.NET AJAX.

Tuttavia, il bridging di due piattaforme e ecosistemi diversi (.NET e JavaScript) comporta un costo. Le competenze sono necessarie 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à vertiginosa. 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 turbinio inquieto si è verificato con i framework front-end come jQuery, Knockout, Angular, React e Vue. Ma dato il monopolio del browser JavaScript, c'era poca scelta nella questione. Questo è, fino a quando la comunità Web si è riunita e ha causato un miracolo !

WebAssembly soddisfa un bisogno

Nel 2015 i principali fornitori di browser si unirono alle 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. Sforzi iniziali incentrati 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 su 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 solo, 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 Blazor entra. 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, Blazor le app possono eseguire sul 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
  • Iniezione delle dipendenze
  • Routing a lato client
  • Layout
  • Debug nel browser
  • Interoperabilità JavaScript

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

Questo libro offre un'introduzione a Blazor specifica per gli sviluppatori di ASP.NET Web Forms. Ogni Blazor concetto viene presentato nel contesto di procedure e funzionalità di Web Form analoghe ASP.NET. Al termine di questo libro, si avrà una comprensione di:

  • Come creare Blazor app.
  • Come Blazor funziona.
  • Relazione Blazor con .NET.
  • Strategie ragionevoli per la migrazione di app Web Form ASP.NET esistenti a Blazor quando appropriato.

Inizia con Blazor

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