Controller asincroni in ASP.NET MVC

Costruisci controller asincrono


Tradizionalmente il flusso di un'applicazione web è sincrono, cioè facciamo una richiesta al server e ci fermiamo in attesa della risposta, fino a circa 5 anni fa questo modello era valido, però con i nuovi requisiti e i nuovi strumenti abbiamo già bisogno di qualcosa di più dinamico.
Applicazione asincronaUn'applicazione asincrona è quella che ci consente di svolgere varie attività che non interferiscono tra loro e ognuna consulta una parte diversa contro il server, con questo durante il salvataggio di un documento possiamo consultarne un altro, senza dover attendere una risposta, un esempio di questo tipo di applicazioni è Gmail, dove durante l'invio di un'e-mail possiamo vedere la posta in arrivo.
In questa sezione vedremo cos'è un controller asincrono e come costruirlo usando ASP.NET MVC.
Uno dei componenti più importanti delle nostre applicazioni sono i controller, in ASP.NET MVC possiamo farli funzionare in modo asincrono con questo possiamo prevenire l'arresto anomalo dei processi durante l'esecuzione di una query.

Blocco del filoSebbene la maggior parte delle volte questo blocco sia così piccolo che sembra che vengano fatte più cose contemporaneamente, ci sono momenti in cui dobbiamo preparare un processo molto più pesante e bloccherebbe il thread di lavoro in modo tale che il Processo fame, cioè processi che aspettano il filo così a lungo da morire.
Ciò si verifica perché il server inizia a impilare i processi in attesa e arriva un punto in cui lo spazio che può utilizzare trabocca, con questo vedremo il così popolare errore 503 del servizio non disponibile, per evitare ciò possiamo creare un controller asincrono, che non riduce il tempo di esecuzione del processo, ma libera il thread di elaborazione in modo che altri processi possano utilizzarlo.
Affinché il nostro controller sia asincrono dobbiamo rispettare una struttura di base delle sue azioni, in questo modo possiamo raggiungere il nostro obiettivo, per questo dobbiamo seguire alcune convenzioni stabilite dal framework. Vediamo di cosa abbiamo bisogno:
Azione asincronaDobbiamo creare un'azione all'interno del nostro controller che abbia la parola Asincrono a suo nome così per convenzione ASP.NET MVC saprai cos'è il processo asincrono. Un esempio può essere CercaLibriAsync, inoltre questa azione o metodo deve ritorno nullo.
Azione completataQuindi dobbiamo creare un'azione che possiamo chiamare una volta completato il processo asincrono, per questo dobbiamo creare un'azione in grado di gestire il ritorno del AzioneRisultato, per questo dobbiamo creare un metodo con la parola Completato per tuo conto, come: RicercaLibriCompletata, con questo avremo già gli elementi di base necessari.
Come si vede non ci vuole molto per creare un controller asincrono, soprattutto bisogna elaborare la logica e seguire un po' le convenzioni in modo che il framework possa determinare cosa stiamo costruendo nell'applicazione. Le basi della programmazione asincrona in ASP.NET MVC Non sono per niente complessi, nella seconda parte di questo tutorial vedremo un esempio più completo di come creare un controller asincrono oltre ad altri importanti concetti.
Precedentepagina 1 di 2Prossimo

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave