SlideShare a Scribd company logo
1 of 46
ANDRÉ PAULOVICH IVAN PAULOVICH
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
MANTENHA CONTATO NO WWW.100LOOP.COM
ANDRÉ PAULOVICH PAULOVICH@100LOOP.COM
IVAN PAULOVICH - IVAN@100LOOP.COM

More Related Content

Viewers also liked

Curso desenvolvendo web sites (asp)
Curso desenvolvendo web sites (asp)Curso desenvolvendo web sites (asp)
Curso desenvolvendo web sites (asp)Feliz Bunguele
 
Cadastro de clientes em c#
Cadastro de clientes em c#Cadastro de clientes em c#
Cadastro de clientes em c#André Luiz
 
Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#Vinicius Vieira
 
C sharp feup10set2001
C sharp feup10set2001C sharp feup10set2001
C sharp feup10set2001leojr_0
 
Fundamentos do asp.net
Fundamentos do asp.netFundamentos do asp.net
Fundamentos do asp.netleojr_0
 
Reconstrução de pterossauros com poliestireno extrudido (24o. cbp)
Reconstrução de pterossauros com poliestireno extrudido (24o. cbp)Reconstrução de pterossauros com poliestireno extrudido (24o. cbp)
Reconstrução de pterossauros com poliestireno extrudido (24o. cbp)Helder da Rocha
 
Minicurso Testes em .NET - Globalcode Vinicius Quaiato
Minicurso Testes em .NET - Globalcode Vinicius QuaiatoMinicurso Testes em .NET - Globalcode Vinicius Quaiato
Minicurso Testes em .NET - Globalcode Vinicius QuaiatoVinicius Quaiato
 
TOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONI
TOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONITOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONI
TOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONIFábio Delboni
 
TOTVS LINHA RM - FÓRMULAS - Lógica de construção de fórmulas
TOTVS LINHA RM - FÓRMULAS - Lógica de construção de fórmulasTOTVS LINHA RM - FÓRMULAS - Lógica de construção de fórmulas
TOTVS LINHA RM - FÓRMULAS - Lógica de construção de fórmulasFábio Delboni
 
Interop itcare: Interoperabilidade Java e .NET
Interop itcare: Interoperabilidade Java e .NETInterop itcare: Interoperabilidade Java e .NET
Interop itcare: Interoperabilidade Java e .NETAlessandro Binhara
 
TOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLTOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLFábio Delboni
 
C# 6.0 .net coders
C# 6.0   .net codersC# 6.0   .net coders
C# 6.0 .net codersRenato Groff
 
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Daniel Makiyama
 
Asp julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp julio battisti - criando sites dinamicos com asp 3.0leojr_0
 
105 apostila asp net, c# e visual basic.net
105 apostila asp net, c# e visual basic.net105 apostila asp net, c# e visual basic.net
105 apostila asp net, c# e visual basic.netFernando Helen
 

Viewers also liked (20)

Curso desenvolvendo web sites (asp)
Curso desenvolvendo web sites (asp)Curso desenvolvendo web sites (asp)
Curso desenvolvendo web sites (asp)
 
Cadastro de clientes em c#
Cadastro de clientes em c#Cadastro de clientes em c#
Cadastro de clientes em c#
 
Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#
 
C sharp feup10set2001
C sharp feup10set2001C sharp feup10set2001
C sharp feup10set2001
 
Fundamentos do asp.net
Fundamentos do asp.netFundamentos do asp.net
Fundamentos do asp.net
 
Reconstrução de pterossauros com poliestireno extrudido (24o. cbp)
Reconstrução de pterossauros com poliestireno extrudido (24o. cbp)Reconstrução de pterossauros com poliestireno extrudido (24o. cbp)
Reconstrução de pterossauros com poliestireno extrudido (24o. cbp)
 
Curso de xml
Curso de xmlCurso de xml
Curso de xml
 
Apostila de C# & Asp.Net
Apostila de C# & Asp.NetApostila de C# & Asp.Net
Apostila de C# & Asp.Net
 
