Negli ultimi anni, Microsoft ha investito molto nell’evoluzione di Blazor, un framework che consente di sviluppare applicazioni web utilizzando C# e .NET, eliminando la necessità di JavaScript. Con Blazor Hybrid, Microsoft porta questa filosofia oltre il web, permettendo di creare applicazioni per desktop, web e mobile utilizzando la stessa codebase.
Cos’è Blazor Hybrid?
Blazor Hybrid è una modalità di sviluppo che consente di eseguire componenti Blazor all’interno di applicazioni .NET MAUI, WPF o Windows Forms. A differenza di Blazor WebAssembly o Server, Blazor Hybrid non esegue il codice nel browser, ma direttamente sul dispositivo, garantendo prestazioni superiori e accesso completo alle API native del sistema operativo.
Principali caratteristiche:
- Codice C# condiviso: Possibilità di riutilizzare la logica di business tra web, desktop e mobile.
- Prestazioni elevate: Il codice viene eseguito direttamente in .NET, senza i limiti di WebAssembly.
- Accesso alle API native: Supporto per funzionalità di sistema come file system, notifiche, Bluetooth e altro.
- Integrazione con .NET MAUI: Blazor Hybrid si integra perfettamente con MAUI, facilitando lo sviluppo di applicazioni multipiattaforma.
- Nessuna dipendenza da JavaScript: Non è necessario utilizzare JavaScript per la logica di business, semplificando la manutenzione del codice.
Differenze tra Blazor Hybrid, WebAssembly e Server
Caratteristica | Blazor WebAssembly | Blazor Server | Blazor Hybrid |
---|---|---|---|
Esecuzione codice | Browser (WebAssembly) | Server (SignalR) | Applicazione ibrida con integrazione API Native |
Prestazioni | Buone, ma limitate dal browser | Elevate, dipende dalla connessione | Molto elevate |
Accesso API native | Limitato | Limitato | Completo |
Offline | Sì | No | Sì |
Complessità di deployment | Medio | Alto (richiede SignalR) | Bassa |
Quando usare Blazor Hybrid?
Blazor Hybrid è ideale per:
- Applicazioni enterprise che necessitano di un’interfaccia moderna e accesso alle API native di diversi sistemi operativi, sia mobile che non.
- Applicazioni multipiattaforma che devono girare su Windows, macOS, Android e iOS con una singola codebase.
- Progetti già basati su .NET MAUI, WPF o Windows Forms, che vogliono integrare interfacce Blazor.
Creare un’applicazione Blazor Hybrid Multipiattaforma e Web
Di seguito vedremo come creare un progetto Blazor Hybrid multipiattaforma (Windows, macOS, Android, iOS) e web utilizzando Visual Studio.
1. Creare il progetto in Visual Studio
- Apri Visual Studio 2022.
- Seleziona Crea un nuovo progetto.
- Cerca e seleziona .NET MAUI Blazor App and Web App.
- Dai un nome al progetto (es.
MyBlazorHybridApp
) e scegli la cartella di destinazione. - Clicca su Crea.
Visual Studio genererà una soluzione con il supporto per Windows, macOS, Android, iOS e Web, con Blazor come framework per l’interfaccia.
2. Verificare la configurazione
L’app .NET MAUI Blazor App and Web App include già il progetto MyBlazorHybridApp
.Web, quindi possiamo eseguire l’app come WebApp senza bisogno di configurazioni aggiuntive. Il file MauiProgram.cs
, presente nel progetto principale MyBlazorHybridApp dovrebbe già contenere il supporto per BlazorWebView:
public static class MauiProgram { public static MauiApp CreateMauiApp() { var builder = MauiApp.CreateBuilder(); builder .UseMauiApp<App>() .ConfigureFonts(fonts => { fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular"); }); // Add device-specific services used by the MyHybridApp.Shared project builder.Services.AddSingleton<IFormFactor, FormFactor>(); builder.Services.AddMauiBlazorWebView(); #if DEBUG builder.Services.AddBlazorWebViewDeveloperTools(); builder.Logging.AddDebug(); #endif return builder.Build(); } }
3. Verificare il componente Blazor condiviso
Verificare che nel progetto condiviso MyBlazorHybridApp
.Shared sia presente il file Home.razor
nella cartella Pages
così costituito:
@page "/" @using MyBlazorHybridApp.Shared.Services @inject IFormFactor FormFactor <PageTitle>Home</PageTitle> <h1>Hello, world!</h1> Welcome to your new app running on <em>@factor</em> using <em>@platform</em>. @code { private string factor => FormFactor.GetFormFactor(); private string platform => FormFactor.GetPlatform(); }
4. Eseguire l’applicazione
Per avviare l’app multipiattaforma:
- Per desktop (Windows/macOS): Seleziona Windows Machine o MacCatalyst e premi Esegui.
- Per mobile (Android/iOS): Seleziona il dispositivo o emulatore e premi Esegui.
- Per web: Seleziona BlazorWeb come target in Visual Studio e premi Esegui.
L’app sarà disponibile in localhost e navigabile tramite browser.
Conclusioni
Blazor Hybrid rappresenta un’opzione potente per sviluppatori .NET che vogliono creare applicazioni multipiattaforma senza dover imparare nuovi framework o linguaggi. Grazie alla sua integrazione con .NET MAUI, consente di costruire app moderne, performanti e accessibili alle API native.
Se stai pensando di sviluppare un’app, ma non sai come fare, affidati a professionisti che possano guidarti attraverso ogni fase del progetto.
Se hai domande o desideri una consulenza dedicata, contattaci!