SlideShare a Scribd company logo
1 of 27
SignalR-Powered X-Platform Real-Time
Apps!
SignalR-Powered X-Platform Real-Time
Apps!
Samidip Basu Microsoft MVP, MS, MCPD, CAPM
Senior Technical Trainer | Telerik Inc. |
www.telerik.com
E: Sam.Basu@Telerik.com | L: x3179 | C: 507 244
0579
T: @samidip | W: http://samidipbasu.com
Why do we need real-time?
- New email
- Twitter/Facebook updates
- Stock Ticker/Live Auctions
- Game Scores
- Real-time Notifications
- Turn-by-Turn or Shooter Games
- Collaboration
- Progress Bars
- And obviously, Chat
No dearth of examples where real-time communication in needed ..
Challenges
- Building real-time applications is difficult
- Transcends boundaries of choice in development platforms
- Part of the problem is HTTP – Request/Response protocol
HTTP = HyperText Transfer Protocol | Obviously works, but has
limitations!

- Statelessness of web applications
 Need open transport channel between server and clients for
bidirectional or full-duplex communication.
Existing Technologies
Periodic/Ajax Polling

Image courtesy @maartenballiauw

Downsides:
• Not real-time
• Potential big bandwidth misuse!
Existing Technologies .. Contd.
Long Polling – server does not respond unless X happens, client polls
after data receive or time-out

Image courtesy @maartenballiauw

Downsides:
• Needs orchestration
• Custom code on either end
Existing Technologies .. Others
- Use plugins like Silverlight/Flash – to communicate through sockets
- Forever Frame (execute script blocks from server in iFrame)
- Server sent Events (Push or Stream from server)

- Native HTML 5 Web Sockets (Magic Unicorn world) – true
bidirectional
transport channel; but support can be flaky
Bottom-line:
• Lots of options in existing technologies to build real-time applications
• Not perfect; choose what you need
Wish list:
• Wouldn’t it be nice if someone took care of the network transport layer?
• Would you not want to focus on just your application?
Enter SignalR
An async, persistent connection/signalling library for .NET over HTTP ... aids in
building real time, multi-user connected applications.
Persistent client-server connection over best transport .. Abstracts away the
transport layer.
From ASP.NET team-members (Damian Edwards & David Fowler) ..
Not officially MSFT product, but OSS Boom! 
https://github.com/SignalR/SignalR
http://jabbr.net/#/rooms/signal
http://shootr.signalr.net/

SignalR is broken up into a few packages on NuGet:
SignalR - Package for SignalR.Server and SignalR.Js
SignalR.Server - Server components needed for SignalR endpoints
SignalR.Js - Javascript client for SignalR
SignalR.Client - .NET client for SignalR
SignalR.WP7, SignalR.WinRT, SignalR.Silverlight – For the cool folks 
SignalR.WebSockets - WebSocket Transport for SignalR
What is SignalR?
- SignalR is an asynchronous persistent connection/signaling library for
ASP.NET applications
- SignalR makes it easy to build real-time multi-user connected applications
- SignalR abstracts away the network layer for bidirectional real-time
communications, thus helping you focus on building your application
- SignalR includes broad platform support & features a rich API set for aiding
client-server communications

SignalR is quite
awesome!
History & Examples
- Both members of Microsoft’s One ASP.NET team
- SignalR had humble beginnings as a side project
- Started as Open Source Software (OSS)
- Matured enough over past couple of years
David Fowler

- Now officially part of Microsoft ASP.NET stack (Yay)!
- Still continues to be open-source @
https://github.com/SignalR/SignalR

Damian
Edwards

- SignalR powered IRC Chat application: https://jabbr.net/
- SignalR powered real-time game:
http://shootr.signalr.net/
How it works
- SignalR allows bidirectional communication between client & server
over persistent connections

- SignalR provides simple APIs for Remote Procedure Calls (RPC)
between client & server
- Transport mechanisms are chosen to best fit given client & server
environments
- SignalR manages the network layer for your application, unless you
want control
Abstraction of Network Transport!

How it works .. Contd.

Image courtesy
Microsoft

The first time you see SignalR in action ..
“Your brain should have exploded & leaked out of your ears ..” – Scott Hanselman
SignalR Internals
- SignalR abstracts bidirectional communication between client & server over
persistent connections
- The choice of network transport relies on available client & server
environments. Applications may also specify transport layer.
- Order of network transports selected by SignalR:
- Web Sockets
Best transport, but with most stringent
- Server Sent Events requirements!
- Forever Frame
- Long Polling
- Ajax Polling
- Best part – SignalR has automatic fallbacks built-in!
SignalR API Stack
- SignalR offers consistent interface on top of network technologies
- Developer gets to choose the level of abstraction of network layer
- SignalR API stack offers two modes for controlling the real-time communication
between client & server:
- Hubs
- High level abstraction
- Built on top of Persistent Connections
- Least developer work
- Works for majority of uses
- Will be familiar to developers who have used remote invocation APIs such as .NET Remoting

- Persistent Connections
- Low level access to communication
- Direct developer access to network pipeline
- Access to lot more communication events
- Will be familiar to developers who have used connection-based APIs such as WCF
More SignalR APIs
- Specifying network technology if client/server capabilities are known in
advance; saves the hand-shaking time for SignalR connectivity