Minicurso Testes em .NET - Globalcode Vinicius Quaiato
Minicurso Testes em .NET - Globalcode Vinicius QuaiatoMinicurso Testes em .NET - Globalcode Vinicius Quaiato
Minicurso Testes em .NET - Globalcode Vinicius Quaiato
 
TOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONI
TOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONITOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONI
TOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONI
 
TOTVS LINHA RM - FÓRMULAS - Lógica de construção de fórmulas
TOTVS LINHA RM - FÓRMULAS - Lógica de construção de fórmulasTOTVS LINHA RM - FÓRMULAS - Lógica de construção de fórmulas
TOTVS LINHA RM - FÓRMULAS - Lógica de construção de fórmulas
 
Interop itcare: Interoperabilidade Java e .NET
Interop itcare: Interoperabilidade Java e .NETInterop itcare: Interoperabilidade Java e .NET
Interop itcare: Interoperabilidade Java e .NET
 
TOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLTOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQL
 
C# 6.0 .net coders
C# 6.0   .net codersC# 6.0   .net coders
C# 6.0 .net coders
 
Curso asp - intermediario
Curso   asp - intermediarioCurso   asp - intermediario
Curso asp - intermediario
 
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Tutorial EJB 3.0 (2009)
Tutorial EJB 3.0 (2009)Tutorial EJB 3.0 (2009)
Tutorial EJB 3.0 (2009)
 
Asp julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp julio battisti - criando sites dinamicos com asp 3.0
 
105 apostila asp net, c# e visual basic.net
105 apostila asp net, c# e visual basic.net105 apostila asp net, c# e visual basic.net
105 apostila asp net, c# e visual basic.net
 

Similar to Introdução ao SignalR e suas principais características

Descobrindo APIs REST
Descobrindo APIs RESTDescobrindo APIs REST
Descobrindo APIs RESTGuilherme
 
Do Rest Ao Restfull - Rio Jug
Do Rest Ao Restfull - Rio JugDo Rest Ao Restfull - Rio Jug
Do Rest Ao Restfull - Rio JugSergio Azevedo
 
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 APIVinicius Mussak
 
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 EERodrigo Cândido da Silva
 
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 PloneFabiano Weimar
 
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 PythonBruno Rocha
 
WebAPI-Route-Translate-BasicAuth
WebAPI-Route-Translate-BasicAuthWebAPI-Route-Translate-BasicAuth
WebAPI-Route-Translate-BasicAuthJean Lima Lopes
 
Desenvolvendo uma App multiplataforma compartilhando 90% do código
Desenvolvendo uma App multiplataforma compartilhando 90% do códigoDesenvolvendo uma App multiplataforma compartilhando 90% do código
Desenvolvendo uma App multiplataforma compartilhando 90% do códigoGuilherme Heynemann Bruzzi
 
Construindo a NuConta
Construindo a NuContaConstruindo a NuConta
Construindo a NuContaNubank
 
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 2010Emerson Macedo
 
QCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EEQCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EERodrigo Cândido da Silva
 
Caipira agil automacao front end selenium
Caipira agil automacao front end seleniumCaipira agil automacao front end selenium
Caipira agil automacao front end seleniumQualister
 
Criando e consumindo Web Services (REST) com o CakePHP
Criando e consumindo Web Services (REST) com o CakePHPCriando e consumindo Web Services (REST) com o CakePHP
Criando e consumindo Web Services (REST) com o CakePHP2km interativa!
 
Introdução aos aplicativos tipo canvas
Introdução aos aplicativos tipo canvasIntrodução aos aplicativos tipo canvas
Introdução aos aplicativos tipo canvasGuilherme
 
Sist operacionais 7
Sist operacionais 7Sist operacionais 7
Sist operacionais 7Nauber Gois
 

Similar to Introdução ao SignalR e suas principais características (20)

Descobrindo APIs REST
Descobrindo APIs RESTDescobrindo APIs REST
Descobrindo APIs REST
 
React Native - JSday
React Native - JSdayReact Native - JSday
React Native - JSday
 
