- 12/01/2020
- 6 minuti a leggere
-
- a
- Y
- g
- P
-
+1
“Atwood Legge: Qualsiasi applicazione che può essere scritto in JavaScript, finirà per essere scritto in JavaScript.,”
– Jeff Atwood
Oggi esistono due approcci generali per la creazione di applicazioni Web: le applicazioni Web tradizionali che eseguono la maggior parte della logica applicativa sul server e le applicazioni a pagina singola (SPA) che eseguono la maggior parte della logica dell’interfaccia utente in un browser Web, comunicando con il server Web principalmente Un approccio ibrido è anche possibile, il più semplice essendo ospitare una o più ricche subapplicazioni SPA-like all’interno di una più grande applicazione web tradizionale.,
Utilizzare le applicazioni web tradizionali quando:
-
I requisiti lato client dell’applicazione sono semplici o addirittura di sola lettura.
-
La tua applicazione deve funzionare nei browser senza supporto JavaScript.
-
Il tuo team non ha familiarità con le tecniche di sviluppo JavaScript o TypeScript.
Utilizzare una SPA quando:
-
L’applicazione deve esporre una ricca interfaccia utente con molte caratteristiche.
-
Il tuo team ha familiarità con lo sviluppo di JavaScript, TypeScript o Blazor WebAssembly.,
-
L’applicazione deve già esporre un’API per altri client (interni o pubblici).
Inoltre, i framework SPA richiedono una maggiore esperienza architettonica e di sicurezza. Sperimentano una maggiore churn a causa di frequenti aggiornamenti e nuovi framework rispetto alle applicazioni Web tradizionali. La configurazione dei processi di compilazione e distribuzione automatizzati e l’utilizzo di opzioni di distribuzione come i contenitori possono essere più difficili con le applicazioni SPA rispetto alle tradizionali app Web.
I miglioramenti nell’esperienza utente resi possibili dall’approccio SPA devono essere valutati in base a queste considerazioni.,
Blazor
ASP.NET Core include un modello per la creazione di interfacce utente ricche, interattive e componibili chiamato Blazor. Blazor lato server consente agli sviluppatori di creare UI con c# e Razor sul server e per l’interfaccia utente da collegare in modo interattivo al browser in tempo reale utilizzando una connessione SignalR persistente. Blazor WebAssembly introduce un’altra opzione per le app Blazor, consentendo loro di eseguire nel browser utilizzando WebAssembly. Poiché è reale. NET in esecuzione su WebAssembly, è possibile riutilizzare il codice e le librerie dalle parti lato server dell’applicazione.,
Blazor fornisce una nuova, terza opzione da considerare quando si valuta se creare un’applicazione Web puramente renderizzata dal server o una SPA. È possibile creare comportamenti lato client ricchi e simili a SPA utilizzando Blazor, senza la necessità di uno sviluppo JavaScript significativo. Le applicazioni Blazor possono chiamare API per richiedere dati o eseguire operazioni lato server. Possono interagire con JavaScript dove necessario per sfruttare le librerie e i framework JavaScript.,
prendere in Considerazione la creazione dell’applicazione web con Blazor quando:
-
l’applicazione deve esporre una ricca interfaccia utente
-
la Tua squadra è più comodo con .NETTO di sviluppo di JavaScript o Dattiloscritto di sviluppo
Se si dispone già di un applicazione web form si sta valutando la migrazione di .NET Core o il più recente .In rete, si potrebbe voler esaminare l’e-book gratuito, Blazor per gli Sviluppatori Web Form per vedere se ha senso considerare la migrazione a Blazor.
Per ulteriori informazioni su Blazor, vedere Iniziare con Blazor.,
Quando scegliere le applicazioni web tradizionali
La sezione seguente è una spiegazione più dettagliata dei motivi precedentemente indicati per scegliere le applicazioni web tradizionali.
La tua applicazione ha requisiti semplici, possibilmente di sola lettura, lato client
Molte applicazioni Web vengono utilizzate principalmente in sola lettura dalla stragrande maggioranza dei loro utenti. Le applicazioni di sola lettura (o per lo più di lettura) tendono ad essere molto più semplici di quelle applicazioni che mantengono e manipolano una grande quantità di stato., Ad esempio, un motore di ricerca potrebbe essere costituito da un singolo punto di ingresso con una casella di testo e una seconda pagina per la visualizzazione dei risultati di ricerca. Gli utenti anonimi possono facilmente effettuare richieste e c’è poco bisogno di logica lato client. Allo stesso modo, l’applicazione rivolta al pubblico di un blog o di un sistema di gestione dei contenuti di solito consiste principalmente di contenuti con un piccolo comportamento lato client. Tali applicazioni sono facilmente costruite come applicazioni web tradizionali basate su server, che eseguono la logica sul server Web e rendono HTML da visualizzare nel browser., Il fatto che ogni pagina unica del sito abbia il proprio URL che può essere segnalibro e indicizzato dai motori di ricerca (per impostazione predefinita, senza dover aggiungere questa funzionalità come caratteristica separata dell’applicazione) è anche un chiaro vantaggio in tali scenari.
L’applicazione deve funzionare nei browser senza supporto JavaScript
Le applicazioni Web che devono funzionare nei browser con supporto JavaScript limitato o assente devono essere scritte utilizzando i flussi di lavoro tradizionali delle app Web (o almeno essere in grado di tornare a tale comportamento)., Le SPA richiedono JavaScript lato client per funzionare; se non è disponibile, le SPA non sono una buona scelta.
Il tuo team non ha familiarità con le tecniche di sviluppo JavaScript o TypeScript
Se il tuo team non ha familiarità con JavaScript o TypeScript, ma ha familiarità con lo sviluppo di applicazioni Web lato server, probabilmente sarà in grado di fornire un’app Web tradizionale più rapidamente di una SPA., A meno che imparare a programmare le SPA non sia un obiettivo, o che sia richiesta l’esperienza utente offerta da una SPA, le applicazioni Web tradizionali sono una scelta più produttiva per i team che hanno già familiarità con la loro costruzione.
Quando scegliere SPAs
La sezione seguente è una spiegazione più dettagliata di quando scegliere uno stile di sviluppo di applicazioni a pagina singola per la tua app web.,
L’applicazione deve esporre una ricca interfaccia utente con molte caratteristiche
Le SPA possono supportare funzionalità avanzate lato client che non richiedono il ricaricamento della pagina quando gli utenti intraprendono azioni o navigano tra le aree dell’app. Le SPA possono caricare più rapidamente, recuperare i dati in background e le singole azioni dell’utente sono più reattive poiché i ricarichi a pagina intera sono rari. Le SPA possono supportare aggiornamenti incrementali, salvando moduli o documenti parzialmente completati senza che l’utente debba fare clic su un pulsante per inviare un modulo., Le SPA possono supportare comportamenti lato client avanzati, come il drag-and-drop, molto più facilmente rispetto alle applicazioni tradizionali. Le SPA possono essere progettate per essere eseguite in modalità disconnessa, apportando aggiornamenti a un modello lato client che vengono infine sincronizzati al server una volta ripristinata una connessione. Scegli un’applicazione in stile SPA se i requisiti della tua app includono funzionalità avanzate che vanno oltre ciò che offrono i tipici moduli HTML.,
Spesso, le SPA devono implementare funzionalità integrate nelle tradizionali app Web, come la visualizzazione di un URL significativo nella barra degli indirizzi che riflette l’operazione corrente (e consentire agli utenti di aggiungere un segnalibro o un collegamento profondo a questo URL per tornare ad esso). Le SPA dovrebbero anche consentire agli utenti di utilizzare i pulsanti indietro e avanti del browser con risultati che non li sorprenderanno.
Il tuo team ha familiarità con lo sviluppo di JavaScript e/o TypeScript
La scrittura di SPA richiede familiarità con JavaScript e / o TypeScript e le tecniche e le librerie di programmazione lato client., Il tuo team dovrebbe essere competente nello scrivere JavaScript moderno utilizzando un framework SPA come Angular.
La tua applicazione deve già esporre un’API per altri client (interni o pubblici)
Se stai già supportando un’API Web per l’uso da parte di altri client, potrebbe essere necessario uno sforzo minore per creare un’implementazione SPA che sfrutta queste API piuttosto che riprodurre la logica in forma lato server. Le SPA fanno ampio uso delle API Web per interrogare e aggiornare i dati mentre gli utenti interagiscono con l’applicazione.,
Quando scegliere Blazor
La sezione seguente è una spiegazione più dettagliata di quando scegliere Blazor per la tua app web.
L’applicazione deve esporre una ricca interfaccia utente
Come le SPA basate su JavaScript, le applicazioni Blazor possono supportare il comportamento rich client senza ricaricare la pagina. Queste applicazioni sono più sensibili agli utenti, recuperando solo i dati (o HTML) necessari per rispondere a una determinata interazione utente. Progettate correttamente, le app Blazor lato server possono essere configurate per essere eseguite come app Blazor lato client con modifiche minime una volta supportata questa funzionalità.,
Il tuo team è più a suo agio con lo sviluppo di.NET rispetto allo sviluppo di JavaScript o TypeScript
Molti sviluppatori sono più produttivi con. NET e Razor che con linguaggi lato client come JavaScript o TypeScript. Poiché il lato server dell’applicazione è già in fase di sviluppo con.NET, l’utilizzo di Blazor garantisce che ogni sviluppatore. NET del team possa comprendere e potenzialmente creare il comportamento del front-end dell’applicazione.,
Tabella delle decisioni
La seguente tabella delle decisioni riassume alcuni dei fattori di base da considerare quando si sceglie tra un’applicazione Web tradizionale, una SPA o un’app Blazor.,