- Monitor network transport/traffic by turning on logging on the server
- List of clients connected to SignalR server is maintained in-memory on server;
developers may choose to persist based on application needs
- Connection Management

- Connect/Disconnect events
- Grouping Connections
- Authorization

Needed for chatrooms


- Messages from SignalR server can be broadcast to
- All clients
- Specific clients
- Grouped clients

Offers fine-grained control over client
reach from SignalR server!

- SignalR applications can scale out to thousands of clients using Service Bus,
SQL Server or Redis
SignalR Platform Support – Server
Side
- Server OS
- Windows Server 2012
- Windows Server 2008 r2
- Windows 8
- Windows 7
- Windows Azure [Does not support Web Sockets yet]

- Server .NET Frameworks
- .NET 4.5
- .NET 4 [Does not support Web Sockets]

- Server IIS Requirements
- IIS 8 or IIS 8 Express [Only ones with Web Socket support]
- IIS 7 and 7.5.
- IIS must be running in integrated mode
- The hosting application must be running in full trust mode

- SignalR applications can be self-hosted in own process outside of IIS using OWIN
(Open Web Interface for .NET) techniques
SignalR Platform Support – Client Side
- Client Browsers
- Microsoft Internet Explorer (IE) versions 8, 9 and 10. Modern, Desktop, and Mobile versions
are supported.
- Mozilla Firefox: current version - 1, both Windows and Mac versions.
- Google Chrome: current version - 1, both Windows and Mac versions.
- Safari: current version - 1, both Mac and iOS versions.
- Opera: current version - 1, Windows only.
- Android browser

- Applications that use SignalR in browsers must use jQuery version 1.6.4 or major later
versions
- Windows Desktop & Silverlight applications
- Applications using .NET 4 are supported on Windows XP SP3 or later.
- Applications using .NET Framework 4.5 are supported on Windows Vista or later.

- Windows Store & Windows Phone applications
Live Demos & Walkthrough
- Client calls server; Server calls client; seamlessly – Whoa!
- No polling, at least in our code

- Low level – PersistentConnection
more control
- Abstraction – Hub
easier to use
like spokes on a wheel, broadcasting
- Server maintains Clients .. Broadcast to all, group or individual clients
- Built-in Retry logic if transport fails
- Supports scaling out to web farms - backplane support through
Service Bus or Redis (in memory DB) to pump messages between
multiple servers
Real-time connectivity for .NET apps
- .NET Mobile clients can be super interactive with SignalR incorporation
- What .NET client apps could add SignalR powered real-time connectivity?
- Console
- Windows Forms & WPF
- Silverlight
- Windows 8 Store Apps
- Windows Phone Apps
- Any other apps running .NET ..

One SignalR NuGet for all .NET
clients

- Think you can bypass the Web entirely?
- Imagine the possibilities for your next .NET app
- Great potential for enterprises
Extending SignalR to other platforms
- SignalR makes a lot of sense for Mobile client apps
- Windows 8 & Windows Phone .NET options are great!
- But, we do not live in a silo
- In fact iOS, Android & Windows will coexist in the mobile space
- Would the other platforms be left high & dry?
- Several options to extend SignalR to other non-MSFT platforms

- Let real-time connectivity shine ..
Telerik AppBuilder

!! Supports SignalR
!!

- Use HTML5/CSS3/JavaScript to build cross-platform apps
- Telerik’s AppBuilder provides unified IDE to publish to iOS & Android Stores
- One code base across all platforms, with VS integration
- Adaptive Kendo UI Mobile controls
- Learn more @ http://www.telerik.com/appbuilder
Xamarin

!! Supports SignalR
!!

- Write cross-platform apps entirely in C# inside Visual Studio
- Compiled into native iOS/Android/Mac applications
- Unified IDE with custom UI for each platform
- Learn more @ http://xamarin.com/
SignalR Client for iOS

http://dyknow.github.com/SignalR-ObjC/
Where does this fit?
- Other technologies have solved this problem

- Socket.IO is a client-side Jscript library that talks to node.js
- Nowjs supports namespace sync between client-server
- Primary SignalR advantages
→ Simplicity & ease of use
→ Works natively in .NET
→ Works out of browser
→ Supports Web Sockets for best transport
[ASP.NET 4.5/IIS 8 on Win8 only]
→ Works on other platforms, specially mobile
Questions?
Thank You!
@samidip

More Related Content

What's hot

Microservices in action: How to actually build them
Microservices in action: How to actually build themMicroservices in action: How to actually build them
Microservices in action: How to actually build them3scale
 
Blowing up the Monolith: Practical Advice on Microservices
Blowing up the Monolith: Practical Advice on MicroservicesBlowing up the Monolith: Practical Advice on Microservices
Blowing up the Monolith: Practical Advice on MicroservicesNordic APIs
 
What's Better than Microservices? Serverless Microservices.
What's Better than Microservices? Serverless Microservices.What's Better than Microservices? Serverless Microservices.
What's Better than Microservices? Serverless Microservices.Apigee | Google Cloud
 
