SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Introduction to SignalR
Introduction to SignalRIntroduction to SignalR
Introduction to SignalRAdam Mokan
 
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
 
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
 
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
 
Signalr with ASP.Net part2
Signalr with ASP.Net part2Signalr with ASP.Net part2
Signalr with ASP.Net part2Esraa Ammar
 
Scale your signalR realtime web application
Scale your signalR realtime web applicationScale your signalR realtime web application
Scale your signalR realtime web applicationRan Wahle
 
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 SignalRRoy Cornelissen
 
Web Real-time Communications
Web Real-time CommunicationsWeb Real-time Communications
Web Real-time CommunicationsAlexei 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 proposalHenryk Konsek
 

Tendances (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
 

En vedette

Microsoft WebApi & SignalR
Microsoft WebApi & SignalRMicrosoft WebApi & SignalR
Microsoft WebApi & SignalRRobin 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
 
7. signal r aspdotnet-mvc5-slides
7. signal r aspdotnet-mvc5-slides7. signal r aspdotnet-mvc5-slides
7. signal r aspdotnet-mvc5-slidesMasterCode.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 SmartphonesPulkit Syal
 
Social Media Marketing For Business
Social Media Marketing For BusinessSocial Media Marketing For Business
Social Media Marketing For BusinessJeff Bullas
 

En vedette (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
 

Similaire à SignalR

Getting Started with Meteor
Getting Started with MeteorGetting Started with Meteor
Getting Started with MeteorMichael 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 developmentbertouttier
 
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 MVCTroy Miles
 
Apereo OAE - Architectural overview
Apereo OAE - Architectural overviewApereo OAE - Architectural overview
Apereo OAE - Architectural overviewNicolaas Matthijs
 
DevNexus 2013 - Introduction to WebSockets
DevNexus 2013 - Introduction to WebSocketsDevNexus 2013 - Introduction to WebSockets
DevNexus 2013 - Introduction to WebSocketsGunnar 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 - Middlewarelyonjug
 
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 IntegrationGunnar 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-speedSATOSHI TAGOMORI
 
Adventures in Research
Adventures in ResearchAdventures in Research
Adventures in ResearchNETWAYS
 
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
 
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 IntroDaniel 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 PeopleIT Arena
 
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 JVMDavid 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.jsChristian Heindel
 
Desarrollo movil multiplataforma
Desarrollo movil multiplataformaDesarrollo movil multiplataforma
Desarrollo movil multiplataformaLennon Shimokawa
 

Similaire à 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
 
Adventures in Research
Adventures in ResearchAdventures in Research
Adventures in Research
 
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
 
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
 

Plus de Troy Miles

Fast C++ Web Servers
Fast C++ Web ServersFast C++ Web Servers
Fast C++ Web ServersTroy Miles
 
Node Boot Camp
Node Boot CampNode Boot Camp
Node Boot CampTroy Miles
 
AWS Lambda Function with Kotlin
AWS Lambda Function with KotlinAWS Lambda Function with Kotlin
AWS Lambda Function with KotlinTroy Miles
 
React Native One Day
React Native One DayReact Native One Day
React Native One DayTroy Miles
 
React Native Evening
React Native EveningReact Native Evening
React Native EveningTroy Miles
 
Intro to React
Intro to ReactIntro to React
Intro to ReactTroy Miles
 
React Development with the MERN Stack
React Development with the MERN StackReact Development with the MERN Stack
React Development with the MERN StackTroy Miles
 
Angular Application Testing
Angular Application TestingAngular Application Testing
Angular Application TestingTroy 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 WeekendTroy Miles
 
From MEAN to the MERN Stack
From MEAN to the MERN StackFrom MEAN to the MERN Stack
From MEAN to the MERN StackTroy Miles
 
Functional Programming in JavaScript
Functional Programming in JavaScriptFunctional Programming in JavaScript
Functional Programming in JavaScriptTroy Miles
 
Functional Programming in Clojure
Functional Programming in ClojureFunctional Programming in Clojure
Functional Programming in ClojureTroy Miles
 
MEAN Stack Warm-up
MEAN Stack Warm-upMEAN Stack Warm-up
MEAN Stack Warm-upTroy Miles
 
The JavaScript You Wished You Knew
The JavaScript You Wished You KnewThe JavaScript You Wished You Knew
The JavaScript You Wished You KnewTroy 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 1Troy Miles
 
Build a Game in 60 minutes
Build a Game in 60 minutesBuild a Game in 60 minutes
Build a Game in 60 minutesTroy Miles
 
Quick & Dirty & MEAN
Quick & Dirty & MEANQuick & Dirty & MEAN
Quick & Dirty & MEANTroy Miles
 
A Quick Intro to ReactiveX
A Quick Intro to ReactiveXA Quick Intro to ReactiveX
A Quick Intro to ReactiveXTroy Miles
 

Plus de 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
 

Dernier

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 

Dernier (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 

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