SlideShare a Scribd company logo
1 of 27
SignalR powered X-Plat Real-Time Mobile Apps!
Samidip Basu Microsoft MVP, MS, MCPD, CAPM
Developer Advocate | Telerik Inc. | www.telerik.com
E: Sam.Basu@Telerik.com | L: x3179 | C: 507 244 0579
T: @samidip | W: http://samidipbasu.com
Part I:
 Real-Time with SignalR
 Web & .NET
Part II:
 Cross-Platform Hybrid Mobile Apps
 Strategies & Tools
 iOS/Android apps with Telerik AppBuilder
 Pointers on Xamarin
We have just an hour?
 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 ..
Why do we need real-time?
 Building real-time applications is difficult
 Transcends boundaries of choice in development platforms
 Part of the problem is HTTP – Request/Response protocol
 Statelessness of web applications
 Need open transport channel between server and clients
for bidirectional or full-duplex communication.
HTTP = HyperText Transfer Protocol | Obviously works, but has limitations!
Challenges
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?
 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! 
 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 – integrated now
SignalR.WebSockets - WebSocket Transport for SignalR
Enter 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
David Fowler
Damian
Edwards
o Both members of Microsoft’s One ASP.NET team
o SignalR had humble beginnings as a side project
o Started as Open Source Software (OSS)
o Matured enough over past couple of years
o Now officially part of Microsoft ASP.NET stack
(Yay)!
o Still continues to be open-source @
https://github.com/SignalR/SignalR
o SignalR powered IRC Chat application:
https://jabbr.net/
o 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
How it works .. Contd.
Image courtesy Microsoft
AbstractionofNetworkTransport!
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
- Server Sent Events
- Forever Frame
- Long Polling
- Ajax Polling
 Best part – SignalR has automatic fallbacks built-in!
Best transport, but with most stringent requirements!
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
 Messages from SignalR server can be broadcast to
- All clients
- Specific clients
- Grouped clients
 SignalR applications can scale out to thousands of clients using Service Bus,
SQL Server or Redis
Offers fine-grained control over client reach
from SignalR server!
Needed for chatrooms 
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
• Client calls server; Server calls client; seamlessly – Whoa!
• No polling, at least in our code
• Low level – Persistent Connection | More control
• Abstraction – Hub | Easier to use | Like spokes on a wheel
• Server maintains Clients .. Broadcast to all, group or
individual clients
• Built-in Retry logic if transport fails
Live Demos & Walkthrough
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 ..
 Think you can bypass the Web entirely?
 Imagine the possibilities for your next .NET app
 Great potential for enterprises
One SignalR NuGet for all .NET clients!
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 ..
State of Mobile
Conservatives:
 We’ll just make the web
 Mobile Web still lowest hanging fruit; lots of help with RWD
Liberals:
 Mobile apps should only be native
 Swear by their PC/Macs. Have cold hard cash or indie
Bipartisans:
 Avoid extremes. Technologists. Love Xbox & their families.
 Love C# & managed code comfort
 Accepts JavaScript as assembly language of the web
Telerik AppBuilder
 Use HTML5/CSS3/JavaScript to build cross-platform apps; built on top of Cordova!
 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
!! Supports SignalR !!
Xamarin
- 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/
!! Supports SignalR !!
o Other technologies have solved this problem
o Socket.IO is a client-side Jscript library that talks to
node.js
o Nowjs supports namespace sync between client-server
o 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
Where does this fit?
Questions?
Thank You!
@samidip

More Related Content

What's hot

Whats New in IBM Integration Bus Interconnect 2017
Whats New in IBM Integration Bus Interconnect 2017Whats New in IBM Integration Bus Interconnect 2017
Whats New in IBM Integration Bus Interconnect 2017bthomps1979
 
Java micro-services
Java micro-servicesJava micro-services
Java micro-servicesJames Lewis
 
