SlideShare a Scribd company logo
1 of 19
Construindo Apps
com ASP.NET
SignalR
IVAN PAULOVICH - MVP ASP.NET
ivan@100loop.com
http://facebook.com/ivan.paulovich
@ivanpaulovich
Ivan Paulovich
Agenda
 O que é SignalR?
 Demo!
 SignalR no servidor e no cliente
 Demo!
 Demo!
 Demo!
O que é SignalR?
 Uma camada de abstração para comunicação assíncrona com
ASP.NET
 Permite comunicação bi-directional
 O cliente pode chamar o servidor (trivial)
 O servidor pode chamar métodos do cliente em tempo real
(incrivelmente simples)
Instalação via Nuget
1. New Empty Web Application
2. Instalar via Nuget
PM> Install-Package Microsoft.AspNet.SignalR
PM> Install-Package jquery
Modelo de Comunicação
Demo
 Bolsa de Valores
Conferir Versão do Javascript
SignalR no servidor e no cliente
 Instalação
 Modelo de Comunicação
 Hub
 Callbacks no Cliente
Hub
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
Hub no Cliente
<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”
“
”
Poucas linhas de
código para criar um
app multicliente .
Simplesmente incrível!
Demo
 Movendo Objetos
Onde você pode usar?
 Apps altamente interativas
 Dashboards
 Apps multicliente
 Comunicação em tempo real entre diferentes dispositivos
 IOs
 Windows Phone
 Desktop
 Mobile
 Chrome, Opera, Firefox, IE
 Jogos
Demo
 ShootR
http://shootr.signalr.net/
 JabbR
https://jabbr.net
Demo
 Sala de Bate Papo
Demo
 Clientes em dispositivos diferentes
Demo
 Jogo da Velha
Referências
 Siga o Damian Edwards
https://twitter.com/damianedwards
 ASP.NET
http://asp.net/signalr
 SignalR no GitHub
http://gifthub.com/signalr/signalr
 Blog 100loop.com
http://100loop.com
“
”
Obrigado!
Entre em contato no www.100loop.com ou no ivan@100loop.com

More Related Content

Similar to Construindo Apps com ASP.NET SignalR

Melhores práticas de CI/CD na construção de aplicações modernas
Melhores práticas de CI/CD na construção de aplicações modernasMelhores práticas de CI/CD na construção de aplicações modernas
Melhores práticas de CI/CD na construção de aplicações modernasAmazon Web Services LATAM
 
ASP.Net MVC 3 - o que há de novo (TechEd)
ASP.Net MVC 3 - o que há de novo (TechEd)ASP.Net MVC 3 - o que há de novo (TechEd)
ASP.Net MVC 3 - o que há de novo (TechEd)Giovanni Bassi
 
AAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcambAAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcambMicrosoft Brasil
 
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.xDicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.xRodrigo Kono
 
Silverlight no MIC Summer 2011
Silverlight no MIC Summer 2011 Silverlight no MIC Summer 2011
Silverlight no MIC Summer 2011 Felipe Pimentel
 
Introdução ao WCF - Windows Communication Foundation
Introdução ao WCF - Windows Communication FoundationIntrodução ao WCF - Windows Communication Foundation
Introdução ao WCF - Windows Communication FoundationC. Augusto Proiete
 
Introdução ao WCF - Windows Communication Foundation - C. Augusto Proiete
Introdução ao WCF - Windows Communication Foundation - C. Augusto ProieteIntrodução ao WCF - Windows Communication Foundation - C. Augusto Proiete
Introdução ao WCF - Windows Communication Foundation - C. Augusto ProieteComunidade NetPonto
 
WCF Brasil - Introdução ao WCF
WCF Brasil - Introdução ao WCFWCF Brasil - Introdução ao WCF
WCF Brasil - Introdução ao WCFFabian Gehrke
 
Desenvolvimento de Aplicações com LightSwitch
Desenvolvimento de Aplicações com LightSwitchDesenvolvimento de Aplicações com LightSwitch
Desenvolvimento de Aplicações com LightSwitchComunidade NetPonto
 
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Rodrigo Branas
 
Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Alexandre Tarifa
 
Criando microsserviços em PHP
Criando microsserviços em PHPCriando microsserviços em PHP
Criando microsserviços em PHPFlávio Lisboa
 
Comunicação em Tempo Real com ASP.Net SignalR
Comunicação em Tempo Real com ASP.Net SignalRComunicação em Tempo Real com ASP.Net SignalR
Comunicação em Tempo Real com ASP.Net SignalREduardo Pires
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014Giovanni Bassi
 
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 2009Ramon Durães
 
O rad da wave maker developing for the cloud
O rad da wave maker developing for the cloudO rad da wave maker developing for the cloud
O rad da wave maker developing for the cloudFrancisco Gonçalves
 
CI CD best practices for building modern applications - MAD301 - São Paulo AW...
CI CD best practices for building modern applications - MAD301 - São Paulo AW...CI CD best practices for building modern applications - MAD301 - São Paulo AW...
CI CD best practices for building modern applications - MAD301 - São Paulo AW...Amazon Web Services
 

Similar to Construindo Apps com ASP.NET SignalR (20)

