SlideShare a Scribd company logo
1 of 17
BLAZOR w/ .NET 5
Gerardo Greco 16/12/2020
Gerardo Greco
Web Developer @giuneco
• .NET Full & Core
• MVC
• Blazor Server & WASM
• Che cos’è Blazor
• Componenti
• Modelli di hosting
• WebAssembly
• Principali novità
www.giuneco.tech
Mini agenda
Blazor è un framework per la creazione di Single Page Application (SPA)
tramite l’utilizzo di C#.
Creato da Steve Sanderson e successivamente inserito in .NET Core come
esperimento.
Visto l’enorme successo avuto sulla community è stato poi deciso di renderlo
parte integrante dell’ecosistema .NET
Offre tutti i vantaggi di un framework front-end scrivendo codice
interamente in C#.
www.giuneco.tech
Che cos’è Blazor
• Ecosistema .NET
• Condivisione della logica dell’app tra client e server
• Lo sviluppatore non è costretto a scrivere codice Javascript
• È comunque possibile l’utilizzo di librerie Javascript
• Nessuna code transpilation (a differenza di Bridge.NET)
www.giuneco.tech
Perché utilizzare Blazor
I componenti sono blocchi autonomi dell’interfaccia utente, come una
pagina, una finestra di dialogo una form etc.
Caratteristiche
• Sono composti da codice HTML e Razor per la parte di «view» e C# per la parte di
«business logic»
• La loro estensione è .razor
• Sono riutilizzabili all’interno del codice e condivisibili tra progetti
• Possono essere utilizzato all’interno di altri componenti come un qualsiasi altro
tag HTML
www.giuneco.tech
Tutto è un componente
www.giuneco.tech
Blazor serverBlazor webassembly
https://...
DOM
Componenti
.NET (mono)
WebAssembly
https...
DOM
.NET Core
SignalR
Componenti
.NET
Modelli di hosting
• È uno standard web aperto e sviluppato da W3C che definisce un
formato binario compilabile da linguaggi di più alto livello che
permette di far girare del codice all'interno dello stesso runtime nel
quale gira javascript.
www.giuneco.tech
WebAssembly (wasm)
≠
Miglioramento delle performance con focus su:
www.giuneco.tech
Principali novità
https://github.com/dotnet/aspnetcore/tree/master/src/Components/benchmarkapps/Wasm.Performance/TestApp
Serializzazione JSON Rendering delle pagine
www.giuneco.tech
Principali novità
• CSS isolation
• Javascript isolation
• Virtualizzazione dei componenti
• Nuovi componenti: Inputfile, InputRadio, InputRadioGroup
• Lazy loading delle dll
CSS isolation
www.giuneco.tech
Principali novità
È possibile definire CSS all’interno di un singolo componente
Questo fa si che lo stile globale di una pagina web non sovrascriva quello dello
specifico componente.
È possibile far ereditare lo stile anche ai figli del componente principale tramite lo
pseudo-elemento ::deep
Javascript isolation
www.giuneco.tech
Principali novità
Grazie a JSInteropt è possibile utillizzare Javascript con Blazor e viceversa.
Fino a .NET Core 3.1 era necessario le nostre funzioni Javascript fossero esposte nel
namespace globale Window. Inoltre era necessario referenziare il/i file javascript.
In .NET 5 questo non è più necessario. È possibile caricare codice javascript per uno
specifico componente
Virtualizzazione dei componenti
www.giuneco.tech
Principali novità
La virtualizzazione è una tecnica per limitare il rendering dell'interfaccia utente alle
sole parti attualmente visibili. L’effetto che si avrà sarà quello dell’ infinity scroll.
Ad esempio, quando si dispone di un lungo elenco o di una tabella con molte righe,
grazie alla virtualizzazione è possibile generare solo la parte visibile all’utente.
Questo comporta una maggiore velocità nel presentare i dati.
Lazy loading assemblies
www.giuneco.tech
Principali novità
Al primo caricamento vengono scaricate tutte le dl, anche se poi utilizzate in pagine
differenti da quella attualmente visibile o persino utilizzati in una sola pagina.
Per ottimizzare il processo di startup è possibile ricorrere al lazy loading delle dll.
DEMO
www.giuneco.tech
Riferimenti e contatti
• https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-5-release-candidate-1/
• https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-5-release-candidate-2/
https://www.facebook.com/Giuneco
http://www.giuneco.tech/
https://www.instagram.com/giuneco
GRAZIE PER L’ATTENZIONE
www.giuneco.tech

