SlideShare uma empresa Scribd logo
1 de 23
Visual Studio Summit 2013
Eduardo Pires – Arquiteto de Sistemas
MSP - MCSD - MCTS - PSD - ITIL V3
www.eduardopires.net.br
@EduardoPiresBR
Visual Studio Summit 2013
Comunicação em tempo real
Nossos usuários querem acesso a última informação AGORA!
• Atualizações de redes sociais
• Cotação da bolsa de valores
• Placares – Game Score
• Jogos interativos
• Notificações (E-
mail, Agenda, etc)
• Apps colaborativas
• Atualizações de e-Commerce
• Notícias ao vivo
• Leilões
• Jogos interativos
• Transações financeiras
• E claro... CHAT
Visual Studio Summit 2013
Técnicas de soluções atuais:
• Polling
• Long Polling
• Forever Frame
• Server Sent Events
• WebSockets
Visual Studio Summit 2013
Polling
• Utiliza requisições Ajax (XMLHttpRequest)
• Conexões periódicas com o server verificando se há alguma
atualização
Prós Contras
--- Atraso nas atualizações
Sobrecarrega o server com
milhares de requests
Visual Studio Summit 2013
Polling
Visual Studio Summit 2013
Long Polling
• Semelhante ao Polling, requisições Ajax (XMLHttpRequest)
• Mantem a conexão aberta até receber uma notificação do
server
Prós Contras
Sem atraso nas respostas Múltiplos requests
Baixa carga no servidor Existem técnicas mais rápidas
Suportado por vários Browsers
Visual Studio Summit 2013
Long Polling
Visual Studio Summit 2013
Forever Frame
• Utiliza de forma inteligente a tag HTML <iframe> de forma a
criar uma conexão permanentemente aberta
Prós Contras
Suportado por vários Browsers Problemas com peculiaridades
de cada Browser, tornando-se
muito difícil de implementar.
Muito difícil de tratar os erros
Visual Studio Summit 2013
Forever Frame
Visual Studio Summit 2013
Server-Sent Events
• HTML5 – Funciona através de HTTP
• EventSource JavaScript API
• Content-type: text/event-stream
Prós Contras
Conexão persistente Não é suportado no IE 
Não necessita um protocolo
especial implementado no
servidor
Trabalha em apenas uma
direção. Server >> Client
Visual Studio Summit 2013
Server-Sent Events
Visual Studio Summit 2013
WebSockets
• HTML5 – Funciona via TCP
• Será o fim do HTTP ?
Prós Contras
Conexão persistente nas duas
direções. Server >> Client e
Client >> Server
Requer o protocolo Web
Socket IE 10 e demais
browsers (versão atualizada)
É a técnica mais rápida
atualmente
Requer o protocolo Web
Socket no Server (IIS8)
Visual Studio Summit 2013
WebSockets
Visual Studio Summit 2013
E se eu quiser implementar TODAS as técnicas?
Terei muito trabalho?
Visual Studio Summit 2013
ASP.Net SignalR
• Solução completa de comunicação em
tempo real
• Comunicação de forma assíncrona
• Membro oficial do ASP.Net
• Open-Source (GitHub)
• Conexão persistente Server / Client
• Forma de programação unificada
• Dois níveis diferentes de abstração de uma conexão. Escolhe
automaticamente o melhor tipo de transporte conforme o cenário.
Visual Studio Summit 2013
Arquitetura
Visual Studio Summit 2013
Hubs
• Implementação de alto nível
construído sobre a API
PersistentConnection
• Modelo RPC (Remote
Procedure Call)
• Modelo mais indicado para
utilização do SignalR
Visual Studio Summit 2013
Persistent Connection
• A API de conexão (classe PersistentConnection) dá ao desenvolvedor
acesso direto a comunicação de baixo nível que o SignalR expõe,
similar a forma de trabalhar com Sockets.
• As mensagens não possuem formato, são baseadas em strings
simples que necessitam ser interpretadas em ambos os lados (client,
server).
• A escolha do transporte fica a cargo do desenvolvedor
Visual Studio Summit 2013
Indicações
• A maioria dos aplicativos deve usar o modelo Hubs.
• PersistentConnections podem ser utilizados nas seguintes
circunstâncias:
O formato da mensagem enviada necessita de ser controlado.
O desenvolvedor prefere trabalhar com um modelo de envio de
mensagens ao invés de um modelo de invocação remota.
Um aplicativo existente que usa um modelo de mensagem está sendo
portado para usar SignalR.
Visual Studio Summit 2013
ASP.Net SignalR Components
jQuery .Net WP7 iOS Silverlight WinRT
Android
Mono
ASP.Net
IIS8
Self /
Owin
Azure
Service
Bus
Clients
Hosts
Visual Studio Summit 2013
Como começar?
• Pré-requisitos, Visual Studio 2010 SP1 ou 2012
• O Visual Studio 2012 – Update 2 já possui suporte ao ASP.Net SignalR
• ASP.Net SignalR está disponível via NuGet
Visual Studio Summit 2013
Demo! Demo! Demo!
• Chat! (Clássico)
• Jogo da velha em tempo real.
Visual Studio Summit 2013
Muito Obrigado!
Dúvidas?
Eduardo Pires
@EduardoPiresBR
www.eduardopires.net.br

