SlideShare una empresa de Scribd logo
1 de 37
SignalR y Apps
móviles
Introducción al desarrollo de apps
móviles real time haciendo uso de
signalR

Javier Suárez @JSuarezRuiz

CartujaDotNet
El problema

®
El problema

®
¿HTTP al rescate?
¡HTTP no está orientado al tiempo real!

®
Polling: ¿la solución?

• Aprovecha las ventajas de HTTP
• Intervalos de actualización cortos  Muchos recursos
®

• Intervalos de actualización largos  Peor interacción
Web Sockets

®
Push hoy

®
Pero no es todo…

®
Demasiado, ¿verdad?
Real-time SignalR
¿Qué es SignalR?
Librerías open-source que añaden una capa de
abstracción alrededor de las conexiones
[Y en castellano, por favor]
persistentes HTTP
SignalR permite crear Apps en tiempo real de una
manera sumamente fácil

®
SignalR

 Código en GitHub: http://github.com/signalr
®
¿Que nos aporta?

®
SignalR

®
Basicamente…

®
Nos centramos en la parte
servidor y cliente Jquery
Requisitos para el servidor
Windows Server 2012 (WebSockets)
• Windows Server 2008 r2.
• Windows 8 (WebSockets)
• Windows 7
•

.NET 4
• .NET 4.5 (WebSockets)
•

•

IIS 7* / 8

Microsoft /web
®
Comenzamos. Instalación.

RouteTabRouteTable.Routes.MapHubs()
®

Application_Start
Comenzamos. Configuración.
protected void Application_Start()
{
RouteTable.Routes.MapHubs();
//More code
}

<script src=http://code.jquery.com/jquery-1.8.2.min.js
type="text/javascript"></script>
<script src="Scripts/jquery.signalR-2.0.0.0.min.js"
type="text/javascript"></script>
<script src="/signalr/hubs" type="text/javascript"></script>
®
Comenzamos. Connection y Hub.

®
Conexiones vs Hubs
•

Conexiones persistentes

Bajo nivel
Experiencia similar a sockets
• Conexión
• Desconexión
• Envío
• Mensajes de bajo nivel ("raw")
 Nosotros interpretamos los mensajes
•
•

•

Hubs
•
•

Mucha mayor abstracción
Diferencias:
•
•
•

Heredan de "Hub"
No hace falta routing
Mensajes de alto nivel
 Llamadas a métodos entre cliente y servidor
 Ilusión de continuidad

Microsoft /web
®

Abstracción

Hubs
Conexiones persistentes
Transportes
Forever
frame

Long polling

Server-sent
events

Protocolos internet

WebSockets
Conexiones
Cliente (javascript)
var conn = $.connection(“MyConn”);
conn.start();

