Top Banner
ASP.NET SignalR: Real-time Web for On-Time Applications Anthony Clayton .NET Senior Architect – Bennett Adelson @anthonyclayton [email protected]
39

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.

Jan 12, 2016

Download

Documents

Rosaline Daniel
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 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.

ASP.NET SignalR:Real-time Web for On-Time ApplicationsAnthony Clayton• .NET Senior Architect – Bennett Adelson@anthonyclayton [email protected]

Page 2: 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.

Who am I?

Page 3: 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.

Who are you?

Page 4: 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.

We’ll Discuss…

Core Concepts SignalR in action

(demos!) It’s only for the web,

right!?

Page 5: 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.

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 Windows Azure, what’s the value proposition? Ubiquitous & ready-to-go ecosystem Pre-made plumbing (security, data, etc) Pay as you go, use what you need

Assumptions

Page 6: 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.

SignalR is an abstraction that intelligently decides how to enable real-time over HTTP.

What is it?

Page 7: 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.

Currently using polling Client to client communication Dashboards and monitoring Collaboration Progress reporting Gaming

When would I use it?

Page 8: 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.

Durable messaging

When would I NOT use it?

Page 9: 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.

Server-side ASP.NET, self-hosted service

Client-side Web and others

Where does it fit in my application?

Page 10: 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.

Simplicity Reach Performance

Why should I use it?

Page 11: 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.

Simplicity

Page 12: 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.

Connection Represents a simple endpoint for sending single-recipient, grouped or

broadcast messages

Hub A more high-level pipeline built upon the Connections API that allows

your client and server to call methods on each other directly

Backplane Allows you to scale your application to multiple servers.

3 Core Concepts

Page 13: 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.

SignalR on Old-school Servers & ClientsWhen some lower-common denominator polling mechanism is neededWeb

Server

HTML

Client

Got Data?Got Data?

Got Data?

Got Data?

Got Data?Got Data?

Got Data?

Got Data?

Here’s some data

Page 14: 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.

SignalR on Modern Servers & ClientsWhen WebSockets or some other real-time layer is supportedWeb

Server

HTML

Client

Can you real-time?

YES!

Let’s do this!

Page 15: 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.

Demo – Connections

Page 16: 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.

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.

Persistent Connections

Page 17: 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.

Demo – Hit Counter

Page 18: 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.

Create OWIN Startup class Create Hub class Create HTML file

Include JQuery and SignalR Javascript libraries Create connection Create Hub proxy Create client-side handlers Start the connection When connection is complete, wire up client-side events

Using a Hub - Steps

Page 19: 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.

More about Hubs

A hub is a .NET class that inherits fromMicrosoft.AspNet.SignalR.Hub

Since Hubs are called on the client by name, the name can be customized if needed

The Clients property of a Hub class exposes dynamic properties useful for targeting specific clientsHub classes also have virtual methods useful for responding to connected/disconnected events

Page 20: 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.

Sending messages to all connected clients

Tom

John

SamHub

Clients.All.doWork()

Page 21: 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.

Sending messages to the calling client

Tom

John

SamHub

Clients.Caller.doWork()

Page 22: 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.

Sending messages to other connected clients

Tom

John

SamHub

Clients.Others.doWork()

Page 23: 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.

Sending messages to specific users

Tom

John

SamHub

Clients.Users(“Sam”).doWork()

Page 24: 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.

Demo – Move Shape

Page 25: 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.

Demo – Stock Ticker

Page 26: 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.

Reach

Page 27: 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.

Windows Server 2012 Windows Server 2008 r2 Windows 8 Windows 7 Windows Azure IIS 8 or IIS 8 Express, IIS 7 and 7.5.

Servers Supported

Page 28: 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.

Internet Explorer 8+ (Modern, Desktop, Mobile)

Chrome, Firefox, Safari (Windows and Mac) current version – 1

Opera – Windows only Android browser Windows Desktop (WinForms, WPF,

Silverlight) Windows Store Applications Windows Phone Xamarin platforms (iOS, Android)

Clients Supported

Page 29: 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.

JavaScript Client .NET Client

SignalR JavaScript & .NET Client Parity

Page 30: 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.

Demo – WinForms, WPF

Page 31: 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.

Security

Page 32: 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.

Allowing Authorized Users Only

Page 33: 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.

Controlling Access by Role

Page 34: 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.

Performance & Scale

Page 35: 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.

How do Backplanes Work?What does SignalR do without a backplane?

Web Server B

Web Server A

Page 36: 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.

How do Backplanes Work?Here’s how the Backplane solves the problem

Web Server A

Web Server B

Backplane

Page 37: 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.

Recap

Page 38: 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.

Q & A

[email protected]

Page 39: 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.

March .NET SIG3/10/2015Bennett Adelson Web Team

Lessons Applying Responsive Design to Our Company Website