Mais conteúdo relacionado

Mais procurados

Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsJava script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Vinicius Reis
 
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
Rodrigo Kono
 

Mais procurados (20)

ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
ASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVCASP.NET Web Forms X ASP.NET MVC
ASP.NET Web Forms X ASP.NET MVC
 
Release Management for Visual Studio 2013
Release Management for Visual Studio 2013Release Management for Visual Studio 2013
Release Management for Visual Studio 2013
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São Carlos
 
Asp net identity - De dentro das trincheiras
Asp net identity - De dentro das trincheirasAsp net identity - De dentro das trincheiras
Asp net identity - De dentro das trincheiras
 
.NET Core Internals. O que é o .NET Platform Standard?
.NET Core Internals. O que é o .NET Platform Standard?.NET Core Internals. O que é o .NET Platform Standard?
.NET Core Internals. O que é o .NET Platform Standard?
 
DevCommerce Conference 2016: SecDevOps – Testes contínuos de segurança em apl...
DevCommerce Conference 2016: SecDevOps – Testes contínuos de segurança em apl...DevCommerce Conference 2016: SecDevOps – Testes contínuos de segurança em apl...
DevCommerce Conference 2016: SecDevOps – Testes contínuos de segurança em apl...
 
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...DevCommerce Conference 2016: React para aplicações web e mobile como platafor...
DevCommerce Conference 2016: React para aplicações web e mobile como platafor...
 
Escalabilidade com docker - ASP.NET Conference 2016
Escalabilidade com docker - ASP.NET Conference 2016Escalabilidade com docker - ASP.NET Conference 2016
Escalabilidade com docker - ASP.NET Conference 2016
 
ASP .NET Core MVC
ASP .NET Core MVCASP .NET Core MVC
ASP .NET Core MVC
 
Middlewares ASP.NET
Middlewares ASP.NETMiddlewares ASP.NET
Middlewares ASP.NET
 
ITerior - .NET Core, usando .NET no Linux!
ITerior - .NET Core, usando .NET no Linux!ITerior - .NET Core, usando .NET no Linux!
ITerior - .NET Core, usando .NET no Linux!
 
Desvendando ASP.NET MVC
Desvendando ASP.NET MVCDesvendando ASP.NET MVC
Desvendando ASP.NET MVC
 
Desenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSFDesenvolvimento baseado em componentes com JSF
Desenvolvimento baseado em componentes com JSF
 
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsJava script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
 
TDC 2014 - Arquitetura front-end com AngularJS
TDC 2014 - Arquitetura front-end com AngularJSTDC 2014 - Arquitetura front-end com AngularJS
TDC 2014 - Arquitetura front-end com AngularJS
 
Estudo de caso ASP.NET MVC e Silverlight
Estudo de caso ASP.NET MVC e SilverlightEstudo de caso ASP.NET MVC e Silverlight
Estudo de caso ASP.NET MVC e Silverlight
 
Docker para devs .NET
Docker para devs .NETDocker para devs .NET
Docker para devs .NET
 
Infrastructure Testing
Infrastructure TestingInfrastructure Testing
Infrastructure Testing
 
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
Faça Sucesso Desenvolvendo com ASP.NET 4, ASP NET MVC e Visual Studio 2010
 

Semelhante a Comunicação em Tempo Real com ASP.Net SignalR

Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4
Rodrigo Kono
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento Web
Sérgio Souza Costa
 
T@rget trust asp.net avançado
T@rget trust   asp.net avançadoT@rget trust   asp.net avançado
T@rget trust asp.net avançado
Targettrust
 