More Related Content

What's hot

Generazione Dinamica di Codice in .NET
Generazione Dinamica di Codice in .NETGenerazione Dinamica di Codice in .NET
Generazione Dinamica di Codice in .NETStefano Ottaviani
 
Angular js o React? Spunti e idee per la scelta di un framework
Angular js o React? Spunti e idee per la scelta di un frameworkAngular js o React? Spunti e idee per la scelta di un framework
Angular js o React? Spunti e idee per la scelta di un frameworkGiovanni Buffa
 
Utilizzare Windows Vista come Software Developer
Utilizzare Windows Vista come Software DeveloperUtilizzare Windows Vista come Software Developer
Utilizzare Windows Vista come Software DeveloperStefano Ottaviani
 
Blazor: are we ready for the launch?
Blazor: are we ready for the launch?Blazor: are we ready for the launch?
Blazor: are we ready for the launch?Andrea Agnoletto
 
Blazor per uno sviluppatore Web Form
Blazor per uno sviluppatore Web FormBlazor per uno sviluppatore Web Form
Blazor per uno sviluppatore Web FormAndrea Dottor
 
Realizzare applicazioni cross-platform con Xamarin e il pattern MVVM
Realizzare applicazioni cross-platform con Xamarin e il pattern MVVMRealizzare applicazioni cross-platform con Xamarin e il pattern MVVM
Realizzare applicazioni cross-platform con Xamarin e il pattern MVVMCodemotion
 
Multi-Device Hybrid Apps con Visual Studio e Apache Cordova
Multi-Device Hybrid Apps con Visual Studio e Apache CordovaMulti-Device Hybrid Apps con Visual Studio e Apache Cordova
Multi-Device Hybrid Apps con Visual Studio e Apache CordovaAndrea Dottor
 
Applicazioni Web ultra-performanti con Vue.js e Delphi
Applicazioni Web ultra-performanti con Vue.js e DelphiApplicazioni Web ultra-performanti con Vue.js e Delphi
Applicazioni Web ultra-performanti con Vue.js e DelphiMarco Breveglieri
 
Christmas greetings cards with blazor
Christmas greetings cards with blazorChristmas greetings cards with blazor
Christmas greetings cards with blazorNicolò Carandini
 
AngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni webAngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni webLuca Milan
 
Training Signal Webtrends
Training Signal WebtrendsTraining Signal Webtrends
Training Signal WebtrendsStefano Iaboni
 
Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0Andrea Dottor
 
Integrazione con Visual Studio Online
Integrazione con Visual Studio OnlineIntegrazione con Visual Studio Online
Integrazione con Visual Studio OnlineDavide Benvegnù
 
Maven: Convention over Configuration
Maven: Convention over ConfigurationMaven: Convention over Configuration
Maven: Convention over Configurationvschiavoni
 
Wasm and Blazor CDays keynote
Wasm and Blazor CDays keynoteWasm and Blazor CDays keynote
Wasm and Blazor CDays keynoteNicolò Carandini
 
Sviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobileSviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobileRoberto Cappelletti
 
Single Page web Application
Single Page web ApplicationSingle Page web Application
Single Page web ApplicationRoberto Messora
 
Dal requisito all'implementazione @ CD2010
Dal requisito all'implementazione @ CD2010Dal requisito all'implementazione @ CD2010
Dal requisito all'implementazione @ CD2010Mauro Servienti
 

