La rivoluzione Blazor
Michele Aponte
CTO @ Ellycode / CEO @ Blexin
Founder @ Blazor Developer Italiani
MVP Development Technologies
apomic80 apomic80 apomic80 apomic80
apomic80
https://...
JS
https://...
DOM
Razor Components
.NET
WebAssembly
https...
DOM
.NET Core
SignalR
Blazor WebAssembly Blazor Server
Razor Components
.NET
Browser
JavaScript
Runtime
dotnet.wasm
compilazione download
Browser API
(WebSocket,
DOM, File API,
Web Storage, ecc…)
transpilazione download
- Tutta
l’applicazione
viene costruita
dinamicamente
a partire da
un’unica pagina
- La navigazione
viene gestita da
un apposito
componente
I singoli elementi
della pagina sono
dei componenti:
- formano un
albero di
componenti
- della giusta
dimensione
(SoC)
- riutilizzabili e
NON accoppiati
- Tecnicamente
sono dei file
.razor che
contengono
Markup e codice
- Il nome del file
coincide con il
TAG del
componente
NavMenu.razor
<NavMenu />
- Una pagina è un
componente che
definisce una
destinazione per
una rotta
- Contiene la
direttiva @page
@page "/eventi"
@Body
<Router></Router>
- Tutte le richieste
di navigazione
vengono gestite
dal componente
Router
- Ogni volta che
viene richiesta
una pagina il
router la
renderizza nel
@Body
https...
DOM
.NET Core
SignalR
Razor Components
.NET
https://...
DOM
Razor Components
.NET
WebAssembly
HTTP Client
Browser
Browser API
(WebSocket,
DOM, File API,
Web Storage, ecc…)
JavaScript Runtime
Esperienza di
sviluppo
• Strumenti a disposizione
• CLI, IDE, Editor, Plug-in
• Sistema operativo
• Live reload e Debugger
• Convention over Configuration
• Dependency Injection
• CSS Isolation
• Gestione Forms
• Integrazione con Back-end
• REST e gRPC
• Integrazione librerie
• JS Isolation
• Lazy Load
Funzionalità
• Dimensioni del compilato
• Lazy Load può mitigare il problema
• DOM e Change Detection
• Forms e bindings
• Virtualizzazione dei contenuti
• Compilazione AoT
• CI/CD build time
Performance
Blazor Server
Web app
Tutte le interazioni vengono gestite sul server
HTML Prerenderizzato
Blazor WebAssembly
Web app con esecuzione sul client
Caricata dal web server
Può funzionare offline con i Service Worker
Blazor PWA – OS installed
Si presenta come una app nativa (con una finestra propria)
Funziona sia offline che online
Blazor Hybrid
Utilizza Electron / WebView con un rendering nativo .NET
Si presenta come una app nativa (con una finestra propria)
Funziona sia offline che online
Web
Desktop
+ Mobile
Blazor Native
Stesso modello di programmazione, ma con un rendering della
UI non HTML
Seguite la nostra community!
https://twitter.com/blazordevita
https://fb.me/blazordeveloperitaliani
https://github.com/blazordevita
https://blazordev.it/
Partecipate alle discussioni
https://fb.me/groups/998755440506950/
https://www.linkedin.com/groups/8896269/
https://github.com/blazordevita
+ +
/
Blazor Developer Italiani blazordevita fb.me/blazordeveloperitalian
blazordevita
blazordev.it
18 Marzo: Blazor Conf 2021
https://sessionize.com/blazor-conf-2021
https://blazorconf2021.eventbrite.it
https://blazorconf.it/
Thank you!

La rivoluzione blazor