ASP.NET SignalR - Comunicação em
real-time simples e para todo mundo
Glauco Godoi
http://netponto.org38ª Reunião Presencial - 20/04/2013
Glauco Godoi
- Senior Solution Architect @ Truewind-Chiron
- Foco em desenvolvimento web na plataforma
Microsoft;
- glauco.godoi@truewind-chiron.com
- Linked-in: pt.linkedin.com/in/glaucorgodoi/
ASP.Net SignalR – simple real-time
Agenda
- Comunicação em tempo real
- SignalR
- Utilização básica do SignalR
- Clientes disponíveis
- Q & A
ASP.Net SignalR – simple real-time
Comunicação em tempo real
- O que é ?
- Onde poderia utilizar ?
- Como podemos implementar ?
Jogos
Aplicações de chat
Logging, exception capturing
Real-time charting
Aplicações colaborativas
Banca
ASP.Net SignalR – simple real-time
- Pedidos HTTP
No mundo web a funcionar sobre HTTP estamos
presos ao paradigma RR (Request X Respose)
Response
Request
ASP.Net SignalR – simple real-time
- Simulando o real-time
Polling
Já tem dados? Não! Já tem dados? Não! Já tem dados ? Sim!
Javascript
<meta http-equiv="refresh" content="5" >
ASP.Net SignalR – simple real-time
- Simulando o real-time
Long polling
Javascript
Já tem dados? ….. Não! Já tem dados ? …… tu-tu-tu-tu-tu
ASP.Net SignalR – simple real-time
- Simulando o real-time
Forever frame
Javascript injectado directamente na página através de um
iframe cujo documento nunca termina
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<iframe src="myservice.ashx"></iframe>
</body>
</html>
ASP.Net SignalR – simple real-time
- Simulando o real-time
Server sent events
Tecnologia padronizada pelo W3C no HTML5. Exige um
pedido de conexão inicial por parte do cliente.
http://dev.w3.org/html5/eventsource/
Não é suportado nativamente pelo IE
ASP.Net SignalR – simple real-time
Usage share of desktop browsers for March 2013
Source Chrome
Internet
Explorer
Firefox Safari
Opera Other
StatCounter 38.07% 29.30% 20.87% 8.50% 1.17% 2.09%
Wikimedia 44.06% 22.08% 18.17% 3.24% 3.38% 9.07 %
W3Counter 30.30% 24.60% 19.30% 16.30% 2.30% 7.20%
NetApplicati
ons
16.45% 55.83% 20.21% 5.31% 1.74% 0.20%
Clicky 35.13% 33.38% 21.18% 8.92% 1.15% n/a%
ASP.Net SignalR – simple real-time
- Simulando o real-time
Websockets
Faz parte do HTML5. Permite comunicação bidireccional.
Pode ser consumido por browsers ou outros clientes.
Cria uma conexão persistente.
É uma extensão ao protocolo HTTP: ws e wss
ASP.Net SignalR – simple real-time
Kobayashi maru
ASP.Net SignalR – simple real-time
- SignalR
- Fachada sobre as técnicas e tecnologias
- Não é um projecto oficial da MS—-
- Faz parte do ASP.NET
- Licença do tipo MIT Apache 2.0 License
- Disponível através do nuget
- Dois modelos de conexão: Persistent connection & Hubs
ASP.Net SignalR – simple real-time
DEMO
ASP.Net SignalR – simple real-time
Clientes disponíveis
• Javascript
• .NET (wpf/silverlight, console, etc…)
• Objective-C (ios, macos X)
• Android
ASP.Net SignalR – simple real-time
Resumo
• Comunicação real-time é uma tendência crescente;
• Existem várias formas de implementa-la. Cada uma delas com vantagens e desvantagens;
• SignalR é uma opção interessante pois simplifica o trabalho do developer;
• SignalR não é a única opção. Socket.IO e Node.js também fazem um trabalho muito bom
porém SignalR é uma escolha mais “simples” se todo o stack aplicacional for Microsoft.
• Testem sempre em vários browsers / clientes
ASP.Net SignalR – simple real-time
Q & A
ASP.Net SignalR – simple real-time
Obrigado
Patrocinador “GOLD”
Twitter: @PTMicrosoft http://www.microsoft.com/portugal
Patrocinadores “Silver”
Patrocinadores “Bronze”