What's hot (20)

Generazione Dinamica di Codice in .NET
Generazione Dinamica di Codice in .NETGenerazione Dinamica di Codice in .NET
Generazione Dinamica di Codice in .NET
 
Angular js o React? Spunti e idee per la scelta di un framework
Angular js o React? Spunti e idee per la scelta di un frameworkAngular js o React? Spunti e idee per la scelta di un framework
Angular js o React? Spunti e idee per la scelta di un framework
 
Utilizzare Windows Vista come Software Developer
Utilizzare Windows Vista come Software DeveloperUtilizzare Windows Vista come Software Developer
Utilizzare Windows Vista come Software Developer
 
Blazor: are we ready for the launch?
Blazor: are we ready for the launch?Blazor: are we ready for the launch?
Blazor: are we ready for the launch?
 
Spa with Blazor
Spa with BlazorSpa with Blazor
Spa with Blazor
 
Blazor per uno sviluppatore Web Form
Blazor per uno sviluppatore Web FormBlazor per uno sviluppatore Web Form
Blazor per uno sviluppatore Web Form
 
Realizzare applicazioni cross-platform con Xamarin e il pattern MVVM
Realizzare applicazioni cross-platform con Xamarin e il pattern MVVMRealizzare applicazioni cross-platform con Xamarin e il pattern MVVM
Realizzare applicazioni cross-platform con Xamarin e il pattern MVVM
 
Multi-Device Hybrid Apps con Visual Studio e Apache Cordova
Multi-Device Hybrid Apps con Visual Studio e Apache CordovaMulti-Device Hybrid Apps con Visual Studio e Apache Cordova
Multi-Device Hybrid Apps con Visual Studio e Apache Cordova
 
Applicazioni Web ultra-performanti con Vue.js e Delphi
Applicazioni Web ultra-performanti con Vue.js e DelphiApplicazioni Web ultra-performanti con Vue.js e Delphi
Applicazioni Web ultra-performanti con Vue.js e Delphi
 
Christmas greetings cards with blazor
Christmas greetings cards with blazorChristmas greetings cards with blazor
Christmas greetings cards with blazor
 
AngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni webAngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni web
 
Training Signal Webtrends
Training Signal WebtrendsTraining Signal Webtrends
Training Signal Webtrends
 
Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0
 
Integrazione con Visual Studio Online
Integrazione con Visual Studio OnlineIntegrazione con Visual Studio Online
Integrazione con Visual Studio Online
 
Maven: Convention over Configuration
Maven: Convention over ConfigurationMaven: Convention over Configuration
Maven: Convention over Configuration
 
Wasm and Blazor CDays keynote
Wasm and Blazor CDays keynoteWasm and Blazor CDays keynote
Wasm and Blazor CDays keynote
 
Sviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobileSviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobile
 
Single Page web Application
Single Page web ApplicationSingle Page web Application
Single Page web Application
 
Dal requisito all'implementazione @ CD2010
Dal requisito all'implementazione @ CD2010Dal requisito all'implementazione @ CD2010
Dal requisito all'implementazione @ CD2010
 
Asp.Net MVC 5
Asp.Net MVC 5Asp.Net MVC 5
Asp.Net MVC 5
 

Similar to Blazor with .net 5 - di Gerardo Greco

Blazor ha vinto? Storie di casi reali
Blazor ha vinto? Storie di casi realiBlazor ha vinto? Storie di casi reali
Blazor ha vinto? Storie di casi realiAndrea Dottor
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web AppsAndrea Dottor
 
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Andrea Dottor
 
Sviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailSviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailDotNetMarche
 
Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte
 
Cert03 70-486 developing asp.net mvc 4 web applications
Cert03   70-486 developing asp.net mvc 4 web applicationsCert03   70-486 developing asp.net mvc 4 web applications
Cert03 70-486 developing asp.net mvc 4 web applicationsDotNetCampus
 
