SlideShare a Scribd company logo
SignalR and ASP.NET
                           Welcome to the Real-Time Web




Tuesday, March 26, 13
Who am I?
  I am a Microsoft Certified Solution Developer and I’ve
  been developing software since 1979. Since 2009, I have
  been focused on developing mobile applications, for 
  iPhone, Android, the mobile web, and Windows Phone 7.




Tuesday, March 26, 13
Free mobile tutorials with source
                        code @ therockncoder.blogspot.com




Tuesday, March 26, 13
Want more? Follow me, new tutorials are
                    announced on Twitter first:
                         @therockncoder




Tuesday, March 26, 13
Source code for my tutorials hosted on
                                        GitHub @
                            https://github.com/Rockncoder




Tuesday, March 26, 13
Check out my videos:
                 www.youtube.com/rockncoder




Tuesday, March 26, 13
Our Agenda
                    • A Brief History of the Web
                    • What is ASP.NET SignalR?
                    • Under the Hood
                    • Building DIRTy Apps
                    • Debugging
                    • Handling Success
Tuesday, March 26, 13
A Brief History of Web

                    • 1990’s - The Static Web
                    • 2000’s - The Age of Ajax
                    • 2010’s - The Real-Time Web


Tuesday, March 26, 13
1990’s - The Static Web

                    • HTML versions 2.0 - 4.01
                     • (There never was a version 1.0)
                    • Request/Response


Tuesday, March 26, 13
2000’s - The Age of Ajax

                    • XMLHttpRequest object
                    • Prototype
                    • jQuery


Tuesday, March 26, 13
2010’s - The Real-Time
                             Web

                    • Comet
                    • WebSocket
                    • Real-Time Libraries


Tuesday, March 26, 13
Comet
                    • Holding open an HTTP connection via a
                        variety of techniques like...
                        • Hidden IFrame
                        • Periodic Polling
                        • Long Polling
                        • Lots of Plumbing
Tuesday, March 26, 13
What is SPDY?

                    • An open network protocol
                    • Developed by Google
                    • Goal is to reduce page load time
                    • Does not replace HTTP
                    • Modifies HTTP for performance

Tuesday, March 26, 13
WebSocket

                    • Full-duplex communication over a single
                        TCP connection
                    • Port 80 or 443
                    • A low level protocol
                    • Great, but no backwards compatibility

Tuesday, March 26, 13
Real-Time Libraries

                    • Cramp
                    • django-sse
                    • sse
                    • Socket.io/Now.js
                    • SignalR

Tuesday, March 26, 13
What is ASP.NET
                               SignalR?

                            ASP.NET SignalR is a new library for
                        ASP.NET developers that makes it incredibly
                        simple to add real-time web functionality to
                                     your applications.




Tuesday, March 26, 13
ASP.NET SignalR
                    • Create as an open source project by two
                        Microsoft employees: David Fowler &
                        Damien Edwards
                    • Adopted by Microsoft, but remains open
                        source - source is on GitHub
                    • Like jQuery for communications
                    • Distributed via NuGet
Tuesday, March 26, 13
Under the Hood

                    • WebSockets
                    • Server Sent Events, Event Source
                    • Forever Frame (IE only)
                    • Ajax long polling
                    • Only WebSockets is true full duplex

Tuesday, March 26, 13
Installing SignalR

                    • The project exists on GitHub but
                    • NuGet is the best way to install it
                     • Install Microsoft ASP.NET SignalR


Tuesday, March 26, 13
What’s in the Package?

                    • SignalR Core - Server side stuff
                    • SignalR JS - JavaScript library
                    • SignalR Owin - An OWIN adapter
                    • SignalR SystemWeb - To host on IIS

Tuesday, March 26, 13
Other Packages
                    • SignalR Client - .NET client
                    • SignalR Sample - A fake stock ticker
                    • LCSK - Live chat app
                    • SignalR.EventStream - Monitor your site
                    • ElmahR.Elmah - ELMAH
                    • and lots more
Tuesday, March 26, 13
What is OWIN?
                    • Open Web Interface for .NET
                    • A specification for the communication
                        between .NET Web Server and Web App
                    • IIS isn’t the only .NET Web Server, there is
                        HttpListener, server.dll, Kayak, and
                        potentially others
                    • SignalR depends on OWIN for hosting
Tuesday, March 26, 13
What’s It Good For?
                    • dashboards
                    • monitoring
                    • collaborative anything
                    • job progress
                    • real-time forms
                    • gaming...