ASP.NET Core 3.0 Deep Dive
ASP.NET Core 3.0 Deep DiveASP.NET Core 3.0 Deep Dive
ASP.NET Core 3.0 Deep DiveJon Galloway
 
Mastering Chaos - A Netflix Guide to Microservices
Mastering Chaos - A Netflix Guide to MicroservicesMastering Chaos - A Netflix Guide to Microservices
Mastering Chaos - A Netflix Guide to MicroservicesJosh Evans
 
Connecting Applications Everywhere with ActiveMQ
Connecting Applications Everywhere with ActiveMQConnecting Applications Everywhere with ActiveMQ
Connecting Applications Everywhere with ActiveMQRob Davies
 
Application Rollout - Istio
Application Rollout - Istio Application Rollout - Istio
Application Rollout - Istio Mandar Jog
 
IBM Integration Bus and REST APIs - Sanjay Nagchowdhury
IBM Integration Bus and REST APIs - Sanjay NagchowdhuryIBM Integration Bus and REST APIs - Sanjay Nagchowdhury
IBM Integration Bus and REST APIs - Sanjay NagchowdhuryKaren Broughton-Mabbitt
 
Microservices in GO lang
Microservices in GO langMicroservices in GO lang
Microservices in GO langSHAKIL AKHTAR
 
RESTful web APIs (build, document, manage)
RESTful web APIs (build, document, manage)RESTful web APIs (build, document, manage)
RESTful web APIs (build, document, manage)Cisco DevNet
 
Messaging For the Cloud and Microservices
Messaging For the Cloud and MicroservicesMessaging For the Cloud and Microservices
Messaging For the Cloud and MicroservicesRob Davies
 
Microservice Pattern Launguage
Microservice Pattern LaunguageMicroservice Pattern Launguage
Microservice Pattern LaunguageInho Kang
 
What's new in Visual Studio for Mac for .NET Developers
What's new in Visual Studio for Mac for .NET DevelopersWhat's new in Visual Studio for Mac for .NET Developers
What's new in Visual Studio for Mac for .NET DevelopersJon Galloway
 
Stop reinventing the wheel with Istio by Mete Atamel (Google)
Stop reinventing the wheel with Istio by Mete Atamel (Google)Stop reinventing the wheel with Istio by Mete Atamel (Google)
Stop reinventing the wheel with Istio by Mete Atamel (Google)Codemotion
 
Scaling MQTT With Apache Kafka
Scaling MQTT With Apache KafkaScaling MQTT With Apache Kafka
Scaling MQTT With Apache Kafkakellogh
 
Service Discovery with Consul
Service Discovery with ConsulService Discovery with Consul
Service Discovery with ConsulAli Demirsoy
 
REST and Microservices
REST and MicroservicesREST and Microservices
REST and MicroservicesShaun Abram
 
NIC - Hybrid Cloud with NVGRE - Level 400
NIC - Hybrid Cloud with NVGRE - Level 400NIC - Hybrid Cloud with NVGRE - Level 400
NIC - Hybrid Cloud with NVGRE - Level 400Kristian Nese
 

What's hot (20)

Whats New in IBM Integration Bus Interconnect 2017
Whats New in IBM Integration Bus Interconnect 2017Whats New in IBM Integration Bus Interconnect 2017
Whats New in IBM Integration Bus Interconnect 2017
 
Java micro-services
Java micro-servicesJava micro-services
Java micro-services
 
SignalR
SignalRSignalR
SignalR
 
ASP.NET Core 3.0 Deep Dive
ASP.NET Core 3.0 Deep DiveASP.NET Core 3.0 Deep Dive
ASP.NET Core 3.0 Deep Dive
 
Mastering Chaos - A Netflix Guide to Microservices
Mastering Chaos - A Netflix Guide to MicroservicesMastering Chaos - A Netflix Guide to Microservices
Mastering Chaos - A Netflix Guide to Microservices
 
Connecting Applications Everywhere with ActiveMQ
Connecting Applications Everywhere with ActiveMQConnecting Applications Everywhere with ActiveMQ
Connecting Applications Everywhere with ActiveMQ
 