Come sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTMLCome sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTMLSinergia Totale
 
Antica presentazione AJAX
Antica presentazione AJAXAntica presentazione AJAX
Antica presentazione AJAXTommaso Torti
 
Meetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web AppMeetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web Appdotnetcode
 
ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)Giorgio Di Nardo
 
Le novita di visual studio 2012
Le novita di visual studio 2012Le novita di visual studio 2012
Le novita di visual studio 2012Crismer La Pignola
 
Meetup Progressive Web App
Meetup Progressive Web AppMeetup Progressive Web App
Meetup Progressive Web Appdotnetcode
 
.NET Core, ASP.NET Core e Linux per il Mobile
.NET Core, ASP.NET Core e Linux per il Mobile.NET Core, ASP.NET Core e Linux per il Mobile
.NET Core, ASP.NET Core e Linux per il MobilePietro Libro
 
ASP.NET Core Services e Linux per il Mobile - Pietro Libro - Codemotion Rome...
ASP.NET Core Services e Linux per il Mobile  - Pietro Libro - Codemotion Rome...ASP.NET Core Services e Linux per il Mobile  - Pietro Libro - Codemotion Rome...
ASP.NET Core Services e Linux per il Mobile - Pietro Libro - Codemotion Rome...Codemotion
 
Dal RenderFragment ai Generics, tips for Blazor developers
Dal RenderFragment ai Generics, tips for Blazor developersDal RenderFragment ai Generics, tips for Blazor developers
Dal RenderFragment ai Generics, tips for Blazor developersAndrea Dottor
 
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platformAngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platformGabriele Gaggi
 
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, PiacenzaSviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, PiacenzaMarco Breveglieri
 
Corso WebApp iOS - Lezione 06: Web Development for iOS Devices
Corso WebApp iOS - Lezione 06:   Web Development for iOS DevicesCorso WebApp iOS - Lezione 06:   Web Development for iOS Devices
Corso WebApp iOS - Lezione 06: Web Development for iOS DevicesAndrea Picchi
 

Similar to Blazor with .net 5 - di Gerardo Greco (20)

Blazor ha vinto? Storie di casi reali
Blazor ha vinto? Storie di casi realiBlazor ha vinto? Storie di casi reali
Blazor ha vinto? Storie di casi reali
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web Apps
 
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
 
Sviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailSviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle Monorail
 
Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0
 
Cert03 70-486 developing asp.net mvc 4 web applications
Cert03   70-486 developing asp.net mvc 4 web applicationsCert03   70-486 developing asp.net mvc 4 web applications
Cert03 70-486 developing asp.net mvc 4 web applications
 
Come sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTMLCome sviluppare applicazioni cross device con HTML
Come sviluppare applicazioni cross device con HTML
 
Antica presentazione AJAX
Antica presentazione AJAXAntica presentazione AJAX
Antica presentazione AJAX
 
Meetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web AppMeetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web App
 
DDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continuaDDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continua
 
ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)
 
Le novita di visual studio 2012
Le novita di visual studio 2012Le novita di visual studio 2012
Le novita di visual studio 2012
 
Meetup Progressive Web App
Meetup Progressive Web AppMeetup Progressive Web App
Meetup Progressive Web App
 
.NET Core, ASP.NET Core e Linux per il Mobile
.NET Core, ASP.NET Core e Linux per il Mobile.NET Core, ASP.NET Core e Linux per il Mobile
.NET Core, ASP.NET Core e Linux per il Mobile
 
ASP.NET Core Services e Linux per il Mobile - Pietro Libro - Codemotion Rome...
ASP.NET Core Services e Linux per il Mobile  - Pietro Libro - Codemotion Rome...ASP.NET Core Services e Linux per il Mobile  - Pietro Libro - Codemotion Rome...
ASP.NET Core Services e Linux per il Mobile - Pietro Libro - Codemotion Rome...
 
