You’re already a Web Site Dev You’re interested in more simply making your web sites more...

Post on 12-Jan-2016

213 views 0 download

Tags:

Transcript of You’re already a Web Site Dev You’re interested in more simply making your web sites more...

ASP.NET SignalR:Real-time Web for On-Time ApplicationsAnthony Clayton• .NET Senior Architect – Bennett Adelson@anthonyclayton aclayton@bennettadelson.com

Who am I?

Who are you?

We’ll Discuss…

Core Concepts SignalR in action

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

right!?

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

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

What is it?

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

When would I use it?

Durable messaging

When would I NOT use it?

Server-side ASP.NET, self-hosted service

Client-side Web and others

Where does it fit in my application?

Simplicity Reach Performance

Why should I use it?

Simplicity

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

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

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!

Demo – Connections

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

Demo – Hit Counter

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

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

Sending messages to all connected clients

Tom

John

SamHub

Clients.All.doWork()

Sending messages to the calling client

Tom

John

SamHub

Clients.Caller.doWork()

Sending messages to other connected clients

Tom

John

SamHub

Clients.Others.doWork()

Sending messages to specific users

Tom

John

SamHub

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

Demo – Move Shape

Demo – Stock Ticker

Reach

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

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

JavaScript Client .NET Client

SignalR JavaScript & .NET Client Parity

Demo – WinForms, WPF

Security

Allowing Authorized Users Only

Controlling Access by Role

Performance & Scale

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

Web Server B

Web Server A

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

Web Server A

Web Server B

Backplane

Recap

Q & A

aclayton@bennettadelson.com

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

Lessons Applying Responsive Design to Our Company Website