Application Rollout - Istio
Application Rollout - Istio Application Rollout - Istio
Application Rollout - Istio
 
IBM Integration Bus and REST APIs - Sanjay Nagchowdhury
IBM Integration Bus and REST APIs - Sanjay NagchowdhuryIBM Integration Bus and REST APIs - Sanjay Nagchowdhury
IBM Integration Bus and REST APIs - Sanjay Nagchowdhury
 
Microservices in GO lang
Microservices in GO langMicroservices in GO lang
Microservices in GO lang
 
RESTful web APIs (build, document, manage)
RESTful web APIs (build, document, manage)RESTful web APIs (build, document, manage)
RESTful web APIs (build, document, manage)
 
Messaging For the Cloud and Microservices
Messaging For the Cloud and MicroservicesMessaging For the Cloud and Microservices
Messaging For the Cloud and Microservices
 
Microservice Pattern Launguage
Microservice Pattern LaunguageMicroservice Pattern Launguage
Microservice Pattern Launguage
 
What's new in Visual Studio for Mac for .NET Developers
What's new in Visual Studio for Mac for .NET DevelopersWhat's new in Visual Studio for Mac for .NET Developers
What's new in Visual Studio for Mac for .NET Developers
 
Stop reinventing the wheel with Istio by Mete Atamel (Google)
Stop reinventing the wheel with Istio by Mete Atamel (Google)Stop reinventing the wheel with Istio by Mete Atamel (Google)
Stop reinventing the wheel with Istio by Mete Atamel (Google)
 
Microservices
MicroservicesMicroservices
Microservices
 
Scaling MQTT With Apache Kafka
Scaling MQTT With Apache KafkaScaling MQTT With Apache Kafka
Scaling MQTT With Apache Kafka
 
Service Discovery with Consul
Service Discovery with ConsulService Discovery with Consul
Service Discovery with Consul
 
REST and Microservices
REST and MicroservicesREST and Microservices
REST and Microservices
 
Dapr logicapps
Dapr logicappsDapr logicapps
Dapr logicapps
 
NIC - Hybrid Cloud with NVGRE - Level 400
NIC - Hybrid Cloud with NVGRE - Level 400NIC - Hybrid Cloud with NVGRE - Level 400
NIC - Hybrid Cloud with NVGRE - Level 400
 

Viewers also liked

DataMapper @ RubyEnRails2009
DataMapper @ RubyEnRails2009DataMapper @ RubyEnRails2009
DataMapper @ RubyEnRails2009Dirkjan Bussink
 
Zappos - Startup2Startup - 03-26-09
Zappos  - Startup2Startup - 03-26-09Zappos  - Startup2Startup - 03-26-09
Zappos - Startup2Startup - 03-26-09zappos
 
Zappos - Ragan - 3-12-09
Zappos - Ragan - 3-12-09Zappos - Ragan - 3-12-09
Zappos - Ragan - 3-12-09zappos
 
Continuous Monitoring Webinar Aviva Spectrum
Continuous Monitoring Webinar Aviva SpectrumContinuous Monitoring Webinar Aviva Spectrum
Continuous Monitoring Webinar Aviva SpectrumAviva Spectrum™
 
Symfony2 and MongoDB
Symfony2 and MongoDBSymfony2 and MongoDB
Symfony2 and MongoDBPablo Godel
 
Poultry industry in China 2014
Poultry industry in China 2014Poultry industry in China 2014
Poultry industry in China 2014Harm Kiezebrink
 

Viewers also liked (6)

DataMapper @ RubyEnRails2009
DataMapper @ RubyEnRails2009DataMapper @ RubyEnRails2009
DataMapper @ RubyEnRails2009
 
Zappos - Startup2Startup - 03-26-09
Zappos  - Startup2Startup - 03-26-09Zappos  - Startup2Startup - 03-26-09
Zappos - Startup2Startup - 03-26-09
 