Dal RenderFragment ai Generics, tips for Blazor developers
Dal RenderFragment ai Generics, tips for Blazor developersDal RenderFragment ai Generics, tips for Blazor developers
Dal RenderFragment ai Generics, tips for Blazor developers
 
Novità di Asp.Net 4.0
Novità di Asp.Net 4.0Novità di Asp.Net 4.0
Novità di Asp.Net 4.0
 
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platformAngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
 
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, PiacenzaSviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
 
Corso WebApp iOS - Lezione 06: Web Development for iOS Devices
Corso WebApp iOS - Lezione 06:   Web Development for iOS DevicesCorso WebApp iOS - Lezione 06:   Web Development for iOS Devices
Corso WebApp iOS - Lezione 06: Web Development for iOS Devices
 

More from Giuneco S.r.l

GraphQL in .Net Core - di Lorenzo Zarone
GraphQL in .Net Core - di Lorenzo ZaroneGraphQL in .Net Core - di Lorenzo Zarone
GraphQL in .Net Core - di Lorenzo ZaroneGiuneco S.r.l
 
Variable Fonts - di Jessica Risica
Variable Fonts - di Jessica RisicaVariable Fonts - di Jessica Risica
Variable Fonts - di Jessica RisicaGiuneco S.r.l
 
Testi per il web - di Elena Granchi
Testi per il web - di Elena GranchiTesti per il web - di Elena Granchi
Testi per il web - di Elena GranchiGiuneco S.r.l
 
Risolvi i tuoi problemi di sviluppo con agilità - di Stefano Brocchi
Risolvi i tuoi problemi di sviluppo con agilità - di Stefano BrocchiRisolvi i tuoi problemi di sviluppo con agilità - di Stefano Brocchi
Risolvi i tuoi problemi di sviluppo con agilità - di Stefano BrocchiGiuneco S.r.l
 
Svelte js - di Mattia Bonanni
Svelte js - di Mattia BonanniSvelte js - di Mattia Bonanni
Svelte js - di Mattia BonanniGiuneco S.r.l
 
Unit Test di Gabriele Seroni
Unit Test di Gabriele SeroniUnit Test di Gabriele Seroni
Unit Test di Gabriele SeroniGiuneco S.r.l
 

More from Giuneco S.r.l (6)

GraphQL in .Net Core - di Lorenzo Zarone
GraphQL in .Net Core - di Lorenzo ZaroneGraphQL in .Net Core - di Lorenzo Zarone
GraphQL in .Net Core - di Lorenzo Zarone
 
Variable Fonts - di Jessica Risica
Variable Fonts - di Jessica RisicaVariable Fonts - di Jessica Risica
Variable Fonts - di Jessica Risica
 
Testi per il web - di Elena Granchi
Testi per il web - di Elena GranchiTesti per il web - di Elena Granchi
Testi per il web - di Elena Granchi
 
Risolvi i tuoi problemi di sviluppo con agilità - di Stefano Brocchi
Risolvi i tuoi problemi di sviluppo con agilità - di Stefano BrocchiRisolvi i tuoi problemi di sviluppo con agilità - di Stefano Brocchi
Risolvi i tuoi problemi di sviluppo con agilità - di Stefano Brocchi
 
Svelte js - di Mattia Bonanni
Svelte js - di Mattia BonanniSvelte js - di Mattia Bonanni
Svelte js - di Mattia Bonanni
 
Unit Test di Gabriele Seroni
Unit Test di Gabriele SeroniUnit Test di Gabriele Seroni
Unit Test di Gabriele Seroni
 

