ASP.NET and Web Tools 2012.2: cosa c'è di nuovo - seconda parte

di , in ASP.NET 4.5, ASP.NET MVC,

Riprendiamo la nostra panoramica di ASP.NET and Web Tools 2012.2, l'update per Visual Studio 2012 che apporta interessanti miglioramenti all'ambiente di sviluppo e offre nuove opportunità per la creazione di applicazioni ASP.NET. L'update consiste di un download gratuito che non richiede riavvii e che non pregiudica la compatibilità con i progetti esistenti in alcun modo.

Nella prima parte di quest'articolo abbiamo esaminato i nuovi template di progetto per ASP.NET MVC che, grazie anche al nuovo supporto a OData per ASP.NET Web API, diventa una piattaforma di efficacia sempre crescente per lo sviluppo di applicazioni web moderne.

In questa seconda ed ultima parte tratteremo invece di ASP.NET SignalR, la libreria open source per applicazioni real-time, ora diventata un progetto gestito ufficialmente dal team di sviluppo di Microsoft. Inoltre, capiremo come rendere più "amichevoli" gli URL delle pagine ASP.NET WebForms ed analizzeremo nel dettaglio tutte quelle piccole migliorie alla strumentazione di Visual Studio 2012 che lo rendono un prodotto ancor più attento a soddisfare le necessità pratiche di chi scrive codice.

ASP.NET SignalR

ASP.NET SignalR è una libreria che consente di invocare procedure remote stabilendo una connessione bidirezionale e persistente tra client e server, in modo che entrambi possano scambiarsi messaggi.Questo è possibile grazie ad alcune tecnologie del web come WebSocket e Server-sent event che però non godono ancora di un supporto uniforme da parte di tutti i browser, e di tecniche come il Long polling e il forever frame, più diffuse ma meno idonee allo scopo.

La libreria nasconde molto bene le complessità derivanti dal dover selezionare la tecnologia più adatta, e ci offre una semplice interfaccia unificata che ci rende subito produttivi. Si tratta di un alleato ideale per realizzare applicazioni di chat e messaggistica istantanea, giochi online e di monitoraggio in tempo reale, cioè in tutti quegli scenari in cui desideriamo ricevere messaggi dal server in maniera subitanea. Può essere impiegato sia in progetti ASP.NET Web Forms che ASP.NET MVC, dato che si tratta di un servizio funzionante sul runtime di ASP.NET, ma richiede privilegi di full trust.

Il template PersistentConnection

Con la recente update, Visual Studio ci offre due diversi templates per lavorare con ASP.NET SignalR.

Figura 1

Se selezioniamo il template PersistentConnection, vedremo questa classe apparire nel nostro progetto. Come possiamo notare, il codice di default è già asincrono, grazie all'utilizzo della classe Task e all'implementazione del pattern async.

public class ChatPersistentConnection : PersistentConnection
{
  protected override Task OnConnected(IRequest request, string connectionId) 
  {
    return Connection.Send(connectionId, "Welcome!");
  }
  protected override Task OnReceived(IRequest request, string connectionId, 
    string data) 
  {
    return Connection.Broadcast(data);
  }
}

PersistentConnection è un oggetto di basso livello, che ci mette a diretto contatto con il "cavo" che collega client e server. Grazie al gestori evento OnConnected e OnDisconnected avremo l'opportunità di mantenere un registro dei client connessi ed eventualmente, grazie ai loro connectionId, monitorarli o inviare messaggi individuali. Il gestore evento OnReceived, invece, ci notificherà di ogni nuovo messaggio ricevuto, così che potremo reinoltrarlo a client selezionati o a tutti quanti con un'invocazione a Connection.Broadcast.

5 pagine in totale: 1 2 3 4 5
Contenuti dell'articolo

Commenti

Visualizza/aggiungi commenti

ASP.NET and Web Tools 2012.2: cosa c'è di nuovo - seconda parte 1010 4
| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

Top Ten Articoli

Articoli via e-mail

Iscriviti alla nostra newsletter nuoviarticoli per ricevere via e-mail le notifiche!

In primo piano

I più letti di oggi

In evidenza

Misc