Zappos - Ragan - 3-12-09
Zappos - Ragan - 3-12-09Zappos - Ragan - 3-12-09
Zappos - Ragan - 3-12-09
 
Continuous Monitoring Webinar Aviva Spectrum
Continuous Monitoring Webinar Aviva SpectrumContinuous Monitoring Webinar Aviva Spectrum
Continuous Monitoring Webinar Aviva Spectrum
 
Symfony2 and MongoDB
Symfony2 and MongoDBSymfony2 and MongoDB
Symfony2 and MongoDB
 
Poultry industry in China 2014
Poultry industry in China 2014Poultry industry in China 2014
Poultry industry in China 2014
 

Similar to SignalR powered real-time x-plat mobile apps!

SignalR Powered X-Platform Real-Time Apps!
SignalR Powered X-Platform Real-Time Apps!SignalR Powered X-Platform Real-Time Apps!
SignalR Powered X-Platform Real-Time 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
 
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
 
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
 
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
 
Open web device as the reference feature phone
Open web device as the reference feature phoneOpen web device as the reference feature phone
Open web device as the reference feature phoneMiguel Schneider
 
Introduction to SignalR
Introduction to SignalRIntroduction to SignalR
Introduction to SignalRAdam Mokan
 
Real Time Web with SignalR
Real Time Web with SignalRReal Time Web with SignalR
Real Time Web with SignalRBilal Amjad
 
Webinar WebRTC HTML5 (english)
Webinar WebRTC HTML5 (english)Webinar WebRTC HTML5 (english)
Webinar WebRTC HTML5 (english)Quobis
 
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
 
SuperConnectivity: One company’s heroic mission to deliver on the promises of...
SuperConnectivity: One company’s heroic mission to deliver on the promises of...SuperConnectivity: One company’s heroic mission to deliver on the promises of...
SuperConnectivity: One company’s heroic mission to deliver on the promises of...4DK Technologies, Inc.
 
Sarah CV 2016 External
Sarah CV 2016 ExternalSarah CV 2016 External
Sarah CV 2016 ExternalSarah Thomas
 
IBM Mobile portal experience
IBM Mobile portal experienceIBM Mobile portal experience
IBM Mobile portal experienceVincent Perrin
 
Web e device in real time con asp.net Signal R
Web e device in real time con asp.net Signal RWeb e device in real time con asp.net Signal R
Web e device in real time con asp.net Signal RLuca Zulian
 

Similar to SignalR powered real-time x-plat mobile apps! (20)

SignalR Powered X-Platform Real-Time Apps!
SignalR Powered X-Platform Real-Time Apps!SignalR Powered X-Platform Real-Time Apps!
SignalR Powered X-Platform Real-Time 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
 
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
 
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
 
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
 
Open web device as the reference feature phone
Open web device as the reference feature phoneOpen web device as the reference feature phone
Open web device as the reference feature phone
 
Introduction to SignalR
Introduction to SignalRIntroduction to SignalR
Introduction to SignalR
 
Real Time Web with SignalR
Real Time Web with SignalRReal Time Web with SignalR
Real Time Web with SignalR
 
Signal R 2015
Signal R 2015Signal R 2015
Signal R 2015
 
Webinar WebRTC HTML5 (english)
Webinar WebRTC HTML5 (english)Webinar WebRTC HTML5 (english)
Webinar WebRTC HTML5 (english)
 
Voice browser
Voice browserVoice browser
Voice browser
 
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
 
SuperConnectivity: One company’s heroic mission to deliver on the promises of...
SuperConnectivity: One company’s heroic mission to deliver on the promises of...SuperConnectivity: One company’s heroic mission to deliver on the promises of...
SuperConnectivity: One company’s heroic mission to deliver on the promises of...
 
Sarah CV 2016 External
Sarah CV 2016 ExternalSarah CV 2016 External
Sarah CV 2016 External
 