Webcast: API-Centric Architecture for Building Context-Aware Apps
Webcast: API-Centric Architecture for Building Context-Aware AppsWebcast: API-Centric Architecture for Building Context-Aware Apps
Webcast: API-Centric Architecture for Building Context-Aware AppsApigee | Google Cloud
 
Continuous Integration and Delivery at Shapeways (Matt Boyle)
Continuous Integration and Delivery at Shapeways (Matt Boyle)Continuous Integration and Delivery at Shapeways (Matt Boyle)
Continuous Integration and Delivery at Shapeways (Matt Boyle)Nordic APIs
 
Rest api best practices – comprehensive handbook
Rest api best practices – comprehensive handbookRest api best practices – comprehensive handbook
Rest api best practices – comprehensive handbookKaty Slemon
 
APIs Are Just Like LEGO Blocks | APPSeCONNECT
APIs Are Just Like LEGO Blocks | APPSeCONNECTAPIs Are Just Like LEGO Blocks | APPSeCONNECT
APIs Are Just Like LEGO Blocks | APPSeCONNECTAPPSeCONNECT
 
apidays LIVE Paris - The Business of APIs by Jed Ng
apidays LIVE Paris - The Business of APIs by Jed Ngapidays LIVE Paris - The Business of APIs by Jed Ng
apidays LIVE Paris - The Business of APIs by Jed Ngapidays
 
apidays LIVE Jakarta - Better API DX with a CLI by Phil Nash, Twilio
apidays LIVE Jakarta - Better API DX with a CLI by Phil Nash, Twilioapidays LIVE Jakarta - Better API DX with a CLI by Phil Nash, Twilio
apidays LIVE Jakarta - Better API DX with a CLI by Phil Nash, Twilioapidays
 
Achieving Microservices Maturity
Achieving Microservices MaturityAchieving Microservices Maturity
Achieving Microservices MaturityNordic APIs
 
Design-first API Development using Swagger and Node
Design-first API Development using Swagger and NodeDesign-first API Development using Swagger and Node
Design-first API Development using Swagger and NodeApigee | Google Cloud
 
Api gateway
Api gatewayApi gateway
Api gatewayenyert
 
apidays LIVE Australia - Have your cake and eat it too: GraphQL? REST? Why no...
apidays LIVE Australia - Have your cake and eat it too: GraphQL? REST? Why no...apidays LIVE Australia - Have your cake and eat it too: GraphQL? REST? Why no...
apidays LIVE Australia - Have your cake and eat it too: GraphQL? REST? Why no...apidays
 
Adapt or Die: A Microservices Story at Google
Adapt or Die: A Microservices Story at GoogleAdapt or Die: A Microservices Story at Google
Adapt or Die: A Microservices Story at GoogleApigee | Google Cloud
 
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...apidays
 
apidays LIVE Paris - Innovation and rejuvenation combined: a beneficial appro...
apidays LIVE Paris - Innovation and rejuvenation combined: a beneficial appro...apidays LIVE Paris - Innovation and rejuvenation combined: a beneficial appro...
apidays LIVE Paris - Innovation and rejuvenation combined: a beneficial appro...apidays
 
Integrating saa s application using azure services v0.5
Integrating saa s application using azure services v0.5Integrating saa s application using azure services v0.5
Integrating saa s application using azure services v0.5Luca Mauri
 

What's hot (20)

02 api gateway
02 api gateway02 api gateway
02 api gateway
 
Microservices in action: How to actually build them
Microservices in action: How to actually build themMicroservices in action: How to actually build them
Microservices in action: How to actually build them
 
Blowing up the Monolith: Practical Advice on Microservices
Blowing up the Monolith: Practical Advice on MicroservicesBlowing up the Monolith: Practical Advice on Microservices
Blowing up the Monolith: Practical Advice on Microservices
 
API Gateway with legend lambada
API Gateway with legend lambadaAPI Gateway with legend lambada
API Gateway with legend lambada
 
What's Better than Microservices? Serverless Microservices.
What's Better than Microservices? Serverless Microservices.What's Better than Microservices? Serverless Microservices.
What's Better than Microservices? Serverless Microservices.
 
Webcast: API-Centric Architecture for Building Context-Aware Apps
Webcast: API-Centric Architecture for Building Context-Aware AppsWebcast: API-Centric Architecture for Building Context-Aware Apps
Webcast: API-Centric Architecture for Building Context-Aware Apps
 
API Management and Kubernetes
API Management and KubernetesAPI Management and Kubernetes
API Management and Kubernetes
 
Continuous Integration and Delivery at Shapeways (Matt Boyle)
Continuous Integration and Delivery at Shapeways (Matt Boyle)Continuous Integration and Delivery at Shapeways (Matt Boyle)
Continuous Integration and Delivery at Shapeways (Matt Boyle)
 
Rest api best practices – comprehensive handbook
Rest api best practices – comprehensive handbookRest api best practices – comprehensive handbook
Rest api best practices – comprehensive handbook
 
APIs Are Just Like LEGO Blocks | APPSeCONNECT
APIs Are Just Like LEGO Blocks | APPSeCONNECTAPIs Are Just Like LEGO Blocks | APPSeCONNECT
APIs Are Just Like LEGO Blocks | APPSeCONNECT
 