Do Rest Ao Restfull - Rio Jug
Do Rest Ao Restfull - Rio JugDo Rest Ao Restfull - Rio Jug
Do Rest Ao Restfull - Rio Jug
 
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
 
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
 
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
 
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
 
WebAPI-Route-Translate-BasicAuth
WebAPI-Route-Translate-BasicAuthWebAPI-Route-Translate-BasicAuth
WebAPI-Route-Translate-BasicAuth
 
Desenvolvendo uma App multiplataforma compartilhando 90% do código
Desenvolvendo uma App multiplataforma compartilhando 90% do códigoDesenvolvendo uma App multiplataforma compartilhando 90% do código
Desenvolvendo uma App multiplataforma compartilhando 90% do código
 
Construindo a NuConta
Construindo a NuContaConstruindo a NuConta
Construindo a NuConta
 
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
 
QCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EEQCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EE
 
WebHooks no ASP.NET
WebHooks no ASP.NETWebHooks no ASP.NET
WebHooks no ASP.NET
 
Caipira agil automacao front end selenium
Caipira agil automacao front end seleniumCaipira agil automacao front end selenium
Caipira agil automacao front end selenium
 
Html5
Html5Html5
Html5
 
Criando e consumindo Web Services (REST) com o CakePHP
Criando e consumindo Web Services (REST) com o CakePHPCriando e consumindo Web Services (REST) com o CakePHP
Criando e consumindo Web Services (REST) com o CakePHP
 
GUJavaSC - Combinando AngularJS com Java EE
GUJavaSC - Combinando AngularJS com Java EEGUJavaSC - Combinando AngularJS com Java EE
GUJavaSC - Combinando AngularJS com Java EE
 
Introdução aos aplicativos tipo canvas
Introdução aos aplicativos tipo canvasIntrodução aos aplicativos tipo canvas
Introdução aos aplicativos tipo canvas
 
Python 08
Python 08Python 08
Python 08
 
Sist operacionais 7
Sist operacionais 7Sist operacionais 7
Sist operacionais 7
 

More from Ivan Paulovich

DDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan PaulovichDDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan PaulovichIvan Paulovich
 
Clean Architecture Essentials - Stockholm Software Craftsmanship
Clean Architecture Essentials - Stockholm Software CraftsmanshipClean Architecture Essentials - Stockholm Software Craftsmanship
Clean Architecture Essentials - Stockholm Software CraftsmanshipIvan Paulovich
 
Clean Architecture Essentials @ivanpaulovich
Clean Architecture Essentials @ivanpaulovichClean Architecture Essentials @ivanpaulovich
Clean Architecture Essentials @ivanpaulovichIvan Paulovich
 
Building rich domain models with ddd and tdd ivan paulovich - betsson
Building rich domain models with ddd and tdd   ivan paulovich - betssonBuilding rich domain models with ddd and tdd   ivan paulovich - betsson
Building rich domain models with ddd and tdd ivan paulovich - betssonIvan Paulovich
 
Moving to Microservices
Moving to MicroservicesMoving to Microservices
Moving to MicroservicesIvan Paulovich
 
Produzindo e consumindo um stream de eventos
Produzindo e consumindo um stream de eventosProduzindo e consumindo um stream de eventos
Produzindo e consumindo um stream de eventosIvan Paulovich
 
Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em crec...
Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em crec...Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em crec...
Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em crec...Ivan Paulovich
 
Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em creches
Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em crechesComo uma aplicação baseada em fluxo de dados pode ampliar a segurança em creches
Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em crechesIvan Paulovich
 
Aggregates com Event Sourcing
Aggregates com Event SourcingAggregates com Event Sourcing
Aggregates com Event SourcingIvan Paulovich
 
Estudo do eShopOnContainers
Estudo do eShopOnContainersEstudo do eShopOnContainers
Estudo do eShopOnContainersIvan Paulovich
 
Introdução ao Domain-Driven-Design (DDD)
Introdução ao Domain-Driven-Design (DDD)Introdução ao Domain-Driven-Design (DDD)
Introdução ao Domain-Driven-Design (DDD)Ivan Paulovich
 