IBM Mobile portal experience
IBM Mobile portal experienceIBM Mobile portal experience
IBM Mobile portal experience
 
VozDigital DevFest 31/10/14
VozDigital DevFest 31/10/14VozDigital DevFest 31/10/14
VozDigital DevFest 31/10/14
 
Web e device in real time con asp.net Signal R
Web e device in real time con asp.net Signal RWeb e device in real time con asp.net Signal R
Web e device in real time con asp.net Signal R
 

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

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
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
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
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
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 

Recently uploaded (20)

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
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
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.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
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 

SignalR powered real-time x-plat mobile apps!

  • 1. SignalR powered X-Plat Real-Time Mobile Apps! Samidip Basu Microsoft MVP, MS, MCPD, CAPM Developer Advocate | Telerik Inc. | www.telerik.com E: Sam.Basu@Telerik.com | L: x3179 | C: 507 244 0579 T: @samidip | W: http://samidipbasu.com
  • 2.
  • 3.
  • 4. Part I:  Real-Time with SignalR  Web & .NET Part II:  Cross-Platform Hybrid Mobile Apps  Strategies & Tools  iOS/Android apps with Telerik AppBuilder  Pointers on Xamarin We have just an hour?
  • 5.  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 .. Why do we need real-time?
  • 6.  Building real-time applications is difficult  Transcends boundaries of choice in development platforms  Part of the problem is HTTP – Request/Response protocol  Statelessness of web applications  Need open transport channel between server and clients for bidirectional or full-duplex communication. HTTP = HyperText Transfer Protocol | Obviously works, but has limitations! Challenges
  • 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.  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!   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 – integrated now SignalR.WebSockets - WebSocket Transport for SignalR Enter 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 David Fowler Damian Edwards o Both members of Microsoft’s One ASP.NET team o SignalR had humble beginnings as a side project o Started as Open Source Software (OSS) o Matured enough over past couple of years o Now officially part of Microsoft ASP.NET stack (Yay)! o Still continues to be open-source @ https://github.com/SignalR/SignalR o SignalR powered IRC Chat application: https://jabbr.net/ o 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. How it works .. Contd. Image courtesy Microsoft AbstractionofNetworkTransport! 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 - Server Sent Events - Forever Frame - Long Polling - Ajax Polling  Best part – SignalR has automatic fallbacks built-in! Best transport, but with most stringent requirements!
  • 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  Messages from SignalR server can be broadcast to - All clients - Specific clients - Grouped clients  SignalR applications can scale out to thousands of clients using Service Bus, SQL Server or Redis Offers fine-grained control over client reach from SignalR server! Needed for chatrooms 
  • 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. • Client calls server; Server calls client; seamlessly – Whoa! • No polling, at least in our code • Low level – Persistent Connection | More control • Abstraction – Hub | Easier to use | Like spokes on a wheel • Server maintains Clients .. Broadcast to all, group or individual clients • Built-in Retry logic if transport fails Live Demos & Walkthrough
  • 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 ..  Think you can bypass the Web entirely?  Imagine the possibilities for your next .NET app  Great potential for enterprises One SignalR NuGet for all .NET clients!
  • 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. State of Mobile Conservatives:  We’ll just make the web  Mobile Web still lowest hanging fruit; lots of help with RWD Liberals:  Mobile apps should only be native  Swear by their PC/Macs. Have cold hard cash or indie Bipartisans:  Avoid extremes. Technologists. Love Xbox & their families.  Love C# & managed code comfort  Accepts JavaScript as assembly language of the web
  • 24. Telerik AppBuilder  Use HTML5/CSS3/JavaScript to build cross-platform apps; built on top of Cordova!  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 !! Supports SignalR !!
  • 25. Xamarin - 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/ !! Supports SignalR !!
  • 26. o Other technologies have solved this problem o Socket.IO is a client-side Jscript library that talks to node.js o Nowjs supports namespace sync between client-server o 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 Where does this fit?