Arquitetura da plataforma com o Biztalk Server
Arquitetura da plataforma com o Biztalk ServerArquitetura da plataforma com o Biztalk Server
Arquitetura da plataforma com o Biztalk Server
Markus Christen
 

Semelhante a Comunicação em Tempo Real com ASP.Net SignalR (20)

Mod06 licao01-apostila
Mod06 licao01-apostilaMod06 licao01-apostila
Mod06 licao01-apostila
 
Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4
 
Application Insights
Application InsightsApplication Insights
Application Insights
 
SharePoint Framework - Uma plataforma aberta e conectada
SharePoint Framework - Uma plataforma aberta e conectadaSharePoint Framework - Uma plataforma aberta e conectada
SharePoint Framework - Uma plataforma aberta e conectada
 
Software gratuito
Software gratuitoSoftware gratuito
Software gratuito
 
Campus Party - Desenvolvendo aplicações .Net com software gratuito
Campus Party  - Desenvolvendo aplicações .Net com software gratuitoCampus Party  - Desenvolvendo aplicações .Net com software gratuito
Campus Party - Desenvolvendo aplicações .Net com software gratuito
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento Web
 
Azure e suas vantagens (Palestra 1)
Azure e suas vantagens (Palestra 1) Azure e suas vantagens (Palestra 1)
Azure e suas vantagens (Palestra 1)
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?
 
Comet - ReverseAjax com DWR - Resumo
Comet - ReverseAjax com DWR - ResumoComet - ReverseAjax com DWR - Resumo
Comet - ReverseAjax com DWR - Resumo
 
DotNet vs. Java
DotNet vs. JavaDotNet vs. Java
DotNet vs. Java
 
01 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.101 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.1
 
T@rget trust asp.net avançado
T@rget trust   asp.net avançadoT@rget trust   asp.net avançado
T@rget trust asp.net avançado
 
SignalR - .Net Core 3.0
SignalR - .Net Core 3.0SignalR - .Net Core 3.0
SignalR - .Net Core 3.0
 
Asp.net web api
Asp.net web apiAsp.net web api
Asp.net web api
 
Web Tools Pt B R
Web Tools Pt  B RWeb Tools Pt  B R
Web Tools Pt B R
 
.NET e ASP.NET Core 2.2, .NET Core 3, Visual Studio 2019: uma visão geral - ....
.NET e ASP.NET Core 2.2, .NET Core 3, Visual Studio 2019: uma visão geral - .....NET e ASP.NET Core 2.2, .NET Core 3, Visual Studio 2019: uma visão geral - ....
.NET e ASP.NET Core 2.2, .NET Core 3, Visual Studio 2019: uma visão geral - ....
 
Desenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVCDesenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVC
 
Arquitetura da plataforma com o Biztalk Server
Arquitetura da plataforma com o Biztalk ServerArquitetura da plataforma com o Biztalk Server
Arquitetura da plataforma com o Biztalk Server
 

Último

Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Dirceu Resende
 

Último (11)

ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINASCOI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
 
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
 
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docxATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
 
Apostila e caderno de exercicios de WORD
Apostila e caderno de exercicios de  WORDApostila e caderno de exercicios de  WORD
Apostila e caderno de exercicios de WORD
 
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdfFrom_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
 
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docxATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
 
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo PagliusiPalestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
 
Entrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo PagliusiEntrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo Pagliusi
 
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIAEAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
 