apidays LIVE Paris - The Business of APIs by Jed Ng
apidays LIVE Paris - The Business of APIs by Jed Ngapidays LIVE Paris - The Business of APIs by Jed Ng
apidays LIVE Paris - The Business of APIs by Jed Ng
 
apidays LIVE Jakarta - Better API DX with a CLI by Phil Nash, Twilio
apidays LIVE Jakarta - Better API DX with a CLI by Phil Nash, Twilioapidays LIVE Jakarta - Better API DX with a CLI by Phil Nash, Twilio
apidays LIVE Jakarta - Better API DX with a CLI by Phil Nash, Twilio
 
Achieving Microservices Maturity
Achieving Microservices MaturityAchieving Microservices Maturity
Achieving Microservices Maturity
 
Design-first API Development using Swagger and Node
Design-first API Development using Swagger and NodeDesign-first API Development using Swagger and Node
Design-first API Development using Swagger and Node
 
Api gateway
Api gatewayApi gateway
Api gateway
 
apidays LIVE Australia - Have your cake and eat it too: GraphQL? REST? Why no...
apidays LIVE Australia - Have your cake and eat it too: GraphQL? REST? Why no...apidays LIVE Australia - Have your cake and eat it too: GraphQL? REST? Why no...
apidays LIVE Australia - Have your cake and eat it too: GraphQL? REST? Why no...
 
Adapt or Die: A Microservices Story at Google
Adapt or Die: A Microservices Story at GoogleAdapt or Die: A Microservices Story at Google
Adapt or Die: A Microservices Story at Google
 
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
 
apidays LIVE Paris - Innovation and rejuvenation combined: a beneficial appro...
apidays LIVE Paris - Innovation and rejuvenation combined: a beneficial appro...apidays LIVE Paris - Innovation and rejuvenation combined: a beneficial appro...
apidays LIVE Paris - Innovation and rejuvenation combined: a beneficial appro...
 
Integrating saa s application using azure services v0.5
Integrating saa s application using azure services v0.5Integrating saa s application using azure services v0.5
Integrating saa s application using azure services v0.5
 

Similar to SignalR Powered X-Platform Real-Time Apps!

SignalR powered real-time x-plat mobile apps!
SignalR powered real-time x-plat mobile apps!SignalR powered real-time x-plat mobile apps!
SignalR powered real-time x-plat mobile apps!Sam Basu
 
SignalR Intro + WPDev integration @ Codetock
SignalR Intro + WPDev integration @ CodetockSignalR Intro + WPDev integration @ Codetock
SignalR Intro + WPDev integration @ CodetockSam Basu
 
SignalR Intro + WPDev
SignalR Intro + WPDevSignalR Intro + WPDev
SignalR Intro + WPDevSam Basu
 
SignalR + Mobile Possibilities
SignalR + Mobile PossibilitiesSignalR + Mobile Possibilities
SignalR + Mobile PossibilitiesSam Basu
 
Asynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.js
Asynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.jsAsynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.js
Asynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.jsChristian Heindel
 
Real Time Web with SignalR
Real Time Web with SignalRReal Time Web with SignalR
Real Time Web with SignalRBilal Amjad
 
Realtime mobile&iot solutions using mqtt and message sight
Realtime mobile&iot solutions using mqtt and message sightRealtime mobile&iot solutions using mqtt and message sight
Realtime mobile&iot solutions using mqtt and message sightfloridawusergroup
 
MicroEJ software solution for IoT and embedded devices
MicroEJ software solution for IoT and embedded devicesMicroEJ software solution for IoT and embedded devices
MicroEJ software solution for IoT and embedded devicesMicroEJ
 
Busy Bee Application Develompent Platform
Busy Bee Application Develompent PlatformBusy Bee Application Develompent Platform
Busy Bee Application Develompent PlatformUtkarsh Shukla
 
Client Server Development – Problems in Supporting Different Wireless Platform
Client Server Development – Problems in Supporting Different Wireless PlatformClient Server Development – Problems in Supporting Different Wireless Platform
Client Server Development – Problems in Supporting Different Wireless Platformgustavoeliano
 
WebSphere Liberty Rtcomm: WebRTC Middleware for the Enterprise
WebSphere Liberty Rtcomm: WebRTC Middleware for the EnterpriseWebSphere Liberty Rtcomm: WebRTC Middleware for the Enterprise
WebSphere Liberty Rtcomm: WebRTC Middleware for the EnterpriseBrian Pulito
 
Introduction to SignalR
Introduction to SignalRIntroduction to SignalR
Introduction to SignalRAdam Mokan
 
RefCard API Architecture Strategy
RefCard API Architecture StrategyRefCard API Architecture Strategy
RefCard API Architecture StrategyOCTO Technology
 
IoT with SignalR & .NET Gadgeteer - NetMF@Work
IoT with SignalR & .NET Gadgeteer - NetMF@WorkIoT with SignalR & .NET Gadgeteer - NetMF@Work
IoT with SignalR & .NET Gadgeteer - NetMF@WorkMirco Vanini
 
Microsoft signal r
Microsoft signal rMicrosoft signal r
Microsoft signal rrustd
 
