SlideShare une entreprise Scribd logo
1  sur  44
ANDRÉ PAULOVICH IVAN PAULOVICH
AspNet Conference Brasil
João Pessoa...
Paraíba – Oxente!
Belo Horizonte...
Minas Gerais – Uai!
www.100loop.com
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
HTTP != “Tempo real”
Contras
Atraso nas atualizações
Sobrecarrega o server com requests
desnecessários
Prós
Sem atraso nas respostas
Múltiplos requests
Contras
Baixa carga no servidor
Existem técnicas mais rápidas
Suportado por vários Browsers
Prós
Suportado por vários Browsers
Contras
Contras Problemas com peculiaridades de
cada Browser.
Muito difícil de tratar os erros
Prós
Conexão persistente.
Não necessidta de um protocolo especial
implementado no servidor.
Contras
Nâo é suportado pelo Internet Explorer.
Trabalha apenas na direção:
Server > Client.
Prós
Conexão persistente nas duas direções.
Melhor performance.
Contras
Requer protocolo WEB SOCKET IE 10 e demais
browsers (versões atualizadas)
Requer protocolo WEB SOCKET no Servidor (IIS8)
E agora...
Para onde seguir?
David Fowler
@davidfowl
Damian Edwards
@damianedwards
Desenvolvida por funcionários da
Microsoft da equipe ASP.NET
Combinando uma biblioteca ASP
.NET no lado do servidor e uma
biblioteca JavaScript do lado
cliente
Transportes
Conexiones persistentes
Long polling
Server-sent
events
Forever
frame
WebSockets
Hubs
Protocolos internet
Abstracción
Aplicação .NET (Server Side)
HUB API
API de Conexão Persistente
Transportes
HTML5 Comet
Web Sockets
Server Sent Events
Forever Frame
Ajax Long Polling
Browser (Client Side)
HUB API
API de Conexão Persistente
Transportes
Browser (Client Side)
HUB API
API de Conexão Persistente
Transportes
Browser (Client Side)
HUB API
API de Conexão Persistente
Transportes
Servidor
Clientes
Servidor (Conexión persistente)Cliente (javascript)
var conn = $.connection(“MyConn”);
conn.start();
conn.send(“hi, all!”);
conn.receive(function(text) {
$(“#log”)
.append(“<li>”+text+”</li>”);
});
class MyConn: PersistentConnection
{
override Task OnConnectedAsync() { … }
override Task OnReceivedAsync(string data)
{
return Connection.Broadcast(data);
}
override Task OnDisconnectAsync() { ... }
}
Servidor
(Hub)
Cliente (javascript)
var chat = $.connection.chatHub;
$.connection.hub.start();
chat.enviar(“hi, all!”);
chat.recibir = function(text) {
$(“#log”)
.append(“<li>”+text+”</li>”);
};
Proxy
class ChatHub: Hub
{
public void enviar(string text)
{
Clients.recibir(text);
}
}
•
JQuery
WinRT
Native
.NET
Android
(via Mono)
WP7 Silverlight
CLIENTES
iOS
HOSTS
1.
2.
PM> Install-Package Microsoft.AspNet.SignalR
PUBLIC CLASS SHAPEHUB : HUB
{
//
// RECEBE MENSAGENS DO CLIENTE
//
PUBLIC VOID MOVESHAPE(INT X, INT Y)
{
//
// ENVIA MENSAGENS PARA O CLIENTE
//
THIS.CLIENTS.OTHERS.UPDATESHAPE(X, Y);
}
}
 Simples definição do Hub
 Implementação dos
métodos
 Uso intensivo de Anonymous
Methods
<SCRIPT TYPE="TEXT/JAVASCRIPT">
$(FUNCTION () {
VAR SHAPE = $("#SHAPE");
$.CONNECTION.HUB.START().DONE(FUNCTION () {
SHAPE.DRAGGABLE({
DRAG: FUNCTION () {
// ENVIA A NOVA POSIÇÃO PARA O SERVIDOR
$.CONNECTION.SHAPEHUB.SERVER.MOVESHAPE(
SHAPE.POSITION().LEFT,
SHAPE.POSITION().TOP);
}
});
});
// RECEBE AS MENSAGENS DO SERVIDOR
$.CONNECTION.SHAPEHUB.CLIENT.UPDATESHAPE = FUNCTION (X, Y) {
SHAPE.ANIMATE({ LEFT: X, TOP: Y }, { QUEUE: FALSE });
}
});
</SCRIPT>
 Implementação dos
métodos no cliente “.client”
 Pode chamar métodos no
servidor “.server”
 Backplane
 Azure Service Bus
 Requisitos Websocket no Azure Websites
 ASP.NET 4.5
 Habilitar no painel
•
HTTP://SHOOTR.SIGNALR.NET/
•
HTTPS://JABBR.NET
• HTTPS://TWITTER.COM/DAMIANEDWARDS
• HTTP://ASP.NET/SIGNALR
• HTTP://GIFTHUB.COM/SIGNALR/SIGNALR
• HTTP://100LOOP.COM
• HTTP://GIFTHUB.COM/IVANPAULOVICH/ASPNETCONF
• HTTP://VIMEO.COM/84677185
• HTTP://EDUARDOPIRES.NET.BR/
• NET PONTO GLAUCO GODOI
• DISCUSSÃO INTERESSANTE SOBRE OS TIPOS DE COMUNICAÇÃO
MANTENHA CONTATO NO WWW.100LOOP.COM
ANDRÉ PAULOVICH PAULOVICH@100LOOP.COM
IVAN PAULOVICH - IVAN@100LOOP.COM

Contenu connexe

Similaire à Construindo apps com SignalR - AspNet Conference Brasil

Similaire à Construindo apps com SignalR - AspNet Conference Brasil (20)

Introdução ao ASP .NET Web API
Introdução ao ASP .NET Web APIIntrodução ao ASP .NET Web API
Introdução ao ASP .NET Web API
 
Integração de sistemas legados com Plone
Integração de sistemas legados com PloneIntegração de sistemas legados com Plone
Integração de sistemas legados com Plone
 
React Native - JSday
React Native - JSdayReact Native - JSday
React Native - JSday
 
Python 08
Python 08Python 08
Python 08
 
WebHooks no ASP.NET
WebHooks no ASP.NETWebHooks no ASP.NET
WebHooks no ASP.NET
 
Descobrindo APIs REST
Descobrindo APIs RESTDescobrindo APIs REST
Descobrindo APIs REST
 
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EEJavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
 
PyData - Consumindo e publicando web APIs com Python
PyData - Consumindo e publicando web APIs com PythonPyData - Consumindo e publicando web APIs com Python
PyData - Consumindo e publicando web APIs com Python
 
Workflow Foundation 4.0 - Microsoft DevDays 2009
Workflow Foundation 4.0 - Microsoft DevDays 2009Workflow Foundation 4.0 - Microsoft DevDays 2009
Workflow Foundation 4.0 - Microsoft DevDays 2009
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web API
 
WebAPI-Route-Translate-BasicAuth
WebAPI-Route-Translate-BasicAuthWebAPI-Route-Translate-BasicAuth
WebAPI-Route-Translate-BasicAuth
 
Caipira agil automacao front end selenium
Caipira agil automacao front end seleniumCaipira agil automacao front end selenium
Caipira agil automacao front end selenium
 
Curso PHP - 1a. Aula (2013.2)
Curso PHP - 1a. Aula (2013.2)Curso PHP - 1a. Aula (2013.2)
Curso PHP - 1a. Aula (2013.2)
 
o que é ajax
o que é ajaxo que é ajax
o que é ajax
 
Beyond Ruby with NodeJS - RubyConf Brasil 2010
Beyond Ruby with NodeJS - RubyConf Brasil 2010Beyond Ruby with NodeJS - RubyConf Brasil 2010
Beyond Ruby with NodeJS - RubyConf Brasil 2010
 
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web APITrilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
 
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
 
Web Offline
Web OfflineWeb Offline
Web Offline
 
ASP.NET 5, MVC 6 e além
ASP.NET 5, MVC 6 e alémASP.NET 5, MVC 6 e além
ASP.NET 5, MVC 6 e além
 
Html5
Html5Html5
Html5
 

Plus de André Paulovich

Plus de André Paulovich (20)

Construindo carreiras inspiradoras - UAIDEV 5.0
Construindo carreiras inspiradoras - UAIDEV 5.0Construindo carreiras inspiradoras - UAIDEV 5.0
Construindo carreiras inspiradoras - UAIDEV 5.0
 
Arquitetura evolutiva - Arquitetura ágil (TDC FLORIPA 2023)
Arquitetura evolutiva - Arquitetura ágil (TDC FLORIPA 2023)Arquitetura evolutiva - Arquitetura ágil (TDC FLORIPA 2023)
Arquitetura evolutiva - Arquitetura ágil (TDC FLORIPA 2023)
 
Equilíbrio entre carreira e vida pessoal
Equilíbrio entre carreira e vida pessoalEquilíbrio entre carreira e vida pessoal
Equilíbrio entre carreira e vida pessoal
 
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTI
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTILiberte sua arquitetura com Cloud Native - DEVSUMMIT IGTI
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTI
 
Como se tornar o profissional que todos procuram
Como se tornar o profissional que todos procuramComo se tornar o profissional que todos procuram
Como se tornar o profissional que todos procuram
 
Levando seu SCM à outro nível com Feature Flags
Levando seu SCM à outro nível com Feature FlagsLevando seu SCM à outro nível com Feature Flags
Levando seu SCM à outro nível com Feature Flags
 
C school Extended - Liberte sua arquitetura com Cloud Native
C school Extended - Liberte sua arquitetura com Cloud NativeC school Extended - Liberte sua arquitetura com Cloud Native
C school Extended - Liberte sua arquitetura com Cloud Native
 
Como se tornar o profissional que todos estão procurando.
Como se tornar o profissional que todos estão procurando.Como se tornar o profissional que todos estão procurando.
Como se tornar o profissional que todos estão procurando.
 
TDC BH 2019 - Arquitetura Evolutiva - Segredo da arquitetura ágil
TDC BH 2019 - Arquitetura Evolutiva - Segredo da arquitetura ágilTDC BH 2019 - Arquitetura Evolutiva - Segredo da arquitetura ágil
TDC BH 2019 - Arquitetura Evolutiva - Segredo da arquitetura ágil
 
TDC 2019 Cloud - Liberte sua arquitetura com cloud native
TDC 2019 Cloud - Liberte sua arquitetura com cloud nativeTDC 2019 Cloud - Liberte sua arquitetura com cloud native
TDC 2019 Cloud - Liberte sua arquitetura com cloud native
 
Semcom - UFV - Florestal - 2019 - André Paulovich
Semcom - UFV - Florestal - 2019 - André PaulovichSemcom - UFV - Florestal - 2019 - André Paulovich
Semcom - UFV - Florestal - 2019 - André Paulovich
 
ConnectionDay 2019 - Divinópolis - Transformação digital turbinada
ConnectionDay 2019 - Divinópolis - Transformação digital turbinadaConnectionDay 2019 - Divinópolis - Transformação digital turbinada
ConnectionDay 2019 - Divinópolis - Transformação digital turbinada
 
AKS. O que nunca te falaram. Global Azure Bootcamp BH 2019
AKS. O que nunca te falaram. Global Azure Bootcamp BH 2019AKS. O que nunca te falaram. Global Azure Bootcamp BH 2019
AKS. O que nunca te falaram. Global Azure Bootcamp BH 2019
 
CSchool - s02 e02 - Estratégias de desenvolvimento para turbinar a Transforma...
CSchool - s02 e02 - Estratégias de desenvolvimento para turbinar a Transforma...CSchool - s02 e02 - Estratégias de desenvolvimento para turbinar a Transforma...
CSchool - s02 e02 - Estratégias de desenvolvimento para turbinar a Transforma...
 
MeetupWeek - Transformacao Digital
MeetupWeek - Transformacao DigitalMeetupWeek - Transformacao Digital
MeetupWeek - Transformacao Digital
 
Arquitetura Evolutiva - A retomada do ágil 18 anos depois
Arquitetura Evolutiva - A retomada do ágil 18 anos depoisArquitetura Evolutiva - A retomada do ágil 18 anos depois
Arquitetura Evolutiva - A retomada do ágil 18 anos depois
 
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...
 
Acerto talk - Descobrindo o poder do Cloud Computing
Acerto talk - Descobrindo o poder do Cloud ComputingAcerto talk - Descobrindo o poder do Cloud Computing
Acerto talk - Descobrindo o poder do Cloud Computing
 
Share - Mastermaq - Evolução e o futuro do C#
Share - Mastermaq - Evolução e o futuro do C#Share - Mastermaq - Evolução e o futuro do C#
Share - Mastermaq - Evolução e o futuro do C#
 
Global Azure Bootcamp 2018 - Belo Horizonte - Paulovich
Global Azure Bootcamp 2018 - Belo Horizonte - PaulovichGlobal Azure Bootcamp 2018 - Belo Horizonte - Paulovich
Global Azure Bootcamp 2018 - Belo Horizonte - Paulovich
 

Dernier

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Dernier (6)

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
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
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 

Construindo apps com SignalR - AspNet Conference Brasil