Tuesday, March 26, 13
http://shootr.signalr.net



Tuesday, March 26, 13
https://jabbr.net



Tuesday, March 26, 13
Building DIRTy Apps

                    • Data Intensive Real-Time(y) Apps
                    • Two main classes:
                     • PersistentConnections
                     • Hubs

Tuesday, March 26, 13
Connections

                    • The raw connection in SignalR
                    • Can connect with 1 - n clients
                    • Is an IHTTP handler
                    • Requires route to be defined
                    • Limited to sending message

Tuesday, March 26, 13
Connection Demo



Tuesday, March 26, 13
Hubs

                    • Built on top of PersistentConnection
                    • Can connect with 1 - n clients
                    • Routes automatically mapped
                    • Can send messages and call methods
                    • SignalR defines the protocol

Tuesday, March 26, 13
Hub Demo



Tuesday, March 26, 13
Debugging


                    • With Chrome
                    • With Fiddler


Tuesday, March 26, 13
Clients
                    • JavaScript (as a jQuery plugin)
                    • .NET 4.0/4.5
                    • Silverlight 5
                    • Windows Store Apps
                    • iOS (community)
                    • MonoTouch (community)
Tuesday, March 26, 13
Clients
                    • Windows Phone 8
                    • MonoTouch (official)
                    • MonoDroid (official)
                    • iOS (official)
                    • .NET Micro Framework
                    • Java
Tuesday, March 26, 13
Handling Success

                    • Scale-out via the backplane
                    • Azure ServiceBus
                    • Redis
                    • SQL Server

Tuesday, March 26, 13
Gotchas

                    • Documentation is limited
                    • Documentation may be out of date
                    • But finally a released product!


Tuesday, March 26, 13
Resources

                    • http://signalr.net/
                    • https://jabbr.net
                    • https://github.com/SignalR/SignalR/wiki
                    • http://www.asp.net/signalr/overview/getting-
                        started/tutorial-getting-started-with-signalr



Tuesday, March 26, 13
Summary


                        ASP.NET SignalR makes it incredibly easy to
                        add real-time capabilities to your web app.




Tuesday, March 26, 13

More Related Content

What's hot

Introduction to SignalR
Introduction to SignalRIntroduction to SignalR
Introduction to SignalR
Adam Mokan
 
SignalR with asp.net
SignalR with asp.netSignalR with asp.net
SignalR with asp.net
Martin Bodocky
 
Building Realtime Web Applications With ASP.NET SignalR
Building Realtime Web Applications With ASP.NET SignalRBuilding Realtime Web Applications With ASP.NET SignalR
Building Realtime Web Applications With ASP.NET SignalRShravan Kumar Kasagoni
 
Intro to signalR
Intro to signalRIntro to signalR
Intro to signalR
Mindfire Solutions
 
Building Real Time Web Applications with SignalR (NoVA Code Camp 2015)
Building Real Time Web Applications with SignalR (NoVA Code Camp 2015)Building Real Time Web Applications with SignalR (NoVA Code Camp 2015)
Building Real Time Web Applications with SignalR (NoVA Code Camp 2015)
Kevin Griffin
 
SignalR Overview
SignalR OverviewSignalR Overview
SignalR Overview
Michael Sukachev
 
Real time Communication with Signalr (Android Client)
Real time Communication with Signalr (Android Client)Real time Communication with Signalr (Android Client)
Real time Communication with Signalr (Android Client)Deepak Gupta
 
Signal R 2015
Signal R 2015Signal R 2015
Signal R 2015
Mihai Coscodan
 
Real-time Communications with SignalR
Real-time Communications with SignalRReal-time Communications with SignalR
Real-time Communications with SignalR
Shravan Kumar Kasagoni
 
Signalr with ASP.Net part2
Signalr with ASP.Net part2Signalr with ASP.Net part2
Signalr with ASP.Net part2
Esraa Ammar
 
Scale your signalR realtime web application
Scale your signalR realtime web applicationScale your signalR realtime web application
Scale your signalR realtime web application
Ran Wahle
 
SignalR
SignalRSignalR
SignalR
Eyal Vardi
 
Microsoft signal r
Microsoft signal rMicrosoft signal r
Microsoft signal rrustd
 