Princípios SOLID de OO usando .NET
Princípios SOLID de OO usando .NETPrincípios SOLID de OO usando .NET
Princípios SOLID de OO usando .NETIvan Paulovich
 
Utilize o vso e publique imagens docker Global Azure Bootcamp - BH
Utilize o vso e publique imagens docker Global Azure Bootcamp - BHUtilize o vso e publique imagens docker Global Azure Bootcamp - BH
Utilize o vso e publique imagens docker Global Azure Bootcamp - BHIvan Paulovich
 
Windows Azure Mobile Services InfoTech 2014
Windows Azure Mobile Services InfoTech 2014Windows Azure Mobile Services InfoTech 2014
Windows Azure Mobile Services InfoTech 2014Ivan Paulovich
 
Mercado de ti e suas oportunidades
Mercado de ti e suas oportunidadesMercado de ti e suas oportunidades
Mercado de ti e suas oportunidadesIvan Paulovich
 
Construindo apps de tempo real com SignalR
Construindo apps de tempo real com SignalRConstruindo apps de tempo real com SignalR
Construindo apps de tempo real com SignalRIvan Paulovich
 
Construindo Apps com ASP.NET SignalR
Construindo Apps com ASP.NET SignalRConstruindo Apps com ASP.NET SignalR
Construindo Apps com ASP.NET SignalRIvan Paulovich
 
Levando sua aplicação para a nuvem
Levando sua aplicação para a nuvemLevando sua aplicação para a nuvem
Levando sua aplicação para a nuvemIvan Paulovich
 
Conhecendo os recursos do ASP.NET Web API
Conhecendo os recursos do ASP.NET Web APIConhecendo os recursos do ASP.NET Web API
Conhecendo os recursos do ASP.NET Web APIIvan Paulovich
 
Criando aplicativos para Windows 8 usando apenas HTML5 e Javascript
Criando aplicativos para Windows 8 usando apenas HTML5 e JavascriptCriando aplicativos para Windows 8 usando apenas HTML5 e Javascript
Criando aplicativos para Windows 8 usando apenas HTML5 e JavascriptIvan Paulovich
 

More from Ivan Paulovich (20)

DDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan PaulovichDDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan Paulovich
 
Clean Architecture Essentials - Stockholm Software Craftsmanship
Clean Architecture Essentials - Stockholm Software CraftsmanshipClean Architecture Essentials - Stockholm Software Craftsmanship
Clean Architecture Essentials - Stockholm Software Craftsmanship
 
Clean Architecture Essentials @ivanpaulovich
Clean Architecture Essentials @ivanpaulovichClean Architecture Essentials @ivanpaulovich
Clean Architecture Essentials @ivanpaulovich
 
Building rich domain models with ddd and tdd ivan paulovich - betsson
Building rich domain models with ddd and tdd   ivan paulovich - betssonBuilding rich domain models with ddd and tdd   ivan paulovich - betsson
Building rich domain models with ddd and tdd ivan paulovich - betsson
 
Moving to Microservices
Moving to MicroservicesMoving to Microservices
Moving to Microservices
 
Produzindo e consumindo um stream de eventos
Produzindo e consumindo um stream de eventosProduzindo e consumindo um stream de eventos
Produzindo e consumindo um stream de eventos
 
Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em crec...
Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em crec...Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em crec...
Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em crec...
 
Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em creches
Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em crechesComo uma aplicação baseada em fluxo de dados pode ampliar a segurança em creches
Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em creches
 
Aggregates com Event Sourcing
Aggregates com Event SourcingAggregates com Event Sourcing
Aggregates com Event Sourcing
 
Estudo do eShopOnContainers
Estudo do eShopOnContainersEstudo do eShopOnContainers
Estudo do eShopOnContainers
 
Introdução ao Domain-Driven-Design (DDD)
Introdução ao Domain-Driven-Design (DDD)Introdução ao Domain-Driven-Design (DDD)
Introdução ao Domain-Driven-Design (DDD)
 
Princípios SOLID de OO usando .NET
Princípios SOLID de OO usando .NETPrincípios SOLID de OO usando .NET
Princípios SOLID de OO usando .NET
 