ASP.NET Signal R - Glauco Godoi

  • 1.
    ASP.NET SignalR -Comunicação em real-time simples e para todo mundo Glauco Godoi http://netponto.org38ª Reunião Presencial - 20/04/2013
  • 2.
    Glauco Godoi - SeniorSolution Architect @ Truewind-Chiron - Foco em desenvolvimento web na plataforma Microsoft; - glauco.godoi@truewind-chiron.com - Linked-in: pt.linkedin.com/in/glaucorgodoi/
  • 3.
    ASP.Net SignalR –simple real-time Agenda - Comunicação em tempo real - SignalR - Utilização básica do SignalR - Clientes disponíveis - Q & A
  • 4.
    ASP.Net SignalR –simple real-time Comunicação em tempo real - O que é ? - Onde poderia utilizar ? - Como podemos implementar ? Jogos Aplicações de chat Logging, exception capturing Real-time charting Aplicações colaborativas Banca
  • 5.
    ASP.Net SignalR –simple real-time - Pedidos HTTP No mundo web a funcionar sobre HTTP estamos presos ao paradigma RR (Request X Respose) Response Request
  • 6.
    ASP.Net SignalR –simple real-time - Simulando o real-time Polling Já tem dados? Não! Já tem dados? Não! Já tem dados ? Sim! Javascript <meta http-equiv="refresh" content="5" >
  • 7.
    ASP.Net SignalR –simple real-time - Simulando o real-time Long polling Javascript Já tem dados? ….. Não! Já tem dados ? …… tu-tu-tu-tu-tu
  • 8.
    ASP.Net SignalR –simple real-time - Simulando o real-time Forever frame Javascript injectado directamente na página através de um iframe cujo documento nunca termina <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <iframe src="myservice.ashx"></iframe> </body> </html>
  • 9.
    ASP.Net SignalR –simple real-time - Simulando o real-time Server sent events Tecnologia padronizada pelo W3C no HTML5. Exige um pedido de conexão inicial por parte do cliente. http://dev.w3.org/html5/eventsource/ Não é suportado nativamente pelo IE
  • 10.
    ASP.Net SignalR –simple real-time Usage share of desktop browsers for March 2013 Source Chrome Internet Explorer Firefox Safari Opera Other StatCounter 38.07% 29.30% 20.87% 8.50% 1.17% 2.09% Wikimedia 44.06% 22.08% 18.17% 3.24% 3.38% 9.07 % W3Counter 30.30% 24.60% 19.30% 16.30% 2.30% 7.20% NetApplicati ons 16.45% 55.83% 20.21% 5.31% 1.74% 0.20% Clicky 35.13% 33.38% 21.18% 8.92% 1.15% n/a%
  • 11.
    ASP.Net SignalR –simple real-time - Simulando o real-time Websockets Faz parte do HTML5. Permite comunicação bidireccional. Pode ser consumido por browsers ou outros clientes. Cria uma conexão persistente. É uma extensão ao protocolo HTTP: ws e wss
  • 12.
    ASP.Net SignalR –simple real-time Kobayashi maru
  • 13.
    ASP.Net SignalR –simple real-time - SignalR - Fachada sobre as técnicas e tecnologias - Não é um projecto oficial da MS—- - Faz parte do ASP.NET - Licença do tipo MIT Apache 2.0 License - Disponível através do nuget - Dois modelos de conexão: Persistent connection & Hubs
  • 14.
    ASP.Net SignalR –simple real-time DEMO
  • 15.
    ASP.Net SignalR –simple real-time Clientes disponíveis • Javascript • .NET (wpf/silverlight, console, etc…) • Objective-C (ios, macos X) • Android
  • 16.
    ASP.Net SignalR –simple real-time Resumo • Comunicação real-time é uma tendência crescente; • Existem várias formas de implementa-la. Cada uma delas com vantagens e desvantagens; • SignalR é uma opção interessante pois simplifica o trabalho do developer; • SignalR não é a única opção. Socket.IO e Node.js também fazem um trabalho muito bom porém SignalR é uma escolha mais “simples” se todo o stack aplicacional for Microsoft. • Testem sempre em vários browsers / clientes
  • 17.
    ASP.Net SignalR –simple real-time Q & A
  • 18.
    ASP.Net SignalR –simple real-time Obrigado
  • 19.
    Patrocinador “GOLD” Twitter: @PTMicrosofthttp://www.microsoft.com/portugal
  • 20.
  • 21.