Melhores práticas de CI/CD na construção de aplicações modernas
Melhores práticas de CI/CD na construção de aplicações modernasMelhores práticas de CI/CD na construção de aplicações modernas
Melhores práticas de CI/CD na construção de aplicações modernas
 
ASP.Net MVC 3 - o que há de novo (TechEd)
ASP.Net MVC 3 - o que há de novo (TechEd)ASP.Net MVC 3 - o que há de novo (TechEd)
ASP.Net MVC 3 - o que há de novo (TechEd)
 
AAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcambAAB301 - Rich Internet Application - wcamb
AAB301 - Rich Internet Application - wcamb
 
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.xDicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
 
Silverlight no MIC Summer 2011
Silverlight no MIC Summer 2011 Silverlight no MIC Summer 2011
Silverlight no MIC Summer 2011
 
Asp.Net Core - Meetup BH
Asp.Net Core - Meetup BHAsp.Net Core - Meetup BH
Asp.Net Core - Meetup BH
 
Asp.net core
Asp.net coreAsp.net core
Asp.net core
 
Introdução ao WCF - Windows Communication Foundation
Introdução ao WCF - Windows Communication FoundationIntrodução ao WCF - Windows Communication Foundation
Introdução ao WCF - Windows Communication Foundation
 
Introdução ao WCF - Windows Communication Foundation - C. Augusto Proiete
Introdução ao WCF - Windows Communication Foundation - C. Augusto ProieteIntrodução ao WCF - Windows Communication Foundation - C. Augusto Proiete
Introdução ao WCF - Windows Communication Foundation - C. Augusto Proiete
 
WCF Brasil - Introdução ao WCF
WCF Brasil - Introdução ao WCFWCF Brasil - Introdução ao WCF
WCF Brasil - Introdução ao WCF
 
Desenvolvimento de Aplicações com LightSwitch
Desenvolvimento de Aplicações com LightSwitchDesenvolvimento de Aplicações com LightSwitch
Desenvolvimento de Aplicações com LightSwitch
 
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
Minicurso - Desenvolvendo aplicações web com JavaScript e AngularJS - Estácio...
 
Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010
 
A Nova Web
A Nova WebA Nova Web
A Nova Web
 
Criando microsserviços em PHP
Criando microsserviços em PHPCriando microsserviços em PHP
Criando microsserviços em PHP
 
Comunicação em Tempo Real com ASP.Net SignalR
Comunicação em Tempo Real com ASP.Net SignalRComunicação em Tempo Real com ASP.Net SignalR
Comunicação em Tempo Real com ASP.Net SignalR
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014
 
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
 
O rad da wave maker developing for the cloud
O rad da wave maker developing for the cloudO rad da wave maker developing for the cloud
O rad da wave maker developing for the cloud
 
CI CD best practices for building modern applications - MAD301 - São Paulo AW...
CI CD best practices for building modern applications - MAD301 - São Paulo AW...CI CD best practices for building modern applications - MAD301 - São Paulo AW...
CI CD best practices for building modern applications - MAD301 - São Paulo AW...
 

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 Com SignalR
Construindo Apps Com SignalRConstruindo Apps Com SignalR
Construindo Apps Com 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 (19)

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 Com SignalR
Construindo Apps Com SignalRConstruindo Apps Com SignalR
Construindo Apps Com 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
 

Construindo Apps com ASP.NET SignalR

  • 1. Construindo Apps com ASP.NET SignalR IVAN PAULOVICH - MVP ASP.NET ivan@100loop.com http://facebook.com/ivan.paulovich @ivanpaulovich
  • 3. Agenda  O que é SignalR?  Demo!  SignalR no servidor e no cliente  Demo!  Demo!  Demo!
  • 4. O que é SignalR?  Uma camada de abstração para comunicação assíncrona com ASP.NET  Permite comunicação bi-directional  O cliente pode chamar o servidor (trivial)  O servidor pode chamar métodos do cliente em tempo real (incrivelmente simples)
  • 5. Instalação via Nuget 1. New Empty Web Application 2. Instalar via Nuget PM> Install-Package Microsoft.AspNet.SignalR PM> Install-Package jquery
  • 7. Demo  Bolsa de Valores Conferir Versão do Javascript
  • 8. SignalR no servidor e no cliente  Instalação  Modelo de Comunicação  Hub  Callbacks no Cliente
  • 9. Hub 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
  • 10. Hub no Cliente <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”
  • 11. “ ” Poucas linhas de código para criar um app multicliente . Simplesmente incrível!
  • 13. Onde você pode usar?  Apps altamente interativas  Dashboards  Apps multicliente  Comunicação em tempo real entre diferentes dispositivos  IOs  Windows Phone  Desktop  Mobile  Chrome, Opera, Firefox, IE  Jogos
  • 15. Demo  Sala de Bate Papo
  • 16. Demo  Clientes em dispositivos diferentes
  • 18. Referências  Siga o Damian Edwards https://twitter.com/damianedwards  ASP.NET http://asp.net/signalr  SignalR no GitHub http://gifthub.com/signalr/signalr  Blog 100loop.com http://100loop.com
  • 19. “ ” Obrigado! Entre em contato no www.100loop.com ou no ivan@100loop.com

Editor's Notes

  1. http://localhost:58607/SignalR.Sample/StockTicker.html