Servidor (Conexión persistente)
class MyConn: PersistentConnection
{
override Task OnConnectedAsync() { … }

conn.send(“hi, all!”);
conn.receive(function(text) {
$(“#log”)
.append(“<li>”+text+”</li>”);
});

Microsoft /web
®

override Task OnReceivedAsync(string data)
{
return Connection.Broadcast(data);
}
override Task OnDisconnectAsync() { ... }
}
Hubs
Cliente (javascript)

Servidor
(Hub)

var chat = $.connection.chatHub;
$.connection.hub.start();
Proxy
chat.enviar(“hi, all!”);
chat.recibir = function(text) {
$(“#log”)
.append(“<li>”+text+”</li>”);
};

Microsoft /web
®

class ChatHub: Hub
{
public void enviar(string text)
{
Clients.recibir(text);
}
}
Comenzamos. Hub.

®
Comenzamos. Cliente.
Clients

public void SendMessage(string message)
{
var msg = string.Format("{0}: {1}",
Context.ConnectionId, message);
Clients.All.newMessage(msg);
}

®
Comenzamos. Cliente Jquery.
/signalr/hubs
$.connection
$.connection.chatHub

$.connection.hub.start()
$.connection.hub.start({ transport: 'longPolling'});

var chat = $.connection.chat;
chat.server.joinRoom('private');
®
Comenzamos. Cliente Jquery.
var chat = $.connection.chat;
chat.client.newMessage = onNewMessage;
function addMessage(message) {
$('#messages').append(message);
}

®
Demo
Crear un Chat con SignalR.

Cliente Jquery.
SignalR no está limitado a
clientes web
Otros Clientes
Se puede usar en

®
SignalR
CLIENTES

HOSTS
®
Demo
Clientes Windows Phone 8 y
Windows 8 de nuestro Chat
Preguntas y respuestas
¿Dudas?

P&R
33
Más Información
• @SignalR

• Twitter feed
• Signalr.net
• Website
• ASP.NET/SignalR
• Microsoft’s content/tutorials
• http://t.co/oHWaZb2a47
• E-Book de Jose María Aguilar
10% de descuento

En todos nuestros cursos y libros
Sólo durante los próximos 15 días
Introduce el cupón ESRM5NUB al realizar
tu compra en nuestra tienda online.

www.campusmvp.es

CURSO ONLINE: Aplicaciones móviles con HTML5, Backbone y PhoneGap
CURSO ONLINE : Single Page Applications
CURSO ONLINE : Desarrollo Web con ASP.NET MVC4 …. Y muchos más
Contacto
• Web

• www.javiersuarezruiz.wordpress.com
• http://geeks.ms/blogs/jsuarez/
• Email
• javiersuarezruiz@hotmail.com
• Twitter
• @jsuarezruiz
Gracias por vuestro tiempo!

SignalR y Apps
móviles

Más contenido relacionado

Similar a SignalR y dispositivos móviles

Presentacion remobjects
Presentacion remobjectsPresentacion remobjects
Presentacion remobjectsmamcx
 
Novedades En Visual Studio Team System 2010
Novedades En Visual Studio Team System 2010Novedades En Visual Studio Team System 2010
Novedades En Visual Studio Team System 2010Bruno Capuano
 
Building Ria Applications With Silverlight 2
Building Ria Applications With Silverlight 2Building Ria Applications With Silverlight 2
Building Ria Applications With Silverlight 2Tonymx
 
Codemotion 2013 Desarrollo de apps móviles multiplataforma
Codemotion 2013  Desarrollo de apps móviles multiplataformaCodemotion 2013  Desarrollo de apps móviles multiplataforma
Codemotion 2013 Desarrollo de apps móviles multiplataformaJose Manuel Ortega Candel
 
Reactvolution
ReactvolutionReactvolution
Reactvolution_Lagash
 
Exprimiendo SharePoint 2010
Exprimiendo SharePoint 2010Exprimiendo SharePoint 2010
Exprimiendo SharePoint 2010Juan Pablo
 
Aplicaciones Web SPA con WebAPI y TypeScript
Aplicaciones Web SPA con WebAPI y TypeScriptAplicaciones Web SPA con WebAPI y TypeScript
Aplicaciones Web SPA con WebAPI y TypeScriptLuis Guerrero
 
An evening with ... Ionic Framework Meetup
An evening with ... Ionic Framework Meetup An evening with ... Ionic Framework Meetup
An evening with ... Ionic Framework Meetup Arkhotech
 
Framework .NET 3.5 13 Programación orientada a la red
Framework .NET 3.5 13 Programación orientada a la redFramework .NET 3.5 13 Programación orientada a la red
Framework .NET 3.5 13 Programación orientada a la redAntonio Palomares Sender
 

Similar a SignalR y dispositivos móviles (20)

ASP.NET MVC Workshop Día 3
ASP.NET MVC Workshop Día 3ASP.NET MVC Workshop Día 3
ASP.NET MVC Workshop Día 3
 
Presentacion remobjects
Presentacion remobjectsPresentacion remobjects
Presentacion remobjects
 
Novedades En Visual Studio Team System 2010
Novedades En Visual Studio Team System 2010Novedades En Visual Studio Team System 2010
Novedades En Visual Studio Team System 2010
 
DotNetDom: El futuro de Xamarin
DotNetDom: El futuro de XamarinDotNetDom: El futuro de Xamarin
DotNetDom: El futuro de Xamarin
 
.Net Conf Sevilla 2018
.Net Conf Sevilla 2018.Net Conf Sevilla 2018
.Net Conf Sevilla 2018
 
Building Ria Applications With Silverlight 2
Building Ria Applications With Silverlight 2Building Ria Applications With Silverlight 2
Building Ria Applications With Silverlight 2
 
Real-time web
Real-time webReal-time web
Real-time web
 
Codemotion 2013 Desarrollo de apps móviles multiplataforma
Codemotion 2013  Desarrollo de apps móviles multiplataformaCodemotion 2013  Desarrollo de apps móviles multiplataforma
Codemotion 2013 Desarrollo de apps móviles multiplataforma
 
Reactvolution
ReactvolutionReactvolution
Reactvolution
 
WebRTC
WebRTCWebRTC
WebRTC
 
Servicios web
Servicios webServicios web
Servicios web
 
Exprimiendo SharePoint 2010
Exprimiendo SharePoint 2010Exprimiendo SharePoint 2010
Exprimiendo SharePoint 2010
 
(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0
(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0
(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0
 
Aplicaciones Web SPA con WebAPI y TypeScript
Aplicaciones Web SPA con WebAPI y TypeScriptAplicaciones Web SPA con WebAPI y TypeScript
Aplicaciones Web SPA con WebAPI y TypeScript
 
Charla ie
Charla ieCharla ie
Charla ie
 
An evening with ... Ionic Framework Meetup
An evening with ... Ionic Framework Meetup An evening with ... Ionic Framework Meetup
An evening with ... Ionic Framework Meetup
 
Framework .NET 3.5 13 Programación orientada a la red
Framework .NET 3.5 13 Programación orientada a la redFramework .NET 3.5 13 Programación orientada a la red
Framework .NET 3.5 13 Programación orientada a la red
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 

Más de Javier Suárez Ruiz

Cape Town MS Developer User Group: Xamarin Community Toolkit
Cape Town MS Developer User Group: Xamarin Community ToolkitCape Town MS Developer User Group: Xamarin Community Toolkit
Cape Town MS Developer User Group: Xamarin Community ToolkitJavier Suárez Ruiz
 
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.FormsTech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.FormsJavier Suárez Ruiz
 
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....Javier Suárez Ruiz
 
Monkey Conf 2020: .NET MAUI Handlers
Monkey Conf 2020: .NET MAUI HandlersMonkey Conf 2020: .NET MAUI Handlers
Monkey Conf 2020: .NET MAUI HandlersJavier Suárez Ruiz
 
Creando controles para Xamarin.Forms
Creando controles para Xamarin.FormsCreando controles para Xamarin.Forms
Creando controles para Xamarin.FormsJavier Suárez Ruiz
 
Monkey Conf 2019: Presente y futuro de Xamarin.Forms
Monkey Conf 2019: Presente y futuro de Xamarin.FormsMonkey Conf 2019: Presente y futuro de Xamarin.Forms
Monkey Conf 2019: Presente y futuro de Xamarin.FormsJavier Suárez Ruiz
 
Crear interfaces de usuario atractivas con Xamarin.Forms
Crear interfaces de usuario atractivas con Xamarin.FormsCrear interfaces de usuario atractivas con Xamarin.Forms
Crear interfaces de usuario atractivas con Xamarin.FormsJavier Suárez Ruiz
 
DotNet 2019: Optimizando Apps con Xamarin.Forms
DotNet 2019: Optimizando Apps con Xamarin.FormsDotNet 2019: Optimizando Apps con Xamarin.Forms
DotNet 2019: Optimizando Apps con Xamarin.FormsJavier Suárez Ruiz
 
Monkey Conf 2018: Conociendo Xamarin.Forms Shell
Monkey Conf 2018: Conociendo Xamarin.Forms ShellMonkey Conf 2018: Conociendo Xamarin.Forms Shell
Monkey Conf 2018: Conociendo Xamarin.Forms ShellJavier Suárez Ruiz
 
Analizando interfaces de usuario avanzadas con Xamarin.Forms
Analizando interfaces de usuario avanzadas con Xamarin.FormsAnalizando interfaces de usuario avanzadas con Xamarin.Forms
Analizando interfaces de usuario avanzadas con Xamarin.FormsJavier Suárez Ruiz
 
OpenSouthCode 2018: Taller Xamarin
OpenSouthCode 2018: Taller XamarinOpenSouthCode 2018: Taller Xamarin
OpenSouthCode 2018: Taller XamarinJavier Suárez Ruiz
 
DotNet2018: Xamarin.Forms Everywhere!
DotNet2018: Xamarin.Forms Everywhere!DotNet2018: Xamarin.Forms Everywhere!
DotNet2018: Xamarin.Forms Everywhere!Javier Suárez Ruiz
 
Desarrollo Xamarin, más allá del desarrollo
Desarrollo Xamarin, más allá del desarrolloDesarrollo Xamarin, más allá del desarrollo
Desarrollo Xamarin, más allá del desarrolloJavier Suárez Ruiz
 
Aumento de productividad, herramientas Xamarin
Aumento de productividad, herramientas XamarinAumento de productividad, herramientas Xamarin
Aumento de productividad, herramientas XamarinJavier Suárez Ruiz
 
Plain Concepts Tech Day: Desarrollo de aplicaciones multiplataforma con Xamarin
Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con XamarinPlain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin
Plain Concepts Tech Day: Desarrollo de aplicaciones multiplataforma con XamarinJavier Suárez Ruiz
 

Más de Javier Suárez Ruiz (20)

Cape Town MS Developer User Group: Xamarin Community Toolkit
Cape Town MS Developer User Group: Xamarin Community ToolkitCape Town MS Developer User Group: Xamarin Community Toolkit
Cape Town MS Developer User Group: Xamarin Community Toolkit
 
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.FormsTech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms
 
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....
 
Monkey Conf 2020: .NET MAUI Handlers
Monkey Conf 2020: .NET MAUI HandlersMonkey Conf 2020: .NET MAUI Handlers
Monkey Conf 2020: .NET MAUI Handlers
 
Creando controles para Xamarin.Forms
Creando controles para Xamarin.FormsCreando controles para Xamarin.Forms
Creando controles para Xamarin.Forms
 
Monkey Conf 2019: Presente y futuro de Xamarin.Forms
Monkey Conf 2019: Presente y futuro de Xamarin.FormsMonkey Conf 2019: Presente y futuro de Xamarin.Forms
Monkey Conf 2019: Presente y futuro de Xamarin.Forms
 
Crear interfaces de usuario atractivas con Xamarin.Forms
Crear interfaces de usuario atractivas con Xamarin.FormsCrear interfaces de usuario atractivas con Xamarin.Forms
Crear interfaces de usuario atractivas con Xamarin.Forms
 
#XamarinUIJuly Summary
#XamarinUIJuly Summary#XamarinUIJuly Summary
#XamarinUIJuly Summary
 
DotNet 2019: Optimizando Apps con Xamarin.Forms
DotNet 2019: Optimizando Apps con Xamarin.FormsDotNet 2019: Optimizando Apps con Xamarin.Forms
DotNet 2019: Optimizando Apps con Xamarin.Forms
 
Taller Xamarin Monkey Conf 2018
Taller Xamarin Monkey Conf 2018Taller Xamarin Monkey Conf 2018
Taller Xamarin Monkey Conf 2018
 
Monkey Conf 2018: Conociendo Xamarin.Forms Shell
Monkey Conf 2018: Conociendo Xamarin.Forms ShellMonkey Conf 2018: Conociendo Xamarin.Forms Shell
Monkey Conf 2018: Conociendo Xamarin.Forms Shell
 
Analizando interfaces de usuario avanzadas con Xamarin.Forms
Analizando interfaces de usuario avanzadas con Xamarin.FormsAnalizando interfaces de usuario avanzadas con Xamarin.Forms
Analizando interfaces de usuario avanzadas con Xamarin.Forms
 
OpenSouthCode 2018: Taller Xamarin
OpenSouthCode 2018: Taller XamarinOpenSouthCode 2018: Taller Xamarin
OpenSouthCode 2018: Taller Xamarin
 
DotNet2018: Xamarin.Forms Everywhere!
DotNet2018: Xamarin.Forms Everywhere!DotNet2018: Xamarin.Forms Everywhere!
DotNet2018: Xamarin.Forms Everywhere!
 
Novedades Xamarin 3.0 Preview
Novedades Xamarin 3.0 PreviewNovedades Xamarin 3.0 Preview
Novedades Xamarin 3.0 Preview
 
Desarrollo Xamarin, más allá del desarrollo
Desarrollo Xamarin, más allá del desarrolloDesarrollo Xamarin, más allá del desarrollo
Desarrollo Xamarin, más allá del desarrollo
 
Introducción a Xamarin.Forms
Introducción a Xamarin.FormsIntroducción a Xamarin.Forms
Introducción a Xamarin.Forms
 
Introducción a Xamarin
Introducción a XamarinIntroducción a Xamarin
Introducción a Xamarin
 
Aumento de productividad, herramientas Xamarin
Aumento de productividad, herramientas XamarinAumento de productividad, herramientas Xamarin
Aumento de productividad, herramientas Xamarin
 
Plain Concepts Tech Day: Desarrollo de aplicaciones multiplataforma con Xamarin
Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con XamarinPlain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin
Plain Concepts Tech Day: Desarrollo de aplicaciones multiplataforma con Xamarin
 

SignalR y dispositivos móviles

Notas del editor

  1. Remember mariba castanet?NancySinatra