Lighting Up Real-time Web Communications with SignalR Introduction

Slides:



Advertisements
Similar presentations
Jeffrey Snover | Distinguished Engineer & Lead Architect Jason Helmick | Senior Technologist, Concentrated Technology.
Advertisements

Susan Ibach | Microsoft Technical Evangelist Christopher Harrison | Microsoft Certified Trainer.
Steven Borg | Co-founder & Strategist, Northwest Cadence Anthony Borton | ALM Consultant, Enhance ALM.
Building Real Time Applications with ASP.NET SignalR 2.0
SignalR on Old-school Servers & Clients When some lower-common denominator polling mechanism is needed Web Server HTML Client Got Data? Here’s some.
Jon Galloway | Technical Evangelist Christopher Harrison | Content Developer.
Steven Borg | Co-founder & Strategist, Northwest Cadence Anthony Borton | ALM Consultant, Enhance ALM.
Kate Gregory | Gregory Consulting James McNellis | Senior Engineer, Visual C++
Gerry O’Brien| Technical Content Development Manager Paul Pardi| Senior Content Publishing Manager.
Steven Borg | Co-founder & Strategist, Northwest Cadence Anthony Borton | ALM Consultant, Enhance ALM.
 You’re already a Web Site Dev  You’re interested in more simply making your web sites more responsive  If you’re not already hosting sites in.
08 | What’s Next and Resources Jon Galloway | Tech Evangelist Christopher Harrison | Head Geek.
Jon Galloway | Development Platform Evangelist Christopher Harrison | Microsoft Certified Trainer.
Microsoft Virtual Academy Stacey Mulcahy | Technical Evangelist Christopher Harrison | Content Developer.
Jeffrey Snover | Distinguished Engineer & Lead Architect Jason Helmick | Senior Technologist, Concentrated Technology.
Keith Telle Lead Software Engineer Bit Wizards Behind the Magic: SignalR Demystified.
Microsoft Virtual Academy Talbott Crowell | Chief Architect, ThirdM.com Rob Latino | Program Manager in Office 365 Support, Microsoft.
Building Azure Mobile Apps
Porting your Unity Game to the Windows Store Jump Start
Boost your T-SQL with the APPLY Operator
3D on the Web : Understanding the basics
JavaScript for Experienced Developers
Introduction to Tabular Data Models
Porting your Unity Game to the Windows Store Jump Start
Stockholm Xamarin User Group SignalR och ModernHttpClient
Web API Design Jeremy Likness | Principal Architect
Microsoft Virtual Academy
Introduction to ASP.NET MVC Jump Start
Cloud Enable at APS.NET LOB App
Building real-time web apps with WebSockets using IIS, ASP.NET and WCF
Becoming a Visio 2013 Power User – Part 3
Programming Robotic Systems using Visual Studio
Learn more: Expand your Cloud Knowledge
Partner Readiness Guide Cloud Application Development
Creating Windows Store Apps Using Visual Basic
Cross Platform Development with Xamarin & Visual Studio 2013
Office 365 Admin Support Skills: Service Management
Join the MVA Community! Microsoft Virtual Academy—Free online training! Tailored for IT Pros and Developers Over 1M registered users Earn while you learn!
Introduction to AngularJS
Cloud-Enable a Windows Presentation Foundation LOB App
Introduction to jQuery
Getting Started with PowerShell Desired State Configuration (DSC)
Introduction to Programming using Python
Introduction to ASP.NET MVC ASP.NET MVC පෙරවදන
Join the MVA Community! Microsoft Virtual Academy—Free online training! Tailored for IT Pros and Developers Over 2M registered users Earn while you learn!
Game Production Basics
TechEd /22/2019 9:22 PM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
Lighting Up Real-time Web Communications with SignalR
Alex Kelly | Program Manager
Steven Borg | Co-Founder & Strategist, Northwest Cadence
Developing Microsoft Azure Solutions Jump Start
A Lap Around Azure Websites Introduction
DevOps - Visual Studio Release Management Jump Start
ASP.NET Authentication with Identity Jump Start
Single Page Applications with jQuery or AngularJS
Developing Universal Windows Apps with HTML and JavaScript
Gaming Engines for Windows 8
Quick Start Challenge: Universal Projects to Build a Game
Pranav Rastogi | Program Manager, Microsoft
Quick Start Challenge: Microsoft Advertising SDK
Microsoft Virtual Academy
Jon Galloway | Technical Evangelist
Stacey Mulcahy| Technical Evangelist Jamie Kosoy | Content Developer
Getting Started with PowerShell Jump Start
Jeffrey Snover | Distinguished Engineer & Lead Architect
05 | Testers’ Role in the DevOps World
What’s ASP.NET 5 and Why? Scott Hunter | Director of Program Management Scott Hanselman | Principal Program Manager.
Git Jump Start Steven Borg | Co-founder & Strategist, Northwest Cadence James Tupper| ALM Consultant, Northwest Cadence.
Getting Started with Microsoft Azure Machine Learning
Adding Style with CSS Helen Zeng | Developer Evangelist
Presentation transcript:

Lighting Up Real-time Web Communications with SignalR Introduction Jon Galloway | Technical Evangelist Brady Gaster | Program Manager, Azure SDK & Tools

Meet Jon Galloway | @jongalloway Azure Technical Evangelist Focused on ASP.NET MVC http://weblogs.asp.net/jongalloway Web development on Microsoft platform since late '90s Ex-submariner; Showcase Showdown winner “Price is Right” Popular Author and Conference Speaker Wrox Professional MVC 5; MVC Music Store tutorial Virtual ASP.NET MVC Conference (mvcConf) World wide Web Camps speaker Herding Code podcast (http://herdingcode.com)

Meet Brady Gaster | @bradygaster Program Manager, Azure SDK & Web Tools Focused on ASP.NET, Azure, and Visual Studio Web Tools http://www.bradygaster.com Web development on Microsoft platform since late '90s Musician, Father of 2 boys, NETMF tinkerer, ex-teacher Speaker, Host, Blogger, Author Co-host of Channel 9’s Web Camps TV show Spoken at TechEd, //build/, and worldwide Web Camps events Azure Blog author http://blog.azure.com Organized AzureConf 2012 & 2013

Course Topics Lighting Up Real-time Communications with SignalR 01 | Introduction to SignalR 02 | SignalR on the Web 03 | SignalR on the Client 04 | Scaling out SignalR 05 | Q&A and Advanced Demos with the SignalR Team

Setting Expectations Target Audience HTML/.NET/JavaScript Developer Basic knowledge of HTTP Looking to fill knowledge gaps Suggested Prerequisites/Supporting Material Visual Studio 2013 Express for Web

Join the MVA Community! Microsoft Virtual Academy Free online learning tailored for IT Pros and Developers Over 2.3M registered users Up-to-date, relevant training on variety of Microsoft products “Earn while you learn!” Get 50 MVA Points for this event! Visit http://aka.ms/MVA-Voucher Enter this code: 2WayCommSignalR (expires 10-24-2014)

01 | Introduction to SignalR Jon Galloway | Technical Evangelist Brady Gaster | Program Manager, Azure SDK & Tools

Any sufficiently advanced technology is indistinguishable from magic – Arthur C. Clarke

What is SignalR? SignalR is a series of abstractions around various methods of providing persistent HTTP connections distributed as open-source code [Can I get that in English?] SignalR makes real-time HTTP so easy it seems like magic

SignalR Core Concepts Connection Represents a simple endpoint for sending single-recipient, grouped, or broadcast messages Connection A more high-level pipeline built upon the Connection API that allows your client and server to call methods on each other directly Hub A backplane allows you to scale your application to multiple servers. With a backplane enabled, each application instance sends messages to the backplane, and the backplane forwards them to the other application instances. Backplane

(we promise to minimize the use of chat demos today!) Installing SignalR and Getting Started (we promise to minimize the use of chat demos today!)

Creating a Real-time Hit Counter No applets or controls required! Creating a Real-time Hit Counter

SignalR – How it Works

SignalR on Older Servers or Clients Got Data? Got Data? Client Server Got Data? Here’s some data! Got Data? Got Data? Got Data?

SignalR on Modern Servers or Clients I do real-time, do you? Server Yep! Let’s Party in Real-time!

How support for WebSockets changes network behavior

So how can SignalR know which methodology to use on both sides of the So how can SignalR know which methodology to use on both sides of the *persistent HTTP connection? ..and don’t think this drastic overhaul in your expectations of HTTP is abnormal. Everyone freaks out the first time they see it. *

SignalR Fallback Web Sockets Server Sent Events Forever Frames Long Polling Forever Frames Server Sent Events Web Sockets

Transport Negotiation Let’s try Websockets! Transport Negotiation No? How about SSE? Forever Frames? Okay, then. Long Polling!

Persistent SignalR Connections

Persistent SignalR Connections Low level Work on top of transport abstraction Pass untyped messages using Send() and Broadcast() Client must parse message and understand what to do

Choosing a communication model Most applications should use the Hubs API. The Connections API could be used in the following circumstances: The format of the actual message sent needs to be specified. The developer prefers to work with a messaging and dispatching model rather than a remote invocation model. An existing application that uses a messaging model is being ported to use SignalR. http://www.asp.net/signalr/overview/signalr-20/getting-started-with-signalr-20/introduction-to-signalr

Persistent Connections

SignalR Hubs

SignalR Hubs Since Hubs are called on the client by name, the name can be customized if needed A hub is a .NET class that inherits from Microsoft.AspNet.SignalR.Hub The Clients property of a Hub class exposes dynamic properties useful for targeting specific clients Hub classes also have virtual methods useful for responding to connected/disconnected events

Sending messages to all connected clients Scott Clients.All.doWork() Jon Brady Hub

Sending messages to the calling client Scott Clients.Caller.doWork() Jon Brady Hub

Sending messages to other connected clients Scott Clients.Others.doWork() Jon Brady Hub

Sending messages to specific users Scott Clients.Users(“Brady”).doWork() Jon Brady Hub

Damian’s MoveShape Demo

Next Module – SignalR on the Web