Uit Presentation of IN/NGIN for Cosmote 2010
Uit Presentation of IN/NGIN for  Cosmote  2010Uit Presentation of IN/NGIN for  Cosmote  2010
Uit Presentation of IN/NGIN for Cosmote 2010michael_mountrakis
 
z Technical Summit Track 3 Session 4 Developing mobilefirst app for z
z Technical Summit Track 3 Session 4 Developing mobilefirst app for zz Technical Summit Track 3 Session 4 Developing mobilefirst app for z
z Technical Summit Track 3 Session 4 Developing mobilefirst app for znick_garrod
 

Similar to SignalR Powered X-Platform Real-Time Apps! (20)

SignalR powered real-time x-plat mobile apps!
SignalR powered real-time x-plat mobile apps!SignalR powered real-time x-plat mobile apps!
SignalR powered real-time x-plat mobile apps!
 
SignalR Intro + WPDev integration @ Codetock
SignalR Intro + WPDev integration @ CodetockSignalR Intro + WPDev integration @ Codetock
SignalR Intro + WPDev integration @ Codetock
 
SignalR Intro + WPDev
SignalR Intro + WPDevSignalR Intro + WPDev
SignalR Intro + WPDev
 
SignalR + Mobile Possibilities
SignalR + Mobile PossibilitiesSignalR + Mobile Possibilities
SignalR + Mobile Possibilities
 
Asynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.js
Asynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.jsAsynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.js
Asynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.js
 
Real Time Web with SignalR
Real Time Web with SignalRReal Time Web with SignalR
Real Time Web with SignalR
 
Realtime mobile&iot solutions using mqtt and message sight
Realtime mobile&iot solutions using mqtt and message sightRealtime mobile&iot solutions using mqtt and message sight
Realtime mobile&iot solutions using mqtt and message sight
 
Signal R 2015
Signal R 2015Signal R 2015
Signal R 2015
 
MicroEJ software solution for IoT and embedded devices
MicroEJ software solution for IoT and embedded devicesMicroEJ software solution for IoT and embedded devices
MicroEJ software solution for IoT and embedded devices
 
Busy Bee Application Develompent Platform
Busy Bee Application Develompent PlatformBusy Bee Application Develompent Platform
Busy Bee Application Develompent Platform
 
Client Server Development – Problems in Supporting Different Wireless Platform
Client Server Development – Problems in Supporting Different Wireless PlatformClient Server Development – Problems in Supporting Different Wireless Platform
Client Server Development – Problems in Supporting Different Wireless Platform
 
WebSphere Liberty Rtcomm: WebRTC Middleware for the Enterprise
WebSphere Liberty Rtcomm: WebRTC Middleware for the EnterpriseWebSphere Liberty Rtcomm: WebRTC Middleware for the Enterprise
WebSphere Liberty Rtcomm: WebRTC Middleware for the Enterprise
 
Introduction to SignalR
Introduction to SignalRIntroduction to SignalR
Introduction to SignalR
 
RefCard API Architecture Strategy
RefCard API Architecture StrategyRefCard API Architecture Strategy
RefCard API Architecture Strategy
 
Detailed-Resume-Rebai-Hamida
Detailed-Resume-Rebai-HamidaDetailed-Resume-Rebai-Hamida
Detailed-Resume-Rebai-Hamida
 
IoT with SignalR & .NET Gadgeteer - NetMF@Work
IoT with SignalR & .NET Gadgeteer - NetMF@WorkIoT with SignalR & .NET Gadgeteer - NetMF@Work
IoT with SignalR & .NET Gadgeteer - NetMF@Work
 
Microsoft signal r
Microsoft signal rMicrosoft signal r
Microsoft signal r
 
Uit Presentation of IN/NGIN for Cosmote 2010
Uit Presentation of IN/NGIN for  Cosmote  2010Uit Presentation of IN/NGIN for  Cosmote  2010
Uit Presentation of IN/NGIN for Cosmote 2010
 
z Technical Summit Track 3 Session 4 Developing mobilefirst app for z
z Technical Summit Track 3 Session 4 Developing mobilefirst app for zz Technical Summit Track 3 Session 4 Developing mobilefirst app for z
z Technical Summit Track 3 Session 4 Developing mobilefirst app for z
 
SignalR Overview
SignalR OverviewSignalR Overview
SignalR Overview
 

More from Sam Basu

Surfing in Maui
Surfing in MauiSurfing in Maui
Surfing in MauiSam Basu
 
Modern Cross-Platform Dev with .NET 6
Modern Cross-Platform Dev with .NET 6Modern Cross-Platform Dev with .NET 6
Modern Cross-Platform Dev with .NET 6Sam Basu
 
Conversational Bots
Conversational BotsConversational Bots
Conversational BotsSam Basu
 
Real Time Apps with SignalR Core
Real Time Apps with SignalR CoreReal Time Apps with SignalR Core
Real Time Apps with SignalR CoreSam Basu
 
State of Mobile Development
State of Mobile DevelopmentState of Mobile Development
State of Mobile DevelopmentSam Basu
 
.NET Today & Tomorrow @ Beer City Code
.NET Today & Tomorrow @ Beer City Code.NET Today & Tomorrow @ Beer City Code
.NET Today & Tomorrow @ Beer City CodeSam Basu
 