Utilize o vso e publique imagens docker Global Azure Bootcamp - BH
Utilize o vso e publique imagens docker Global Azure Bootcamp - BHUtilize o vso e publique imagens docker Global Azure Bootcamp - BH
Utilize o vso e publique imagens docker Global Azure Bootcamp - BH
 
Windows Azure Mobile Services InfoTech 2014
Windows Azure Mobile Services InfoTech 2014Windows Azure Mobile Services InfoTech 2014
Windows Azure Mobile Services InfoTech 2014
 
Mercado de ti e suas oportunidades
Mercado de ti e suas oportunidadesMercado de ti e suas oportunidades
Mercado de ti e suas oportunidades
 
Construindo apps de tempo real com SignalR
Construindo apps de tempo real com SignalRConstruindo apps de tempo real com SignalR
Construindo apps de tempo real com SignalR
 
Construindo Apps com ASP.NET SignalR
Construindo Apps com ASP.NET SignalRConstruindo Apps com ASP.NET SignalR
Construindo Apps com ASP.NET SignalR
 
Levando sua aplicação para a nuvem
Levando sua aplicação para a nuvemLevando sua aplicação para a nuvem
Levando sua aplicação para a nuvem
 
Conhecendo os recursos do ASP.NET Web API
Conhecendo os recursos do ASP.NET Web APIConhecendo os recursos do ASP.NET Web API
Conhecendo os recursos do ASP.NET Web API
 
Criando aplicativos para Windows 8 usando apenas HTML5 e Javascript
Criando aplicativos para Windows 8 usando apenas HTML5 e JavascriptCriando aplicativos para Windows 8 usando apenas HTML5 e Javascript
Criando aplicativos para Windows 8 usando apenas HTML5 e Javascript
 

Introdução ao SignalR e suas principais características

Editor's Notes

  1. Regular http:A client requests a webpage from a server.The server calculates the responseThe server sends the response to the client.Referência:http://stackoverflow.com/questions/11077857/what-are-long-polling-websockets-server-sent-events-sse-and-comet
  2. AJAX Polling:A client requests a webpage from a server using regular http (see http above).The requested webpage executes javascript which requests a file from the server at regular intervals (e.g. 0.5 seconds).The server calculates each response and sends it back, just like normal http traffic.
  3. AJAX Long-Polling:A client requests a webpage from a server using regular http (see http above).The requested webpage executes javascript which requests a file from the server.The server does not immediately respond with the requested information but waits until there&apos;s new information available.When there&apos;s new information available, the server responds with the new information.The client receives the new information and immediately sends another request to the server, re-starting the process.
  4. HTML5 Server Sent Events (SSE) / EventSource:A client requests a webpage from a server using regular http (see http above).The requested webpage executes javascript which opens a connection to the server.The server sends an event to the client when there&apos;s new information available.real-time traffic from server to client, mostly that&apos;s what you&apos;ll needyou&apos;ll want to use a server that has an event loopnot possible to connect with a server from another domainIf you want to read more, I found thse (article), (article), (article), (tutorial) very useful.
  5. HTML5 Server Sent Events (SSE) / EventSource:A client requests a webpage from a server using regular http (see http above).The requested webpage executes javascript which opens a connection to the server.The server sends an event to the client when there&apos;s new information available.real-time traffic from server to client, mostly that&apos;s what you&apos;ll needyou&apos;ll want to use a server that has an event loopnot possible to connect with a server from another domainIf you want to read more, I found thse (article), (article), (article), (tutorial) very useful.
  6. HTML5 Websockets:A client requests a webpage from a server using regular http (see http above).The requested webpage executes javascript which opens a connection with the server.The server and the client can now send each other messages when new data (on either side) is available.real-time traffic from the server to the client and from the client to the serveryou&apos;ll want to use a server that has an event loopwith WebSockets it is possible to connect with a server from another domain.It is also possible to use a third party hosted websocket server, for example Pusher or others. This way you&apos;ll only have to implement the client side, which is very easy!If you want to read more, I found thse (article), (article) (tutorial) very useful.