SignalR. Code, not toothpaste - TechDays Belgium 2012
SignalR. Code, not toothpaste - TechDays Belgium 2012SignalR. Code, not toothpaste - TechDays Belgium 2012
SignalR. Code, not toothpaste - TechDays Belgium 2012Maarten Balliauw
 
Real time web applications with SignalR (BNE .NET UG)
Real time web applications with SignalR (BNE .NET UG)Real time web applications with SignalR (BNE .NET UG)
Real time web applications with SignalR (BNE .NET UG)
brendankowitz
 
Real time websites and mobile apps with SignalR
Real time websites and mobile apps with SignalRReal time websites and mobile apps with SignalR
Real time websites and mobile apps with SignalR
Roy Cornelissen
 
Web Real-time Communications
Web Real-time CommunicationsWeb Real-time Communications
Web Real-time Communications
Alexei Skachykhin
 
Debugging Microservices - key challenges and techniques - Microservices Odesa...
Debugging Microservices - key challenges and techniques - Microservices Odesa...Debugging Microservices - key challenges and techniques - Microservices Odesa...
Debugging Microservices - key challenges and techniques - Microservices Odesa...
Lohika_Odessa_TechTalks
 
Eclipse Kapua messaging refactoring proposal
Eclipse Kapua messaging refactoring proposalEclipse Kapua messaging refactoring proposal
Eclipse Kapua messaging refactoring proposal
Henryk Konsek
 

What's hot (20)

Introduction to SignalR
Introduction to SignalRIntroduction to SignalR
Introduction to SignalR
 
Real-time ASP.NET with SignalR
Real-time ASP.NET with SignalRReal-time ASP.NET with SignalR
Real-time ASP.NET with SignalR
 
SignalR with asp.net
SignalR with asp.netSignalR with asp.net
SignalR with asp.net
 
Building Realtime Web Applications With ASP.NET SignalR
Building Realtime Web Applications With ASP.NET SignalRBuilding Realtime Web Applications With ASP.NET SignalR
Building Realtime Web Applications With ASP.NET SignalR
 
Intro to signalR
Intro to signalRIntro to signalR
Intro to signalR
 
Building Real Time Web Applications with SignalR (NoVA Code Camp 2015)
Building Real Time Web Applications with SignalR (NoVA Code Camp 2015)Building Real Time Web Applications with SignalR (NoVA Code Camp 2015)
Building Real Time Web Applications with SignalR (NoVA Code Camp 2015)
 
SignalR Overview
SignalR OverviewSignalR Overview
SignalR Overview
 
Real time Communication with Signalr (Android Client)
Real time Communication with Signalr (Android Client)Real time Communication with Signalr (Android Client)
Real time Communication with Signalr (Android Client)
 
Signal R 2015
Signal R 2015Signal R 2015
Signal R 2015
 
Real-time Communications with SignalR
Real-time Communications with SignalRReal-time Communications with SignalR
Real-time Communications with SignalR
 
Signalr with ASP.Net part2
Signalr with ASP.Net part2Signalr with ASP.Net part2
Signalr with ASP.Net part2
 
Scale your signalR realtime web application
Scale your signalR realtime web applicationScale your signalR realtime web application
Scale your signalR realtime web application
 
SignalR
SignalRSignalR
SignalR
 
Microsoft signal r
Microsoft signal rMicrosoft signal r
Microsoft signal r
 
SignalR. Code, not toothpaste - TechDays Belgium 2012
SignalR. Code, not toothpaste - TechDays Belgium 2012SignalR. Code, not toothpaste - TechDays Belgium 2012
SignalR. Code, not toothpaste - TechDays Belgium 2012
 
Real time web applications with SignalR (BNE .NET UG)
Real time web applications with SignalR (BNE .NET UG)Real time web applications with SignalR (BNE .NET UG)
Real time web applications with SignalR (BNE .NET UG)
 
Real time websites and mobile apps with SignalR
Real time websites and mobile apps with SignalRReal time websites and mobile apps with SignalR
Real time websites and mobile apps with SignalR
 
Web Real-time Communications
Web Real-time CommunicationsWeb Real-time Communications
Web Real-time Communications
 
Debugging Microservices - key challenges and techniques - Microservices Odesa...
Debugging Microservices - key challenges and techniques - Microservices Odesa...Debugging Microservices - key challenges and techniques - Microservices Odesa...
Debugging Microservices - key challenges and techniques - Microservices Odesa...
 