Essential Tools for Xamarin Developers
Essential Tools for Xamarin DevelopersEssential Tools for Xamarin Developers
Essential Tools for Xamarin DevelopersSam Basu
 
Modern Web Tour
Modern Web TourModern Web Tour
Modern Web TourSam Basu
 
Flying High with Xamarin!
Flying High with Xamarin!Flying High with Xamarin!
Flying High with Xamarin!Sam Basu
 
Xamarin Roadshow
Xamarin RoadshowXamarin Roadshow
Xamarin RoadshowSam Basu
 
Flying High with Xamarin
Flying High with XamarinFlying High with Xamarin
Flying High with XamarinSam Basu
 
ASP.NET Tech Stack talk @ Houston TechFest
ASP.NET Tech Stack talk @ Houston TechFestASP.NET Tech Stack talk @ Houston TechFest
ASP.NET Tech Stack talk @ Houston TechFestSam Basu
 
Lap Around ASPNet Core - PGHDotNet
Lap Around ASPNet Core - PGHDotNetLap Around ASPNet Core - PGHDotNet
Lap Around ASPNet Core - PGHDotNetSam Basu
 
Lap Around ASPNet Core - HDC
Lap Around ASPNet Core - HDCLap Around ASPNet Core - HDC
Lap Around ASPNet Core - HDCSam Basu
 
Free Your On-Premises Data
Free Your On-Premises DataFree Your On-Premises Data
Free Your On-Premises DataSam Basu
 
Lap around ASP.NET 5 - Dayton UG
Lap around ASP.NET 5 - Dayton UGLap around ASP.NET 5 - Dayton UG
Lap around ASP.NET 5 - Dayton UGSam Basu
 
A Lap around ASP.NET 5 - VConf
A Lap around ASP.NET 5 - VConfA Lap around ASP.NET 5 - VConf
A Lap around ASP.NET 5 - VConfSam Basu
 
A Lap around ASP.NET 5 - CONDG
A Lap around ASP.NET 5 - CONDGA Lap around ASP.NET 5 - CONDG
A Lap around ASP.NET 5 - CONDGSam Basu
 
Modern .NET Apps - TelerikNext
Modern .NET Apps - TelerikNextModern .NET Apps - TelerikNext
Modern .NET Apps - TelerikNextSam Basu
 
Modern .NET Apps - Codestock
Modern .NET Apps - CodestockModern .NET Apps - Codestock
Modern .NET Apps - CodestockSam Basu
 

More from Sam Basu (20)

Surfing in Maui
Surfing in MauiSurfing in Maui
Surfing in Maui
 
Modern Cross-Platform Dev with .NET 6
Modern Cross-Platform Dev with .NET 6Modern Cross-Platform Dev with .NET 6
Modern Cross-Platform Dev with .NET 6
 
Conversational Bots
Conversational BotsConversational Bots
Conversational Bots
 
Real Time Apps with SignalR Core
Real Time Apps with SignalR CoreReal Time Apps with SignalR Core
Real Time Apps with SignalR Core
 
State of Mobile Development
State of Mobile DevelopmentState of Mobile Development
State of Mobile Development
 
.NET Today & Tomorrow @ Beer City Code
.NET Today & Tomorrow @ Beer City Code.NET Today & Tomorrow @ Beer City Code
.NET Today & Tomorrow @ Beer City Code
 
Essential Tools for Xamarin Developers
Essential Tools for Xamarin DevelopersEssential Tools for Xamarin Developers
Essential Tools for Xamarin Developers
 
Modern Web Tour
Modern Web TourModern Web Tour
Modern Web Tour
 
Flying High with Xamarin!
Flying High with Xamarin!Flying High with Xamarin!
Flying High with Xamarin!
 
Xamarin Roadshow
Xamarin RoadshowXamarin Roadshow
Xamarin Roadshow
 
Flying High with Xamarin
Flying High with XamarinFlying High with Xamarin
Flying High with Xamarin
 
ASP.NET Tech Stack talk @ Houston TechFest
ASP.NET Tech Stack talk @ Houston TechFestASP.NET Tech Stack talk @ Houston TechFest
ASP.NET Tech Stack talk @ Houston TechFest
 
Lap Around ASPNet Core - PGHDotNet
Lap Around ASPNet Core - PGHDotNetLap Around ASPNet Core - PGHDotNet
Lap Around ASPNet Core - PGHDotNet
 
Lap Around ASPNet Core - HDC
Lap Around ASPNet Core - HDCLap Around ASPNet Core - HDC
Lap Around ASPNet Core - HDC
 
Free Your On-Premises Data
Free Your On-Premises DataFree Your On-Premises Data
Free Your On-Premises Data
 
Lap around ASP.NET 5 - Dayton UG
Lap around ASP.NET 5 - Dayton UGLap around ASP.NET 5 - Dayton UG
Lap around ASP.NET 5 - Dayton UG
 
A Lap around ASP.NET 5 - VConf
A Lap around ASP.NET 5 - VConfA Lap around ASP.NET 5 - VConf
A Lap around ASP.NET 5 - VConf
 