Blazor with .net 5 - di Gerardo Greco

  • 1. BLAZOR w/ .NET 5 Gerardo Greco 16/12/2020
  • 2. Gerardo Greco Web Developer @giuneco • .NET Full & Core • MVC • Blazor Server & WASM
  • 3. • Che cos’è Blazor • Componenti • Modelli di hosting • WebAssembly • Principali novità www.giuneco.tech Mini agenda
  • 4. Blazor è un framework per la creazione di Single Page Application (SPA) tramite l’utilizzo di C#. Creato da Steve Sanderson e successivamente inserito in .NET Core come esperimento. Visto l’enorme successo avuto sulla community è stato poi deciso di renderlo parte integrante dell’ecosistema .NET Offre tutti i vantaggi di un framework front-end scrivendo codice interamente in C#. www.giuneco.tech Che cos’è Blazor
  • 5. • Ecosistema .NET • Condivisione della logica dell’app tra client e server • Lo sviluppatore non è costretto a scrivere codice Javascript • È comunque possibile l’utilizzo di librerie Javascript • Nessuna code transpilation (a differenza di Bridge.NET) www.giuneco.tech Perché utilizzare Blazor
  • 6. I componenti sono blocchi autonomi dell’interfaccia utente, come una pagina, una finestra di dialogo una form etc. Caratteristiche • Sono composti da codice HTML e Razor per la parte di «view» e C# per la parte di «business logic» • La loro estensione è .razor • Sono riutilizzabili all’interno del codice e condivisibili tra progetti • Possono essere utilizzato all’interno di altri componenti come un qualsiasi altro tag HTML www.giuneco.tech Tutto è un componente
  • 7. www.giuneco.tech Blazor serverBlazor webassembly https://... DOM Componenti .NET (mono) WebAssembly https... DOM .NET Core SignalR Componenti .NET Modelli di hosting
  • 8. • È uno standard web aperto e sviluppato da W3C che definisce un formato binario compilabile da linguaggi di più alto livello che permette di far girare del codice all'interno dello stesso runtime nel quale gira javascript. www.giuneco.tech WebAssembly (wasm) ≠
  • 9. Miglioramento delle performance con focus su: www.giuneco.tech Principali novità https://github.com/dotnet/aspnetcore/tree/master/src/Components/benchmarkapps/Wasm.Performance/TestApp Serializzazione JSON Rendering delle pagine
  • 10. www.giuneco.tech Principali novità • CSS isolation • Javascript isolation • Virtualizzazione dei componenti • Nuovi componenti: Inputfile, InputRadio, InputRadioGroup • Lazy loading delle dll
  • 11. CSS isolation www.giuneco.tech Principali novità È possibile definire CSS all’interno di un singolo componente Questo fa si che lo stile globale di una pagina web non sovrascriva quello dello specifico componente. È possibile far ereditare lo stile anche ai figli del componente principale tramite lo pseudo-elemento ::deep
  • 12. Javascript isolation www.giuneco.tech Principali novità Grazie a JSInteropt è possibile utillizzare Javascript con Blazor e viceversa. Fino a .NET Core 3.1 era necessario le nostre funzioni Javascript fossero esposte nel namespace globale Window. Inoltre era necessario referenziare il/i file javascript. In .NET 5 questo non è più necessario. È possibile caricare codice javascript per uno specifico componente
  • 13. Virtualizzazione dei componenti www.giuneco.tech Principali novità La virtualizzazione è una tecnica per limitare il rendering dell'interfaccia utente alle sole parti attualmente visibili. L’effetto che si avrà sarà quello dell’ infinity scroll. Ad esempio, quando si dispone di un lungo elenco o di una tabella con molte righe, grazie alla virtualizzazione è possibile generare solo la parte visibile all’utente. Questo comporta una maggiore velocità nel presentare i dati.
  • 14. Lazy loading assemblies www.giuneco.tech Principali novità Al primo caricamento vengono scaricate tutte le dl, anche se poi utilizzate in pagine differenti da quella attualmente visibile o persino utilizzati in una sola pagina. Per ottimizzare il processo di startup è possibile ricorrere al lazy loading delle dll.
  • 15. DEMO
  • 16. www.giuneco.tech Riferimenti e contatti • https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-5-release-candidate-1/ • https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-5-release-candidate-2/ https://www.facebook.com/Giuneco http://www.giuneco.tech/ https://www.instagram.com/giuneco