Eclipse Kapua messaging refactoring proposal
Eclipse Kapua messaging refactoring proposalEclipse Kapua messaging refactoring proposal
Eclipse Kapua messaging refactoring proposal
 

Viewers also liked

Microsoft WebApi & SignalR
Microsoft WebApi & SignalRMicrosoft WebApi & SignalR
Microsoft WebApi & SignalR
Robin Sedlaczek
 
ELEIÇÕES 2012 - ASTORGA: Toninho 31123
 ELEIÇÕES 2012 - ASTORGA: Toninho 31123 ELEIÇÕES 2012 - ASTORGA: Toninho 31123
ELEIÇÕES 2012 - ASTORGA: Toninho 31123Joao Carlos Passari
 
Asp Net Advance Topics
Asp Net Advance TopicsAsp Net Advance Topics
Asp Net Advance TopicsAli Taki
 
Startups Getting Started
Startups Getting StartedStartups Getting Started
Startups Getting Started
Jeremiah Gardner
 
7. signal r aspdotnet-mvc5-slides
7. signal r aspdotnet-mvc5-slides7. signal r aspdotnet-mvc5-slides
7. signal r aspdotnet-mvc5-slides
MasterCode.vn
 
Anatomy of a Modern Node.js Application Architecture
Anatomy of a Modern Node.js Application Architecture Anatomy of a Modern Node.js Application Architecture
Anatomy of a Modern Node.js Application Architecture
AppDynamics
 
Ppt on World Of Smartphones
Ppt on World Of SmartphonesPpt on World Of Smartphones
Ppt on World Of Smartphones
Pulkit Syal
 
Social Media Marketing For Business
Social Media Marketing For BusinessSocial Media Marketing For Business
Social Media Marketing For Business
Jeff Bullas
 

Viewers also liked (10)

SignalR
SignalRSignalR
SignalR
 
Microsoft WebApi & SignalR
Microsoft WebApi & SignalRMicrosoft WebApi & SignalR
Microsoft WebApi & SignalR
 
ELEIÇÕES 2012 - ASTORGA: Toninho 31123
 ELEIÇÕES 2012 - ASTORGA: Toninho 31123 ELEIÇÕES 2012 - ASTORGA: Toninho 31123
ELEIÇÕES 2012 - ASTORGA: Toninho 31123
 
Asp Net Advance Topics
Asp Net Advance TopicsAsp Net Advance Topics
Asp Net Advance Topics
 
Startups Getting Started
Startups Getting StartedStartups Getting Started
Startups Getting Started
 
7. signal r aspdotnet-mvc5-slides
7. signal r aspdotnet-mvc5-slides7. signal r aspdotnet-mvc5-slides
7. signal r aspdotnet-mvc5-slides
 
Anatomy of a Modern Node.js Application Architecture
Anatomy of a Modern Node.js Application Architecture Anatomy of a Modern Node.js Application Architecture
Anatomy of a Modern Node.js Application Architecture
 
Ppt on World Of Smartphones
Ppt on World Of SmartphonesPpt on World Of Smartphones
Ppt on World Of Smartphones
 
Presentation social network
Presentation social networkPresentation social network
Presentation social network
 
Social Media Marketing For Business
Social Media Marketing For BusinessSocial Media Marketing For Business
Social Media Marketing For Business
 

Similar to SignalR

Getting Started with Meteor
Getting Started with MeteorGetting Started with Meteor
Getting Started with Meteor
Michael Redlich
 
Getting Started with Meteor (TCF ITPC 2014)
Getting Started with Meteor (TCF ITPC 2014)Getting Started with Meteor (TCF ITPC 2014)
Getting Started with Meteor (TCF ITPC 2014)
Michael Redlich
 
Cross-platform tools for mobile application development
Cross-platform tools for mobile application developmentCross-platform tools for mobile application development
Cross-platform tools for mobile application development
bertouttier
 
jQuery Mobile, Backbone.js, and ASP.NET MVC
jQuery Mobile, Backbone.js, and ASP.NET MVCjQuery Mobile, Backbone.js, and ASP.NET MVC
jQuery Mobile, Backbone.js, and ASP.NET MVC
Troy Miles
 
Apereo OAE - Architectural overview
Apereo OAE - Architectural overviewApereo OAE - Architectural overview
Apereo OAE - Architectural overview
Nicolaas Matthijs
 