A Lap around ASP.NET 5 - CONDG
A Lap around ASP.NET 5 - CONDGA Lap around ASP.NET 5 - CONDG
A Lap around ASP.NET 5 - CONDG
 
Modern .NET Apps - TelerikNext
Modern .NET Apps - TelerikNextModern .NET Apps - TelerikNext
Modern .NET Apps - TelerikNext
 
Modern .NET Apps - Codestock
Modern .NET Apps - CodestockModern .NET Apps - Codestock
Modern .NET Apps - Codestock
 

Recently uploaded

So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Fact vs. Fiction: Autodetecting Hallucinations in LLMs
Fact vs. Fiction: Autodetecting Hallucinations in LLMsFact vs. Fiction: Autodetecting Hallucinations in LLMs
Fact vs. Fiction: Autodetecting Hallucinations in LLMsZilliz
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Fact vs. Fiction: Autodetecting Hallucinations in LLMs
Fact vs. Fiction: Autodetecting Hallucinations in LLMsFact vs. Fiction: Autodetecting Hallucinations in LLMs
Fact vs. Fiction: Autodetecting Hallucinations in LLMs
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

SignalR Powered X-Platform Real-Time Apps!

  • 2. SignalR-Powered X-Platform Real-Time Apps! Samidip Basu Microsoft MVP, MS, MCPD, CAPM Senior Technical Trainer | Telerik Inc. | www.telerik.com E: Sam.Basu@Telerik.com | L: x3179 | C: 507 244 0579 T: @samidip | W: http://samidipbasu.com
  • 3.
  • 4.
  • 5. Why do we need real-time? - New email - Twitter/Facebook updates - Stock Ticker/Live Auctions - Game Scores - Real-time Notifications - Turn-by-Turn or Shooter Games - Collaboration - Progress Bars - And obviously, Chat No dearth of examples where real-time communication in needed ..
  • 6. Challenges - Building real-time applications is difficult - Transcends boundaries of choice in development platforms - Part of the problem is HTTP – Request/Response protocol HTTP = HyperText Transfer Protocol | Obviously works, but has limitations! - Statelessness of web applications  Need open transport channel between server and clients for bidirectional or full-duplex communication.
  • 7. Existing Technologies Periodic/Ajax Polling Image courtesy @maartenballiauw Downsides: • Not real-time • Potential big bandwidth misuse!
  • 8. Existing Technologies .. Contd. Long Polling – server does not respond unless X happens, client polls after data receive or time-out Image courtesy @maartenballiauw Downsides: • Needs orchestration • Custom code on either end
  • 9. Existing Technologies .. Others - Use plugins like Silverlight/Flash – to communicate through sockets - Forever Frame (execute script blocks from server in iFrame) - Server sent Events (Push or Stream from server) - Native HTML 5 Web Sockets (Magic Unicorn world) – true bidirectional transport channel; but support can be flaky Bottom-line: • Lots of options in existing technologies to build real-time applications • Not perfect; choose what you need Wish list: • Wouldn’t it be nice if someone took care of the network transport layer? • Would you not want to focus on just your application?
  • 10. Enter SignalR An async, persistent connection/signalling library for .NET over HTTP ... aids in building real time, multi-user connected applications. Persistent client-server connection over best transport .. Abstracts away the transport layer. From ASP.NET team-members (Damian Edwards & David Fowler) .. Not officially MSFT product, but OSS Boom!  https://github.com/SignalR/SignalR http://jabbr.net/#/rooms/signal http://shootr.signalr.net/ SignalR is broken up into a few packages on NuGet: SignalR - Package for SignalR.Server and SignalR.Js SignalR.Server - Server components needed for SignalR endpoints SignalR.Js - Javascript client for SignalR SignalR.Client - .NET client for SignalR SignalR.WP7, SignalR.WinRT, SignalR.Silverlight – For the cool folks  SignalR.WebSockets - WebSocket Transport for SignalR
  • 11. What is SignalR? - SignalR is an asynchronous persistent connection/signaling library for ASP.NET applications - SignalR makes it easy to build real-time multi-user connected applications - SignalR abstracts away the network layer for bidirectional real-time communications, thus helping you focus on building your application - SignalR includes broad platform support & features a rich API set for aiding client-server communications SignalR is quite awesome!
  • 12. History & Examples - Both members of Microsoft’s One ASP.NET team - SignalR had humble beginnings as a side project - Started as Open Source Software (OSS) - Matured enough over past couple of years David Fowler - Now officially part of Microsoft ASP.NET stack (Yay)! - Still continues to be open-source @ https://github.com/SignalR/SignalR Damian Edwards - SignalR powered IRC Chat application: https://jabbr.net/ - SignalR powered real-time game: http://shootr.signalr.net/
  • 13. How it works - SignalR allows bidirectional communication between client & server over persistent connections - SignalR provides simple APIs for Remote Procedure Calls (RPC) between client & server - Transport mechanisms are chosen to best fit given client & server environments - SignalR manages the network layer for your application, unless you want control
  • 14. Abstraction of Network Transport! How it works .. Contd. Image courtesy Microsoft The first time you see SignalR in action .. “Your brain should have exploded & leaked out of your ears ..” – Scott Hanselman
  • 15. SignalR Internals - SignalR abstracts bidirectional communication between client & server over persistent connections - The choice of network transport relies on available client & server environments. Applications may also specify transport layer. - Order of network transports selected by SignalR: - Web Sockets Best transport, but with most stringent - Server Sent Events requirements! - Forever Frame - Long Polling - Ajax Polling - Best part – SignalR has automatic fallbacks built-in!
  • 16. SignalR API Stack - SignalR offers consistent interface on top of network technologies - Developer gets to choose the level of abstraction of network layer - SignalR API stack offers two modes for controlling the real-time communication between client & server: - Hubs - High level abstraction - Built on top of Persistent Connections - Least developer work - Works for majority of uses - Will be familiar to developers who have used remote invocation APIs such as .NET Remoting - Persistent Connections - Low level access to communication - Direct developer access to network pipeline - Access to lot more communication events - Will be familiar to developers who have used connection-based APIs such as WCF
  • 17. More SignalR APIs - Specifying network technology if client/server capabilities are known in advance; saves the hand-shaking time for SignalR connectivity - Monitor network transport/traffic by turning on logging on the server - List of clients connected to SignalR server is maintained in-memory on server; developers may choose to persist based on application needs - Connection Management - Connect/Disconnect events - Grouping Connections - Authorization Needed for chatrooms  - Messages from SignalR server can be broadcast to - All clients - Specific clients - Grouped clients Offers fine-grained control over client reach from SignalR server! - SignalR applications can scale out to thousands of clients using Service Bus, SQL Server or Redis
  • 18. SignalR Platform Support – Server Side - Server OS - Windows Server 2012 - Windows Server 2008 r2 - Windows 8 - Windows 7 - Windows Azure [Does not support Web Sockets yet] - Server .NET Frameworks - .NET 4.5 - .NET 4 [Does not support Web Sockets] - Server IIS Requirements - IIS 8 or IIS 8 Express [Only ones with Web Socket support] - IIS 7 and 7.5. - IIS must be running in integrated mode - The hosting application must be running in full trust mode - SignalR applications can be self-hosted in own process outside of IIS using OWIN (Open Web Interface for .NET) techniques
  • 19. SignalR Platform Support – Client Side - Client Browsers - Microsoft Internet Explorer (IE) versions 8, 9 and 10. Modern, Desktop, and Mobile versions are supported. - Mozilla Firefox: current version - 1, both Windows and Mac versions. - Google Chrome: current version - 1, both Windows and Mac versions. - Safari: current version - 1, both Mac and iOS versions. - Opera: current version - 1, Windows only. - Android browser - Applications that use SignalR in browsers must use jQuery version 1.6.4 or major later versions - Windows Desktop & Silverlight applications - Applications using .NET 4 are supported on Windows XP SP3 or later. - Applications using .NET Framework 4.5 are supported on Windows Vista or later. - Windows Store & Windows Phone applications
  • 20. Live Demos & Walkthrough - Client calls server; Server calls client; seamlessly – Whoa! - No polling, at least in our code - Low level – PersistentConnection more control - Abstraction – Hub easier to use like spokes on a wheel, broadcasting - Server maintains Clients .. Broadcast to all, group or individual clients - Built-in Retry logic if transport fails - Supports scaling out to web farms - backplane support through Service Bus or Redis (in memory DB) to pump messages between multiple servers
  • 21. Real-time connectivity for .NET apps - .NET Mobile clients can be super interactive with SignalR incorporation - What .NET client apps could add SignalR powered real-time connectivity? - Console - Windows Forms & WPF - Silverlight - Windows 8 Store Apps - Windows Phone Apps - Any other apps running .NET .. One SignalR NuGet for all .NET clients - Think you can bypass the Web entirely? - Imagine the possibilities for your next .NET app - Great potential for enterprises
  • 22. Extending SignalR to other platforms - SignalR makes a lot of sense for Mobile client apps - Windows 8 & Windows Phone .NET options are great! - But, we do not live in a silo - In fact iOS, Android & Windows will coexist in the mobile space - Would the other platforms be left high & dry? - Several options to extend SignalR to other non-MSFT platforms - Let real-time connectivity shine ..
  • 23. Telerik AppBuilder !! Supports SignalR !! - Use HTML5/CSS3/JavaScript to build cross-platform apps - Telerik’s AppBuilder provides unified IDE to publish to iOS & Android Stores - One code base across all platforms, with VS integration - Adaptive Kendo UI Mobile controls - Learn more @ http://www.telerik.com/appbuilder
  • 24. Xamarin !! Supports SignalR !! - Write cross-platform apps entirely in C# inside Visual Studio - Compiled into native iOS/Android/Mac applications - Unified IDE with custom UI for each platform - Learn more @ http://xamarin.com/
  • 25. SignalR Client for iOS http://dyknow.github.com/SignalR-ObjC/
  • 26. Where does this fit? - Other technologies have solved this problem - Socket.IO is a client-side Jscript library that talks to node.js - Nowjs supports namespace sync between client-server - Primary SignalR advantages → Simplicity & ease of use → Works natively in .NET → Works out of browser → Supports Web Sockets for best transport [ASP.NET 4.5/IIS 8 on Win8 only] → Works on other platforms, specially mobile