Da poco rilasciato nella versione definitiva, finora abbiamo visto come sviluppare Single Page Applications (SPA) con Blazor ma questo nuovo framework offre molto di più!
In questo articolo di Scott Kuhl, si prende in esame il progetto YouTube Downloader per identificare la migliore soluzione di hosting model Blazor ed eseguirlo come una vera e propria applicazione.
Se vuoi approfondire Blazor per sviluppare una Single Page Application ti suggerisco questo libro di Michele Aponte. | ![]() |
YouTube Downloader permette la ricerca ed il download di video da YouTube, un progetto abbastanza semplice nel concetto ma allo stesso tempo abbastanza sofisticato per le soluzioni tecniche utilizzate.

Nel case study vengono analizzati i vari hosting model di Blazor e per ciascuno ne vengono valutati i limiti.
Il primo ad essere preso in considerazione è “Server-Side Blazor” che viene utilizzato per lo sviluppo di siti web interattivi grazie anche alla potenzialità di SignalR.
Il limite di questa soluzione è dato dal fatto che il file viene scaricato sul server e sarebbe necessario prevedere un eventuale funzionalità per il download dal server sul client. Inoltre, occorre valutare i costi per l’hosting dato anche il peso di ciascun video.
L’altra soluzione analizzata è “Client-Side Blazor” che grazie all’utilizzo di WebAssembly permette l’esecuzione direttamente nel browser.
Il primo limite di questo hosting model è il CORS, poichè: ” … si parla di cross-origin HTTP request (CORS) quando un client richiede una risorsa di un differente dominio, protocollo o porta. Ad esempio una web application con dominio X non può richiedere una risorsa ad un dominio Y tramite AJAX request se Y non ha abilitato il CORS ... ” (ItalianCoders.it)
Un altro limite sta nell’utilizzo della RAM di WebAssembly ” … processo a 32 bit con un massimo 4 GB di RAM … ” (v8.dev).
Il terzo limite è il sandboxing poiché YouTube Downloader utilizza un codec di terze parti: FFmpeg. Non saremo, così, in grado di utilizzare quella funzione perché non possiamo scaricare e avviare applicazioni non progettate per WebAssembly.
La soluzione più idonea rimane il modello “Desktop Applications” che, seppure ancora non pienamente supportato, risolve le limitazioni degli altri hosting model ad eccezione della sicurezza dell’API Key che non viene gestita nel progetto YouTube Downloader.
Il modello Desktop Application consiste nell’impacchettare l’applicazione Blazor in Electron.NET il che permetterebbe di eseguirla sui sistemi Windows, Mac e Linux.
Un interessante approfondimento sull’utilizzo di questa soluzione è analizzata in questo articolo sul blog di Steve Sanderson.