DevNexus 2013 - Introduction to WebSockets
DevNexus 2013 - Introduction to WebSocketsDevNexus 2013 - Introduction to WebSockets
DevNexus 2013 - Introduction to WebSockets
Gunnar Hillert
 
Ora mysql bothGetting the best of both worlds with Oracle 11g and MySQL Enter...
Ora mysql bothGetting the best of both worlds with Oracle 11g and MySQL Enter...Ora mysql bothGetting the best of both worlds with Oracle 11g and MySQL Enter...
Ora mysql bothGetting the best of both worlds with Oracle 11g and MySQL Enter...Ivan Zoratti
 
201311 - Middleware
201311 - Middleware201311 - Middleware
201311 - Middleware
lyonjug
 
Atlanta JUG - Integrating Spring Batch and Spring Integration
Atlanta JUG - Integrating Spring Batch and Spring IntegrationAtlanta JUG - Integrating Spring Batch and Spring Integration
Atlanta JUG - Integrating Spring Batch and Spring Integration
Gunnar Hillert
 
Ractor's speed is not light-speed
Ractor's speed is not light-speedRactor's speed is not light-speed
Ractor's speed is not light-speed
SATOSHI TAGOMORI
 
OpenNebulaConf 2013 -Adventures in Research by Joel Merrick
OpenNebulaConf 2013 -Adventures in Research by Joel Merrick OpenNebulaConf 2013 -Adventures in Research by Joel Merrick
OpenNebulaConf 2013 -Adventures in Research by Joel Merrick
OpenNebula Project
 
Adventures in Research
Adventures in ResearchAdventures in Research
Adventures in Research
NETWAYS
 
Groovy & Grails eXchange 2012 - Building an e-commerce business with gr8 tec...
Groovy & Grails eXchange 2012 - Building an  e-commerce business with gr8 tec...Groovy & Grails eXchange 2012 - Building an  e-commerce business with gr8 tec...
Groovy & Grails eXchange 2012 - Building an e-commerce business with gr8 tec...
Domingo Suarez Torres
 
Application Server-less Web Applications - Serverless Toronto Meetup Intro
Application Server-less Web Applications - Serverless Toronto Meetup IntroApplication Server-less Web Applications - Serverless Toronto Meetup Intro
Application Server-less Web Applications - Serverless Toronto Meetup Intro
Daniel Zivkovic
 
Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech People
IT Arena
 
Jrubykaigi 2010
Jrubykaigi 2010Jrubykaigi 2010
Jrubykaigi 2010
John Woodell
 
Stackato v2
Stackato v2Stackato v2
Stackato v2
Jonas Brømsø
 
Development with Vert.x: an event-driven application framework for the JVM
Development with Vert.x: an event-driven application framework for the JVMDevelopment with Vert.x: an event-driven application framework for the JVM
Development with Vert.x: an event-driven application framework for the JVM
David Wu
 
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
Christian Heindel
 
Desarrollo movil multiplataforma
Desarrollo movil multiplataformaDesarrollo movil multiplataforma
Desarrollo movil multiplataforma
Lennon Shimokawa
 

Similar to SignalR (20)

Getting Started with Meteor
Getting Started with MeteorGetting Started with Meteor
Getting Started with Meteor
 
Getting Started with Meteor (TCF ITPC 2014)
Getting Started with Meteor (TCF ITPC 2014)Getting Started with Meteor (TCF ITPC 2014)
Getting Started with Meteor (TCF ITPC 2014)
 
Cross-platform tools for mobile application development
Cross-platform tools for mobile application developmentCross-platform tools for mobile application development
Cross-platform tools for mobile application development
 
jQuery Mobile, Backbone.js, and ASP.NET MVC
jQuery Mobile, Backbone.js, and ASP.NET MVCjQuery Mobile, Backbone.js, and ASP.NET MVC
jQuery Mobile, Backbone.js, and ASP.NET MVC
 
Apereo OAE - Architectural overview
Apereo OAE - Architectural overviewApereo OAE - Architectural overview
Apereo OAE - Architectural overview
 
DevNexus 2013 - Introduction to WebSockets
DevNexus 2013 - Introduction to WebSocketsDevNexus 2013 - Introduction to WebSockets
DevNexus 2013 - Introduction to WebSockets
 
Ora mysql bothGetting the best of both worlds with Oracle 11g and MySQL Enter...
Ora mysql bothGetting the best of both worlds with Oracle 11g and MySQL Enter...Ora mysql bothGetting the best of both worlds with Oracle 11g and MySQL Enter...
Ora mysql bothGetting the best of both worlds with Oracle 11g and MySQL Enter...
 