Comunicação em Tempo Real com ASP.Net SignalR

  • 1. Visual Studio Summit 2013 Eduardo Pires – Arquiteto de Sistemas MSP - MCSD - MCTS - PSD - ITIL V3 www.eduardopires.net.br @EduardoPiresBR
  • 2. Visual Studio Summit 2013 Comunicação em tempo real Nossos usuários querem acesso a última informação AGORA! • Atualizações de redes sociais • Cotação da bolsa de valores • Placares – Game Score • Jogos interativos • Notificações (E- mail, Agenda, etc) • Apps colaborativas • Atualizações de e-Commerce • Notícias ao vivo • Leilões • Jogos interativos • Transações financeiras • E claro... CHAT
  • 3. Visual Studio Summit 2013 Técnicas de soluções atuais: • Polling • Long Polling • Forever Frame • Server Sent Events • WebSockets
  • 4. Visual Studio Summit 2013 Polling • Utiliza requisições Ajax (XMLHttpRequest) • Conexões periódicas com o server verificando se há alguma atualização Prós Contras --- Atraso nas atualizações Sobrecarrega o server com milhares de requests
  • 5. Visual Studio Summit 2013 Polling
  • 6. Visual Studio Summit 2013 Long Polling • Semelhante ao Polling, requisições Ajax (XMLHttpRequest) • Mantem a conexão aberta até receber uma notificação do server Prós Contras Sem atraso nas respostas Múltiplos requests Baixa carga no servidor Existem técnicas mais rápidas Suportado por vários Browsers
  • 7. Visual Studio Summit 2013 Long Polling
  • 8. Visual Studio Summit 2013 Forever Frame • Utiliza de forma inteligente a tag HTML <iframe> de forma a criar uma conexão permanentemente aberta Prós Contras Suportado por vários Browsers Problemas com peculiaridades de cada Browser, tornando-se muito difícil de implementar. Muito difícil de tratar os erros
  • 9. Visual Studio Summit 2013 Forever Frame
  • 10. Visual Studio Summit 2013 Server-Sent Events • HTML5 – Funciona através de HTTP • EventSource JavaScript API • Content-type: text/event-stream Prós Contras Conexão persistente Não é suportado no IE  Não necessita um protocolo especial implementado no servidor Trabalha em apenas uma direção. Server >> Client
  • 11. Visual Studio Summit 2013 Server-Sent Events
  • 12. Visual Studio Summit 2013 WebSockets • HTML5 – Funciona via TCP • Será o fim do HTTP ? Prós Contras Conexão persistente nas duas direções. Server >> Client e Client >> Server Requer o protocolo Web Socket IE 10 e demais browsers (versão atualizada) É a técnica mais rápida atualmente Requer o protocolo Web Socket no Server (IIS8)
  • 13. Visual Studio Summit 2013 WebSockets
  • 14. Visual Studio Summit 2013 E se eu quiser implementar TODAS as técnicas? Terei muito trabalho?
  • 15. Visual Studio Summit 2013 ASP.Net SignalR • Solução completa de comunicação em tempo real • Comunicação de forma assíncrona • Membro oficial do ASP.Net • Open-Source (GitHub) • Conexão persistente Server / Client • Forma de programação unificada • Dois níveis diferentes de abstração de uma conexão. Escolhe automaticamente o melhor tipo de transporte conforme o cenário.
  • 16. Visual Studio Summit 2013 Arquitetura
  • 17. Visual Studio Summit 2013 Hubs • Implementação de alto nível construído sobre a API PersistentConnection • Modelo RPC (Remote Procedure Call) • Modelo mais indicado para utilização do SignalR
  • 18. Visual Studio Summit 2013 Persistent Connection • A API de conexão (classe PersistentConnection) dá ao desenvolvedor acesso direto a comunicação de baixo nível que o SignalR expõe, similar a forma de trabalhar com Sockets. • As mensagens não possuem formato, são baseadas em strings simples que necessitam ser interpretadas em ambos os lados (client, server). • A escolha do transporte fica a cargo do desenvolvedor
  • 19. Visual Studio Summit 2013 Indicações • A maioria dos aplicativos deve usar o modelo Hubs. • PersistentConnections podem ser utilizados nas seguintes circunstâncias: O formato da mensagem enviada necessita de ser controlado. O desenvolvedor prefere trabalhar com um modelo de envio de mensagens ao invés de um modelo de invocação remota. Um aplicativo existente que usa um modelo de mensagem está sendo portado para usar SignalR.
  • 20. Visual Studio Summit 2013 ASP.Net SignalR Components jQuery .Net WP7 iOS Silverlight WinRT Android Mono ASP.Net IIS8 Self / Owin Azure Service Bus Clients Hosts
  • 21. Visual Studio Summit 2013 Como começar? • Pré-requisitos, Visual Studio 2010 SP1 ou 2012 • O Visual Studio 2012 – Update 2 já possui suporte ao ASP.Net SignalR • ASP.Net SignalR está disponível via NuGet
  • 22. Visual Studio Summit 2013 Demo! Demo! Demo! • Chat! (Clássico) • Jogo da velha em tempo real.
  • 23. Visual Studio Summit 2013 Muito Obrigado! Dúvidas? Eduardo Pires @EduardoPiresBR www.eduardopires.net.br