201311 - Middleware
201311 - Middleware201311 - Middleware
201311 - Middleware
 
Atlanta JUG - Integrating Spring Batch and Spring Integration
Atlanta JUG - Integrating Spring Batch and Spring IntegrationAtlanta JUG - Integrating Spring Batch and Spring Integration
Atlanta JUG - Integrating Spring Batch and Spring Integration
 
Ractor's speed is not light-speed
Ractor's speed is not light-speedRactor's speed is not light-speed
Ractor's speed is not light-speed
 
OpenNebulaConf 2013 -Adventures in Research by Joel Merrick
OpenNebulaConf 2013 -Adventures in Research by Joel Merrick OpenNebulaConf 2013 -Adventures in Research by Joel Merrick
OpenNebulaConf 2013 -Adventures in Research by Joel Merrick
 
Adventures in Research
Adventures in ResearchAdventures in Research
Adventures in Research
 
Groovy & Grails eXchange 2012 - Building an e-commerce business with gr8 tec...
Groovy & Grails eXchange 2012 - Building an  e-commerce business with gr8 tec...Groovy & Grails eXchange 2012 - Building an  e-commerce business with gr8 tec...
Groovy & Grails eXchange 2012 - Building an e-commerce business with gr8 tec...
 
Application Server-less Web Applications - Serverless Toronto Meetup Intro
Application Server-less Web Applications - Serverless Toronto Meetup IntroApplication Server-less Web Applications - Serverless Toronto Meetup Intro
Application Server-less Web Applications - Serverless Toronto Meetup Intro
 
Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech People
 
Jrubykaigi 2010
Jrubykaigi 2010Jrubykaigi 2010
Jrubykaigi 2010
 
Stackato v2
Stackato v2Stackato v2
Stackato v2
 
Development with Vert.x: an event-driven application framework for the JVM
Development with Vert.x: an event-driven application framework for the JVMDevelopment with Vert.x: an event-driven application framework for the JVM
Development with Vert.x: an event-driven application framework for the JVM
 
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
 
Desarrollo movil multiplataforma
Desarrollo movil multiplataformaDesarrollo movil multiplataforma
Desarrollo movil multiplataforma
 

More from Troy Miles

Fast C++ Web Servers
Fast C++ Web ServersFast C++ Web Servers
Fast C++ Web Servers
Troy Miles
 
Node Boot Camp
Node Boot CampNode Boot Camp
Node Boot Camp
Troy Miles
 
AWS Lambda Function with Kotlin
AWS Lambda Function with KotlinAWS Lambda Function with Kotlin
AWS Lambda Function with Kotlin
Troy Miles
 
React Native One Day
React Native One DayReact Native One Day
React Native One Day
Troy Miles
 
React Native Evening
React Native EveningReact Native Evening
React Native Evening
Troy Miles
 
Intro to React
Intro to ReactIntro to React
Intro to React
Troy Miles
 
React Development with the MERN Stack
React Development with the MERN StackReact Development with the MERN Stack
React Development with the MERN Stack
Troy Miles
 
Angular Application Testing
Angular Application TestingAngular Application Testing
Angular Application Testing
Troy Miles
 
ReactJS.NET
ReactJS.NETReactJS.NET
ReactJS.NET
Troy Miles
 
What is Angular version 4?
What is Angular version 4?What is Angular version 4?
What is Angular version 4?
Troy Miles
 
Angular Weekend
Angular WeekendAngular Weekend
Angular Weekend
Troy Miles
 
From MEAN to the MERN Stack
From MEAN to the MERN StackFrom MEAN to the MERN Stack
From MEAN to the MERN Stack
Troy Miles
 
Functional Programming in JavaScript
Functional Programming in JavaScriptFunctional Programming in JavaScript
Functional Programming in JavaScript
Troy Miles
 
Functional Programming in Clojure
Functional Programming in ClojureFunctional Programming in Clojure
Functional Programming in Clojure
Troy Miles
 
MEAN Stack Warm-up
MEAN Stack Warm-upMEAN Stack Warm-up
MEAN Stack Warm-up
Troy Miles
 
The JavaScript You Wished You Knew
The JavaScript You Wished You KnewThe JavaScript You Wished You Knew
The JavaScript You Wished You Knew
Troy Miles
 
Game Design and Development Workshop Day 1
Game Design and Development Workshop Day 1Game Design and Development Workshop Day 1
Game Design and Development Workshop Day 1
Troy Miles
 
Build a Game in 60 minutes
Build a Game in 60 minutesBuild a Game in 60 minutes
Build a Game in 60 minutes
Troy Miles
 
Quick & Dirty & MEAN
Quick & Dirty & MEANQuick & Dirty & MEAN
Quick & Dirty & MEAN
Troy Miles
 
A Quick Intro to ReactiveX
A Quick Intro to ReactiveXA Quick Intro to ReactiveX
A Quick Intro to ReactiveX
Troy Miles
 

More from Troy Miles (20)

Fast C++ Web Servers
Fast C++ Web ServersFast C++ Web Servers
Fast C++ Web Servers
 
Node Boot Camp
Node Boot CampNode Boot Camp
Node Boot Camp
 
AWS Lambda Function with Kotlin
AWS Lambda Function with KotlinAWS Lambda Function with Kotlin
AWS Lambda Function with Kotlin
 
React Native One Day
React Native One DayReact Native One Day
React Native One Day
 
React Native Evening
React Native EveningReact Native Evening
React Native Evening
 
Intro to React
Intro to ReactIntro to React
Intro to React
 
React Development with the MERN Stack
React Development with the MERN StackReact Development with the MERN Stack
React Development with the MERN Stack
 
Angular Application Testing
Angular Application TestingAngular Application Testing
Angular Application Testing
 
ReactJS.NET
ReactJS.NETReactJS.NET
ReactJS.NET
 
What is Angular version 4?
What is Angular version 4?What is Angular version 4?
What is Angular version 4?
 
Angular Weekend
Angular WeekendAngular Weekend
Angular Weekend
 
From MEAN to the MERN Stack
From MEAN to the MERN StackFrom MEAN to the MERN Stack
From MEAN to the MERN Stack
 
Functional Programming in JavaScript
Functional Programming in JavaScriptFunctional Programming in JavaScript
Functional Programming in JavaScript
 
Functional Programming in Clojure
Functional Programming in ClojureFunctional Programming in Clojure
Functional Programming in Clojure
 
MEAN Stack Warm-up
MEAN Stack Warm-upMEAN Stack Warm-up
MEAN Stack Warm-up
 
The JavaScript You Wished You Knew
The JavaScript You Wished You KnewThe JavaScript You Wished You Knew
The JavaScript You Wished You Knew
 
Game Design and Development Workshop Day 1
Game Design and Development Workshop Day 1Game Design and Development Workshop Day 1
Game Design and Development Workshop Day 1
 
Build a Game in 60 minutes
Build a Game in 60 minutesBuild a Game in 60 minutes
Build a Game in 60 minutes
 
Quick & Dirty & MEAN
Quick & Dirty & MEANQuick & Dirty & MEAN
Quick & Dirty & MEAN
 
A Quick Intro to ReactiveX
A Quick Intro to ReactiveXA Quick Intro to ReactiveX
A Quick Intro to ReactiveX
 

Recently uploaded

ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 

Recently uploaded (20)

ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 

SignalR

  • 1. SignalR and ASP.NET Welcome to the Real-Time Web Tuesday, March 26, 13
  • 2. Who am I? I am a Microsoft Certified Solution Developer and I’ve been developing software since 1979. Since 2009, I have been focused on developing mobile applications, for  iPhone, Android, the mobile web, and Windows Phone 7. Tuesday, March 26, 13
  • 3. Free mobile tutorials with source code @ therockncoder.blogspot.com Tuesday, March 26, 13
  • 4. Want more? Follow me, new tutorials are announced on Twitter first: @therockncoder Tuesday, March 26, 13
  • 5. Source code for my tutorials hosted on GitHub @ https://github.com/Rockncoder Tuesday, March 26, 13
  • 6. Check out my videos: www.youtube.com/rockncoder Tuesday, March 26, 13
  • 7. Our Agenda • A Brief History of the Web • What is ASP.NET SignalR? • Under the Hood • Building DIRTy Apps • Debugging • Handling Success Tuesday, March 26, 13
  • 8. A Brief History of Web • 1990’s - The Static Web • 2000’s - The Age of Ajax • 2010’s - The Real-Time Web Tuesday, March 26, 13
  • 9. 1990’s - The Static Web • HTML versions 2.0 - 4.01 • (There never was a version 1.0) • Request/Response Tuesday, March 26, 13
  • 10. 2000’s - The Age of Ajax • XMLHttpRequest object • Prototype • jQuery Tuesday, March 26, 13
  • 11. 2010’s - The Real-Time Web • Comet • WebSocket • Real-Time Libraries Tuesday, March 26, 13
  • 12. Comet • Holding open an HTTP connection via a variety of techniques like... • Hidden IFrame • Periodic Polling • Long Polling • Lots of Plumbing Tuesday, March 26, 13
  • 13. What is SPDY? • An open network protocol • Developed by Google • Goal is to reduce page load time • Does not replace HTTP • Modifies HTTP for performance Tuesday, March 26, 13
  • 14. WebSocket • Full-duplex communication over a single TCP connection • Port 80 or 443 • A low level protocol • Great, but no backwards compatibility Tuesday, March 26, 13
  • 15. Real-Time Libraries • Cramp • django-sse • sse • Socket.io/Now.js • SignalR Tuesday, March 26, 13
  • 16. What is ASP.NET SignalR? ASP.NET SignalR is a new library for ASP.NET developers that makes it incredibly simple to add real-time web functionality to your applications. Tuesday, March 26, 13
  • 17. ASP.NET SignalR • Create as an open source project by two Microsoft employees: David Fowler & Damien Edwards • Adopted by Microsoft, but remains open source - source is on GitHub • Like jQuery for communications • Distributed via NuGet Tuesday, March 26, 13
  • 18. Under the Hood • WebSockets • Server Sent Events, Event Source • Forever Frame (IE only) • Ajax long polling • Only WebSockets is true full duplex Tuesday, March 26, 13
  • 19. Installing SignalR • The project exists on GitHub but • NuGet is the best way to install it • Install Microsoft ASP.NET SignalR Tuesday, March 26, 13
  • 20. What’s in the Package? • SignalR Core - Server side stuff • SignalR JS - JavaScript library • SignalR Owin - An OWIN adapter • SignalR SystemWeb - To host on IIS Tuesday, March 26, 13
  • 21. Other Packages • SignalR Client - .NET client • SignalR Sample - A fake stock ticker • LCSK - Live chat app • SignalR.EventStream - Monitor your site • ElmahR.Elmah - ELMAH • and lots more Tuesday, March 26, 13
  • 22. What is OWIN? • Open Web Interface for .NET • A specification for the communication between .NET Web Server and Web App • IIS isn’t the only .NET Web Server, there is HttpListener, server.dll, Kayak, and potentially others • SignalR depends on OWIN for hosting Tuesday, March 26, 13
  • 23. What’s It Good For? • dashboards • monitoring • collaborative anything • job progress • real-time forms • gaming... Tuesday, March 26, 13
  • 26. Building DIRTy Apps • Data Intensive Real-Time(y) Apps • Two main classes: • PersistentConnections • Hubs Tuesday, March 26, 13
  • 27. Connections • The raw connection in SignalR • Can connect with 1 - n clients • Is an IHTTP handler • Requires route to be defined • Limited to sending message Tuesday, March 26, 13
  • 29. Hubs • Built on top of PersistentConnection • Can connect with 1 - n clients • Routes automatically mapped • Can send messages and call methods • SignalR defines the protocol Tuesday, March 26, 13
  • 31. Debugging • With Chrome • With Fiddler Tuesday, March 26, 13
  • 32. Clients • JavaScript (as a jQuery plugin) • .NET 4.0/4.5 • Silverlight 5 • Windows Store Apps • iOS (community) • MonoTouch (community) Tuesday, March 26, 13
  • 33. Clients • Windows Phone 8 • MonoTouch (official) • MonoDroid (official) • iOS (official) • .NET Micro Framework • Java Tuesday, March 26, 13
  • 34. Handling Success • Scale-out via the backplane • Azure ServiceBus • Redis • SQL Server Tuesday, March 26, 13
  • 35. Gotchas • Documentation is limited • Documentation may be out of date • But finally a released product! Tuesday, March 26, 13
  • 36. Resources • http://signalr.net/ • https://jabbr.net • https://github.com/SignalR/SignalR/wiki • http://www.asp.net/signalr/overview/getting- started/tutorial-getting-started-with-signalr Tuesday, March 26, 13
  • 37. Summary ASP.NET SignalR makes it incredibly easy to add real-time capabilities to your web app. Tuesday, March 26, 13