SlideShare ist ein Scribd-Unternehmen logo
1 von 58
Realtime applications for
SharePoint with
SignalR and knockout.js
Communardo Software GmbH
Christian Heindel
SignalR
@c_heindel
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
Agenda
2
Realtime
applications
ā€¢ Goals, use cases,
examples
Push technologies
ā€¢ WebSockets, Comet
SignalR
ā€¢ Connections and hubs
ā€¢ Client libraries,
supported platforms,
scalability
MVVM in JavaScript
ā€¢ knockout.js, jQuery,
JSON, oDATA
Events in
SharePoint
ā€¢ Overview
Bringing it all
together
ā€¢ SharePoint 2010
ā€¢ SharePoint 2013
ā€¢ SharePoint Online
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
Agenda
3
Realtime
applications
ā€¢ Goals, use cases,
examples
Push technologies
ā€¢ WebSockets, Comet
SignalR
ā€¢ Connections and hubs
ā€¢ Client libraries,
supported platforms,
scalability
MVVM in JavaScript
ā€¢ knockout.js, jQuery,
JSON, oDATA
Events in
SharePoint
ā€¢ Overview
Bringing it all
together
ā€¢ SharePoint 2010
ā€¢ SharePoint 2013
ā€¢ SharePoint Online
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
Goals
Improve user experience
Reduce server load
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
Use cases
In general
ā€¢ Adjust prices in real-time,
e.g. for flight tickets
ā€¢ Show new comments as
they come in
ā€¢ Activity streams
In SharePoint
ā€¢ Show changes to list items
ā€¢ "Who is online?"
ā€¢ Chat / Shoutbox
ā€¢ Download counter
ā€¢ Task status dashboard
ā€¢ ā€¦
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
TFS ā€“ Team Room
Quelle: http://tfs.visualstudio.com/en-us/news/2013-jun-3
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
Shopping cart
Quelle: http://tech.pro/tutorial/1146/building-a-shopping-cart-with-signalr-aspnet-web-api-and-knockoutjs
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
Example: Stock Ticker
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
Download counter
Quelle: http://melcher.it/2012/05/signalr-and-sharepoint-live-download-tracking/
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
Upload visualizer
Quelle: http://blog-aspc.azurewebsites.net/sharepoint-with-signalr/
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
Realtime ASP.NET Web API tracing with SignalR
Video:
http://www.strathweb.com/
2012/11/realtime-asp-net-web-
api-tracing-with-signalr/
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
JabbR
Collaborative chat done right
ā€¢ Project:
http://about.jabbr.net/
ā€¢ Code:
https://github.com/JabbR/JabbR
ā€¢ Live demo:
https://jabbR.net
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
Example: ShootR
ā€¢ Multiplayer space ship
game built on the
SignalR framework.
ā€¢ Code:
https://github.com/
ntaylormullen/shootr
ā€¢ Live demo:
http://shootr.signalr.net/
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
Example: Tic-Tac-Toe
ā€¢ Code:
https://github.com/fekberg/Tic-Tac-Toe
ā€¢ Live demo:
http://signalr-tictactoe.azurewebsites.net/
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
http://www.christian-heindel.de/SignalRServer/
15
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
Agenda
16
Realtime
applications
ā€¢ Goals, use cases,
examples
Push technologies
ā€¢ WebSockets, Comet
SignalR
ā€¢ Connections and hubs
ā€¢ Client libraries,
supported platforms,
scalability
MVVM in JavaScript
ā€¢ knockout.js, jQuery,
JSON, oDATA
Events in
SharePoint
ā€¢ Overview
Bringing it all
together
ā€¢ SharePoint 2010
ā€¢ SharePoint 2013
ā€¢ SharePoint Online
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
Refresh a page after it has loaded
How you could try itā€¦
ā€¢ Client pull
ā€¢ F5, Ctrl+F5, press the ā€œDelete
cacheā€ button hard and often,
then F5
ā€¢ Polling: AJAX Request every 60
seconds? Every 5 seconds?
How you should do itā€¦
ā€¢ Server push
ā€¢ WebSocket connection
ā€¢ Comet techniques as fallback
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
Comet (a.k.a. Ajax Push, Reverse Ajax, HTTP Streaming, HTTP server push)
ā€¢ No page-by-page request or polling, but a long-held HTTP
request
ā€¢ Biggest problem: HTTP 1.1 (max. 2 simultaneous connections)
ā€¢ Streaming:
ā€¢ Hidden iFrame
ā€¢ XMLHttpRequest
ā€¢ Ajax with long polling
ā€¢ XMLHttpRequest with long polling
ā€¢ Script tag long polling
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
WebSockets
ā€¢ Full-duplex communication channel over a single TCP connection
ā€¢ Persistent connection
ā€¢ Cross origin support built in (CORS)
ā€¢ IETF RFC 6455
ā€¢ Port 80
ā€¢ WebSockets API (W3C Recommendation)
ā€¢ Web browser + web server need to implement it
ā€¢ IIS 8.0, Apache 2.x, nginx 1.3.13+, lighttpd, node.js, ā€¦
ā€¢ Google Chrome 14+, Internet Explorer 10+, Firefox 6+, Safari 6+ and Opera
12.10+
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
caniuse.com
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
Agenda
21
Realtime
applications
ā€¢ Goals, use cases,
examples
Push technologies
ā€¢ WebSockets, Comet
SignalR
ā€¢ Connections and hubs
ā€¢ Client libraries,
supported platforms,
scalability
MVVM in JavaScript
ā€¢ knockout.js, jQuery,
JSON, oDATA
Events in
SharePoint
ā€¢ Overview
Bringing it all
together
ā€¢ SharePoint 2010
ā€¢ SharePoint 2013
ā€¢ SharePoint Online
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
ASP.NET SignalR
ā€¢ SignalR started in July 2011 as a project by
ā€¢ David Fowler (Senior Software Design Engineer, ASP.NET Team)
ā€¢ Damien Edwards (Senior Program Manager, Microsoft)
ā€¢ Now official part of the ASP.NET Technologies: http://asp.net/signalr
ā€¢ MSDN documentation (since 03/2013):
http://msdn.microsoft.com/en-us/library/jj891071(v=vs.111).aspx
ā€¢ Source code on GitHub
ā€¢ Available via NuGet Gallery (22.000+ downloads in last 6 weeks)
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
Introduction to SignalR
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
SignalR: Features
ā€¢ Ready to use libraries for server and clients
ā€¢ Automatic connection management
(send to all clients, to specific clients)
ā€¢ Uses WebSockets when available, fallback otherwise
(abstraction layer)
ā€¢ Scale out to thousands of clients
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
SignalR: Transports and fallbacks
HTML 5 transports
These transports depend on support for HTML 5. If the client browser does not support the HTML 5 standard, older
transports will be used.
ā€¢ WebSocket
ā€¢ Server Sent Events, also known as EventSource (if the browser supports Server Sent Events, which is basically all
browsers except Internet Explorer.)
Comet transports
The following transports are based on the Comet web application model, in which a browser or other client maintains a
long-held HTTP request, which the server can use to push data to the client without the client specifically requesting it.
ā€¢ Forever Frame
ā€¢ for Internet Explorer only, hidden Iframe, one-way realtime connection from server to client, connection from client to server uses a
separate connection, a new connection is created for each piece of data that needs to be sent
ā€¢ Ajax long polling
ā€¢ no persistent connection, but instead polling the server with a request that stays open until the server responds, at which point the
connection closes, and a new connection is requested immediately, latency while the connection resets
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
SignalR: Architecture diagram
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
SignalR: Connections
- Simple endpoint for sending single-recipient, grouped, or
broadcast messages
- Connection API (represented in .NET code by the
PersistentConnection class)
- direct access to the low-level communication network that
SignalR exposes
- familiar to developers who have used connection-based APIs
such as Windows Communication Foundation
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
SignalR: Hubs
- high-level pipeline built upon the Connection API
- allows client and server to call methods on each other directly
- SignalR handles dispatching across machine boundaries as if by magic
- For different types of messages, it is recommended that you use the Hub class, so
that you won't have to create your own dispatching
- using the Hub, you can call methods on the clients, rather than sending an explicit
message that needs to be received, interpreted, and acted upon
- familiar to developers who have used remote invocation APIs such as .NET
Remoting
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
SignalR: Supported platforms (server side)
http://blogs.msdn.com/b/timlee/archive/2013/02/27/deploy-the-signalr-getting-started-sample-as-a-windows-azure-web-site.aspx
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
SignalR: Supported platforms (client side)
ā€¢ Browsers (JavaScript)
ā€¢ Windows Desktop (Forms)
ā€¢ Silverlight
ā€¢ Windows Store (.NET)
ā€¢ Windows Store (JavaScript)
ā€¢ Windows Phone (IE)
ā€¢ Windows Phone (.NET)
ā€¢ Console
ā€¢ Web Services
ā€¢ iOS (Objective-C)
ā€¢ ā€¦
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
SignalR: System requirements (Windows)
ā€¢ On Facebook youā€Ÿd say: ā€œItā€Ÿs complicated.ā€
ā€¢ Excerpt from the documentation:
ā€¢ Server: 2012*, 2008 r2, Azure Website, Windows 8*, Windows 7
ā€¢ .NET Framework: 4.0 / 4.5*
ā€¢ IIS: 7,7.5,8*, 8 Express*
ā€¢ Browser: IE10*
ā€¢ Silverlight: N/A (restr. 5+)
ā€¢ WP8: IE* (restr. WP8 App)
ā€¢ Only * supports WebSocketsā€¦ ļŒ
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
SignalR: Performance and scalability (I)
ā€¢ Standard limit in IIS: 5.000 connections per CPU
ā€¢ You can override this limit!
ā€¢ For SignalR about 20.000 connections per CPU usually also
work, depends on your appliactionā€¦
ā€¢ Special load test tool available:
https://github.com/SignalR/SignalR/tree/dev/src/Microsoft.AspNet.SignalR.Crank
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
SignalR: Performance and scalability (II)
ā€¢ ScaleOut providers available since SignalR 1.1
ā€¢ Azure Service Bus
ā€¢ SQL Server
ā€¢ Redis
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
SignalR: Performance and scalability (III)
ā€¢ Helpful documentation on MSDN library
ā€¢ How to notify the user about disconnections
ā€¢ How to continuously reconnect
$.connection.hub.connectionSlow(function() {
notifyUserOfConnectionProblem();
// Your function to notify user.
});
$.connection.hub.disconnected(function() {
setTimeout(function() {
$.connection.hub.start();
}, 5000);
// Restart connection after 5 seconds.
});
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
Agenda
35
Realtime
applications
ā€¢ Goals, use cases,
examples
Push technologies
ā€¢ WebSockets, Comet
SignalR
ā€¢ Connections and hubs
ā€¢ Client libraries,
supported platforms,
scalability
MVVM in JavaScript
ā€¢ knockout.js, jQuery,
JSON, oDATA
Events in
SharePoint
ā€¢ Overview
Bringing it all
together
ā€¢ SharePoint 2010
ā€¢ SharePoint 2013
ā€¢ SharePoint Online
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
Why MVVM in JavaScript?
ā€¢ Separate design from code
ā€¢ Two-way DataBinding for properties
ā€¢ Command binding
ā€¢ Templates
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
Which framework to choose?
knockout.js
(Microsoft)
spine.js SproutCore JavascriptMVC ember.js
Angluar.js
(Google)
ā€¦
37
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
knockout.js
ā€¢ Simplify dynamic JavaScript UIs by applying the Model-View-
View Model (MVVM) pattern
ā€¢ By Steve Sanderson (Microsoft employee), inspired by XAML,
supports legacy browsersā€¦
Declarative Bindings
Easily associate DOM
elements with model data
using a concise,
syntaxreadable
Automatic UI Refresh
When your data model's
state changes, your UI
updates automatically
Dependency Tracking
Implicitly set up chains of
relationships between
model data, to transform
and combine it
Templating
Quickly generate
sophisticated, nested UIs
as a function of your model
data
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
knockout.js
Load JavaScript:
DataBinding in HTML:
Define ViewModel:
Start listening:
Refresh values:
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
knockout.js
Load JavaScript:
DataBinding in HTML:
Define ViewModel:
Start listening:
Refresh values:
JSON?
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
JSON ā€“ JavaScript Object Notation
ā€¢ Derived from JavaScript
ā€¢ Language independant
ā€¢ Human readable
ā€¢ Specified by Douglas Crockford
in RFC 4627
ā€¢ json.org launched in 2002
{
"id": 1,
"name": "Foo",
"price": 123,
"tags": [ "Bar", "Eek" ],
"stock": {
"warehouse": 300,
"retail": 20
}
}
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
oDATA ā€“ Open Data Protocol
ā€¢ standardized protocol for creating and consuming data APIs
ā€¢ builds on REST web services
ā€¢ uniform way to expose full-featured data APIs
ā€¢ from Microsoft, submitted as OASIS standard
ā€¢ AtomPub protocol as
envelope for JSON
ā€¢ REST methods available
on sources
ā€¢ http://www.odata.org/
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
oDATA ā€“ Open Data Protocol
ā€¢ standardized protocol for creating and consuming data APIs
ā€¢ builds on REST web services
ā€¢ uniform way to expose full-featured data APIs
ā€¢ from Microsoft, submitted as OASIS standard
ā€¢ AtomPub protocol as
envelope for JSON
ā€¢ REST methods available
on sources
ā€¢ http://www.odata.org/
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
Agenda
44
Realtime
applications
ā€¢ Goals, use cases,
examples
Push technologies
ā€¢ WebSockets, Comet
SignalR
ā€¢ Connections and hubs
ā€¢ Client libraries,
supported platforms,
scalability
MVVM in JavaScript
ā€¢ knockout.js, jQuery,
oDATA, JSON)
Events in
SharePoint
ā€¢ Overview
Bringing it all
together
ā€¢ SharePoint 2010
ā€¢ SharePoint 2013
ā€¢ SharePoint Online
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
Events in SharePoint
Synchronous or
asynchronous
(before or after)
Local, app or
remote (new in SP2013)
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
Events in SharePoint
ā€¢ Item events
adding, added,
deleting, deleted,
updating, updated,
fileconverted,
filemoving, filemoved,
checkingin,
checkedin,
checkingout, checked
out,
attachmentadding,
attachmentadded,
attachmentdeleting,
attachmentdeleted
ā€¢ List field events
adding, added,
deleting, deleted,
updating, updated
ā€¢ List events
adding, added,
deleting, deleted
ā€¢ Web events
adding, provisioned,
deleting, deleted,
moving, moved
ā€¢ Site events
deleting, deleted
ā€¢ App events
installed, uninstalling,
upgraded
ā€¢ And moreā€¦
EmailReceived,
WorkflowCompleted,
WorkflowPostponed,
WorkflowStarted,
WorkflowStarting,
FeatureEventReceiver
installation, activation,
deactivation, and
removal
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
Agenda
47
Realtime
applications
ā€¢ Goals, use cases,
examples
Push technologies
ā€¢ WebSockets, Comet
SignalR
ā€¢ Connections and hubs
ā€¢ Client libraries,
supported platforms,
scalability
MVVM in JavaScript
ā€¢ knockout.js, jQuery,
JSON, oDATA
Events in
SharePoint
ā€¢ Overview
Bringing it all
together
ā€¢ SharePoint 2010
ā€¢ SharePoint 2013
ā€¢ SharePoint Online
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
Integration in SharePoint (on-premises)
SharePoint 2010
ā€¢ uses .NET Framework 3.5
ā€¢ SignalR requires .NET Framework 4.0 / 4.5
ā€¢ ļƒ  Coding of a proxy necessary (WCF, HttpHandler or similar)
SharePoint 2013
ā€¢ uses .NET Framework 4.0
But:
ā€¢ SignalR attaches itself to the ā€žApp_Startā€œ event and registers a route ā€ž~/signalr/hubsā€œ
(so that clients always find the hub)
ā€¢ In SharePoint, there is no ā€žApp_Startā€œ! ĀÆ_(惄)_/ĀÆ
Global.asax cannot be modified in a way that deployableļƒ solution: write a HttpModule
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
Integration in SharePoint (on-premises)
So in order to get it working you have to write:
ā€¢ HttpModule
ā€¢ SPWebConfigModificationHandler
ā€¢ VirtualPathProvider
Thanks to Max Melcher, you donā€žt have to: Go to Codeplex
SPSignalR - real-time applications with SharePoint 2013
ā€¢ enables you to host SignalR in a SharePoint WebApplication
ā€¢ web application feature, AppPool recycle, yoursharepoint.com/signalr/hubs
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
Weak points
ā€¢ CORS (cross site scripting)
ā€¢ Different browsers handle this with different successā€¦ ;-)
ā€¢ Proxying required
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
Integration in SharePoint Online (I)
ā€¢ Remote Event Receiver - Declaration
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
Integration in SharePoint Online (II)
ā€¢ Remote Event Receiver - Implementation
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
Integration in SharePoint Online (III)
ā€¢ SignalRHub in same project as RemoteEventReceiver
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
CODE
54
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
Agenda
55
Realtime
applications
ā€¢ Goals, use cases,
examples
Push technologies
ā€¢ WebSockets, Comet
SignalR
ā€¢ Connections and hubs
ā€¢ Client libraries,
supported platforms,
scalability
MVVM in JavaScript
ā€¢ knockout.js, jQuery,
JSON, oDATA
Events in
SharePoint
ā€¢ Overview
Bringing it all
together
ā€¢ SharePoint 2010
ā€¢ SharePoint 2013
ā€¢ SharePoint Online
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
Resources
ā€¢ Active community
ā€¢ Forums: http://forums.asp.net/1254.aspx
ā€¢ Github: We've found 493 repository results
ā€¢ Official website: http://asp.net/SignalR
ā€¢ Videos: http://channel9.msdn.com/search?term=signalr
ā€¢ Trainings:
http://www.pluralsight.com/training/Courses/TableOfContents/signalr-
introduction
ā€¢ JavaScript libraries: Angular, http://smoothiecharts.org/
ā€¢ Books: Pushing Data: Integrating with ASP.NET SignalR Hubs
http://henriquat.re/server-
integration/signalr/integrateWithSignalRHubs.html
ā€¢ More links: https://delicious.com/c.heindel/signalr
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
Open Source projects using SignalR
JabbR
ā€¢ JabbR is an open source, real-time web chat system built using ASP.NET and SignalR.
Source code is at https://github.com/davidfowl/jabbr.
ShootR
ā€¢ ShootR is an open source, real-time, multi-player HTML5 space shooter game, using SignalR
for real-time server-client communications. Source code is at
https://github.com/NTaylorMullen/ShootR.
ElmahR = ELMAH & SignalR
ā€¢ A real-time monitoring solution for ASP.NET applications built with ELMAH and SignalR.
SignalR-ObjC
ā€¢ A community maintained Objective-C client for SignalR, for use with iOS and Mac.
SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de
Communardo Software
GmbH
KleiststraƟe 10 a
01129 Dresden
http://www.communardo.de
info@communardo.de
Phone: +49 (351) 833 820
Standort Stuttgart
Leinfelder StraƟe 64
70771 Leinfelden-Echterdingen
Phone: +49 (711) 722 497 09
Thank you for listening!
58
Christian Heindel
info@christian-heindel.de
www.communardo.de
Mobile: +49 (0) 171 - 3123924
Twitter: @c_heindel
Blog: http://blog.christian-heindel.de
Blog: http://www.communardo.de/techblog/

Weitere Ƥhnliche Inhalte

Was ist angesagt?

Python as a calculator
Python as a calculatorPython as a calculator
Python as a calculatorHemantChaurasia8
Ā 
Lecture 02 Software Process Model
Lecture 02 Software Process ModelLecture 02 Software Process Model
Lecture 02 Software Process ModelAchmad Solichin
Ā 
Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented ProgrammingRAJU MAKWANA
Ā 
Java abstract class & abstract methods
Java abstract class & abstract methodsJava abstract class & abstract methods
Java abstract class & abstract methodsShubham Dwivedi
Ā 
object oriented Programming ppt
object oriented Programming pptobject oriented Programming ppt
object oriented Programming pptNitesh Dubey
Ā 
Software Engineering (Project Planning & Estimation)
Software Engineering (Project Planning &  Estimation)Software Engineering (Project Planning &  Estimation)
Software Engineering (Project Planning & Estimation)ShudipPal
Ā 
SDPM - Lecture 2 -The STEP WISE Approach to Project Planning
SDPM - Lecture 2 -The STEP WISE Approach to Project PlanningSDPM - Lecture 2 -The STEP WISE Approach to Project Planning
SDPM - Lecture 2 -The STEP WISE Approach to Project PlanningOpenLearningLab
Ā 
Constructor and Destructors in C++
Constructor and Destructors in C++Constructor and Destructors in C++
Constructor and Destructors in C++sandeep54552
Ā 
Access specifiers (Public Private Protected) C++
Access specifiers (Public Private  Protected) C++Access specifiers (Public Private  Protected) C++
Access specifiers (Public Private Protected) C++vivekkumar2938
Ā 
design and analysis of algorithm Lab files
design and analysis of algorithm Lab filesdesign and analysis of algorithm Lab files
design and analysis of algorithm Lab filesNitesh Dubey
Ā 
Lecture01 object oriented-programming
Lecture01 object oriented-programmingLecture01 object oriented-programming
Lecture01 object oriented-programmingHariz Mustafa
Ā 
Constructor overloading in C++
Constructor overloading in C++Constructor overloading in C++
Constructor overloading in C++Learn By Watch
Ā 

Was ist angesagt? (20)

Python as a calculator
Python as a calculatorPython as a calculator
Python as a calculator
Ā 
Lecture 02 Software Process Model
Lecture 02 Software Process ModelLecture 02 Software Process Model
Lecture 02 Software Process Model
Ā 
Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented Programming
Ā 
Java abstract class & abstract methods
Java abstract class & abstract methodsJava abstract class & abstract methods
Java abstract class & abstract methods
Ā 
object oriented Programming ppt
object oriented Programming pptobject oriented Programming ppt
object oriented Programming ppt
Ā 
Software Engineering (Project Planning & Estimation)
Software Engineering (Project Planning &  Estimation)Software Engineering (Project Planning &  Estimation)
Software Engineering (Project Planning & Estimation)
Ā 
SDPM - Lecture 2 -The STEP WISE Approach to Project Planning
SDPM - Lecture 2 -The STEP WISE Approach to Project PlanningSDPM - Lecture 2 -The STEP WISE Approach to Project Planning
SDPM - Lecture 2 -The STEP WISE Approach to Project Planning
Ā 
Constructor and Destructors in C++
Constructor and Destructors in C++Constructor and Destructors in C++
Constructor and Destructors in C++
Ā 
File handling in c++
File handling in c++File handling in c++
File handling in c++
Ā 
C and C++ functions
C and C++ functionsC and C++ functions
C and C++ functions
Ā 
Interfaces & Packages V2
Interfaces & Packages V2Interfaces & Packages V2
Interfaces & Packages V2
Ā 
OOP C++
OOP C++OOP C++
OOP C++
Ā 
Access specifiers (Public Private Protected) C++
Access specifiers (Public Private  Protected) C++Access specifiers (Public Private  Protected) C++
Access specifiers (Public Private Protected) C++
Ā 
Memento pattern
Memento patternMemento pattern
Memento pattern
Ā 
design and analysis of algorithm Lab files
design and analysis of algorithm Lab filesdesign and analysis of algorithm Lab files
design and analysis of algorithm Lab files
Ā 
Uml lecture
Uml lectureUml lecture
Uml lecture
Ā 
Pointers - DataStructures
Pointers - DataStructuresPointers - DataStructures
Pointers - DataStructures
Ā 
Lecture01 object oriented-programming
Lecture01 object oriented-programmingLecture01 object oriented-programming
Lecture01 object oriented-programming
Ā 
Constructor overloading in C++
Constructor overloading in C++Constructor overloading in C++
Constructor overloading in C++
Ā 
Method overloading
Method overloadingMethod overloading
Method overloading
Ā 

Andere mochten auch

SoundOff Back To School Insert, Fall 2014
SoundOff Back To School Insert, Fall 2014SoundOff Back To School Insert, Fall 2014
SoundOff Back To School Insert, Fall 2014ftmeade
Ā 
LinkedIn company pages: the untapped opportunity for SMBs
LinkedIn company pages: the untapped opportunity for SMBsLinkedIn company pages: the untapped opportunity for SMBs
LinkedIn company pages: the untapped opportunity for SMBsScoop.it
Ā 
COMPONENTES DE LA TARJETA MADRE
COMPONENTES DE LA TARJETA MADRECOMPONENTES DE LA TARJETA MADRE
COMPONENTES DE LA TARJETA MADREvane1889
Ā 
Seminario Estrategias de Marketing 2.0
Seminario Estrategias de Marketing 2.0Seminario Estrategias de Marketing 2.0
Seminario Estrategias de Marketing 2.0Javier PĆ©rez Caro
Ā 
27 ways to use gurl qrurl purl murl surl turl giftmiums freemiums guestmiums ...
27 ways to use gurl qrurl purl murl surl turl giftmiums freemiums guestmiums ...27 ways to use gurl qrurl purl murl surl turl giftmiums freemiums guestmiums ...
27 ways to use gurl qrurl purl murl surl turl giftmiums freemiums guestmiums ...Keith Griffin
Ā 
Green line tagungskatalog_2013_webansicht
Green line tagungskatalog_2013_webansichtGreen line tagungskatalog_2013_webansicht
Green line tagungskatalog_2013_webansichtSolveig Homeyer
Ā 
BVDW online audio advertising effects study 2015
BVDW online audio advertising effects study 2015BVDW online audio advertising effects study 2015
BVDW online audio advertising effects study 2015IAB Europe
Ā 
ENEAGRAMA: PresentaciĆ³n empresarial extendida
ENEAGRAMA: PresentaciĆ³n empresarial extendidaENEAGRAMA: PresentaciĆ³n empresarial extendida
ENEAGRAMA: PresentaciĆ³n empresarial extendidaKlever BenalcĆ”zar
Ā 
Linking Cash Flow Management and Life Planning
Linking Cash Flow Management and Life PlanningLinking Cash Flow Management and Life Planning
Linking Cash Flow Management and Life PlanningEric Kies
Ā 
Presentacion cafe mundiAL
Presentacion cafe mundiALPresentacion cafe mundiAL
Presentacion cafe mundiALPaolaYepesG
Ā 
Timer control and Tool Strip C#
Timer control and Tool Strip C# Timer control and Tool Strip C#
Timer control and Tool Strip C# JJ Javier
Ā 
Valo Intranet - Ready-to-go social intranet on Office 365
Valo Intranet - Ready-to-go social intranet on Office 365Valo Intranet - Ready-to-go social intranet on Office 365
Valo Intranet - Ready-to-go social intranet on Office 365Valo
Ā 
Cushman & wakefield & ssa uk self storage survey 2015
Cushman & wakefield & ssa uk self storage survey 2015Cushman & wakefield & ssa uk self storage survey 2015
Cushman & wakefield & ssa uk self storage survey 2015Cushman & Wakefield
Ā 
ClasificaciĆ³n de leucemias - OMS 2008
ClasificaciĆ³n de leucemias - OMS 2008ClasificaciĆ³n de leucemias - OMS 2008
ClasificaciĆ³n de leucemias - OMS 2008essalud
Ā 

Andere mochten auch (20)

SoundOff Back To School Insert, Fall 2014
SoundOff Back To School Insert, Fall 2014SoundOff Back To School Insert, Fall 2014
SoundOff Back To School Insert, Fall 2014
Ā 
Knockout.js & SignalR
Knockout.js & SignalRKnockout.js & SignalR
Knockout.js & SignalR
Ā 
LinkedIn company pages: the untapped opportunity for SMBs
LinkedIn company pages: the untapped opportunity for SMBsLinkedIn company pages: the untapped opportunity for SMBs
LinkedIn company pages: the untapped opportunity for SMBs
Ā 
Pp bpi 3.0
Pp bpi 3.0Pp bpi 3.0
Pp bpi 3.0
Ā 
COMPONENTES DE LA TARJETA MADRE
COMPONENTES DE LA TARJETA MADRECOMPONENTES DE LA TARJETA MADRE
COMPONENTES DE LA TARJETA MADRE
Ā 
Seminario Estrategias de Marketing 2.0
Seminario Estrategias de Marketing 2.0Seminario Estrategias de Marketing 2.0
Seminario Estrategias de Marketing 2.0
Ā 
27 ways to use gurl qrurl purl murl surl turl giftmiums freemiums guestmiums ...
27 ways to use gurl qrurl purl murl surl turl giftmiums freemiums guestmiums ...27 ways to use gurl qrurl purl murl surl turl giftmiums freemiums guestmiums ...
27 ways to use gurl qrurl purl murl surl turl giftmiums freemiums guestmiums ...
Ā 
Felicidad (2) dayan
Felicidad (2) dayanFelicidad (2) dayan
Felicidad (2) dayan
Ā 
Resume
ResumeResume
Resume
Ā 
Green line tagungskatalog_2013_webansicht
Green line tagungskatalog_2013_webansichtGreen line tagungskatalog_2013_webansicht
Green line tagungskatalog_2013_webansicht
Ā 
BVDW online audio advertising effects study 2015
BVDW online audio advertising effects study 2015BVDW online audio advertising effects study 2015
BVDW online audio advertising effects study 2015
Ā 
ENEAGRAMA: PresentaciĆ³n empresarial extendida
ENEAGRAMA: PresentaciĆ³n empresarial extendidaENEAGRAMA: PresentaciĆ³n empresarial extendida
ENEAGRAMA: PresentaciĆ³n empresarial extendida
Ā 
Linking Cash Flow Management and Life Planning
Linking Cash Flow Management and Life PlanningLinking Cash Flow Management and Life Planning
Linking Cash Flow Management and Life Planning
Ā 
Presentacion cafe mundiAL
Presentacion cafe mundiALPresentacion cafe mundiAL
Presentacion cafe mundiAL
Ā 
Timer control and Tool Strip C#
Timer control and Tool Strip C# Timer control and Tool Strip C#
Timer control and Tool Strip C#
Ā 
Valo Intranet - Ready-to-go social intranet on Office 365
Valo Intranet - Ready-to-go social intranet on Office 365Valo Intranet - Ready-to-go social intranet on Office 365
Valo Intranet - Ready-to-go social intranet on Office 365
Ā 
Els dofins
Els dofinsEls dofins
Els dofins
Ā 
Presentacion "kers"
Presentacion "kers"Presentacion "kers"
Presentacion "kers"
Ā 
Cushman & wakefield & ssa uk self storage survey 2015
Cushman & wakefield & ssa uk self storage survey 2015Cushman & wakefield & ssa uk self storage survey 2015
Cushman & wakefield & ssa uk self storage survey 2015
Ā 
ClasificaciĆ³n de leucemias - OMS 2008
ClasificaciĆ³n de leucemias - OMS 2008ClasificaciĆ³n de leucemias - OMS 2008
ClasificaciĆ³n de leucemias - OMS 2008
Ā 

Ƅhnlich wie Realtime applications for SharePoint with SignalR and knockout.js

CV_Imed_Eddine_Bouchoucha
CV_Imed_Eddine_BouchouchaCV_Imed_Eddine_Bouchoucha
CV_Imed_Eddine_BouchouchaImed Bouchoucha
Ā 
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
Ā 
DACHNUG50 HCL Volt MX Go.pdf
DACHNUG50 HCL Volt MX Go.pdfDACHNUG50 HCL Volt MX Go.pdf
DACHNUG50 HCL Volt MX Go.pdfDNUG e.V.
Ā 
German introduction to sp framework
German   introduction to sp frameworkGerman   introduction to sp framework
German introduction to sp frameworkBob German
Ā 
Cloud-Native .Net des applications containeriseĢes .Net sur Linux, Windows e...
 Cloud-Native .Net des applications containeriseĢes .Net sur Linux, Windows e... Cloud-Native .Net des applications containeriseĢes .Net sur Linux, Windows e...
Cloud-Native .Net des applications containeriseĢes .Net sur Linux, Windows e...VMware Tanzu
Ā 
Anatomy of the modern application stack
Anatomy of the modern application stackAnatomy of the modern application stack
Anatomy of the modern application stackBoyan Dimitrov
Ā 
Daimlerā€™s Community Approach to TAS Platform Monitoring
Daimlerā€™s Community Approach to TAS Platform MonitoringDaimlerā€™s Community Approach to TAS Platform Monitoring
Daimlerā€™s Community Approach to TAS Platform MonitoringVMware Tanzu
Ā 
Large scale, cloud computing and scalability with Umbraco
Large scale, cloud computing and scalability with UmbracoLarge scale, cloud computing and scalability with Umbraco
Large scale, cloud computing and scalability with UmbracoWarren Buckley
Ā 
Cloud Native Day: Cloud-native Anwendungsentwicklung im Jahr 2021
Cloud Native Day: Cloud-native Anwendungsentwicklung im Jahr 2021Cloud Native Day: Cloud-native Anwendungsentwicklung im Jahr 2021
Cloud Native Day: Cloud-native Anwendungsentwicklung im Jahr 2021Nico Meisenzahl
Ā 
Cadison world-issue-03-2011
Cadison world-issue-03-2011Cadison world-issue-03-2011
Cadison world-issue-03-2011CADISON
Ā 
Cadison world 2011 issue 1
Cadison world  2011 issue  1Cadison world  2011 issue  1
Cadison world 2011 issue 1CADISON
Ā 
Cadison world-issue-03-2011
Cadison world-issue-03-2011Cadison world-issue-03-2011
Cadison world-issue-03-2011CADISON
Ā 
Andreas Zeitler (Vuframe): Virtual & Augmented Business: How to Discover and ...
Andreas Zeitler (Vuframe): Virtual & Augmented Business: How to Discover and ...Andreas Zeitler (Vuframe): Virtual & Augmented Business: How to Discover and ...
Andreas Zeitler (Vuframe): Virtual & Augmented Business: How to Discover and ...AugmentedWorldExpo
Ā 
130815 - Content Delviery Networks for the IEEE Singapore Broadcast group
130815 - Content Delviery Networks for the IEEE Singapore Broadcast group130815 - Content Delviery Networks for the IEEE Singapore Broadcast group
130815 - Content Delviery Networks for the IEEE Singapore Broadcast groupPasocoPteLtd
Ā 
SignalR Intro + WPDev integration @ Codetock
SignalR Intro + WPDev integration @ CodetockSignalR Intro + WPDev integration @ Codetock
SignalR Intro + WPDev integration @ CodetockSam Basu
Ā 
Internet of things basics
Internet of things basicsInternet of things basics
Internet of things basicscumulocity
Ā 
michael_milad_CV
michael_milad_CVmichael_milad_CV
michael_milad_CVMichael Milad
Ā 
Confluent Partner Tech Talk with SVA
Confluent Partner Tech Talk with SVAConfluent Partner Tech Talk with SVA
Confluent Partner Tech Talk with SVAconfluent
Ā 

Ƅhnlich wie Realtime applications for SharePoint with SignalR and knockout.js (20)

CV_Imed_Eddine_Bouchoucha
CV_Imed_Eddine_BouchouchaCV_Imed_Eddine_Bouchoucha
CV_Imed_Eddine_Bouchoucha
Ā 
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
Ā 
DACHNUG50 HCL Volt MX Go.pdf
DACHNUG50 HCL Volt MX Go.pdfDACHNUG50 HCL Volt MX Go.pdf
DACHNUG50 HCL Volt MX Go.pdf
Ā 
German introduction to sp framework
German   introduction to sp frameworkGerman   introduction to sp framework
German introduction to sp framework
Ā 
Cloud-Native .Net des applications containeriseĢes .Net sur Linux, Windows e...
 Cloud-Native .Net des applications containeriseĢes .Net sur Linux, Windows e... Cloud-Native .Net des applications containeriseĢes .Net sur Linux, Windows e...
Cloud-Native .Net des applications containeriseĢes .Net sur Linux, Windows e...
Ā 
Anatomy of the modern application stack
Anatomy of the modern application stackAnatomy of the modern application stack
Anatomy of the modern application stack
Ā 
Daimlerā€™s Community Approach to TAS Platform Monitoring
Daimlerā€™s Community Approach to TAS Platform MonitoringDaimlerā€™s Community Approach to TAS Platform Monitoring
Daimlerā€™s Community Approach to TAS Platform Monitoring
Ā 
Large scale, cloud computing and scalability with Umbraco
Large scale, cloud computing and scalability with UmbracoLarge scale, cloud computing and scalability with Umbraco
Large scale, cloud computing and scalability with Umbraco
Ā 
Cloud Native Day: Cloud-native Anwendungsentwicklung im Jahr 2021
Cloud Native Day: Cloud-native Anwendungsentwicklung im Jahr 2021Cloud Native Day: Cloud-native Anwendungsentwicklung im Jahr 2021
Cloud Native Day: Cloud-native Anwendungsentwicklung im Jahr 2021
Ā 
Cadison world-issue-03-2011
Cadison world-issue-03-2011Cadison world-issue-03-2011
Cadison world-issue-03-2011
Ā 
Cadison world 2011 issue 1
Cadison world  2011 issue  1Cadison world  2011 issue  1
Cadison world 2011 issue 1
Ā 
Cadison world-issue-03-2011
Cadison world-issue-03-2011Cadison world-issue-03-2011
Cadison world-issue-03-2011
Ā 
Andreas Zeitler (Vuframe): Virtual & Augmented Business: How to Discover and ...
Andreas Zeitler (Vuframe): Virtual & Augmented Business: How to Discover and ...Andreas Zeitler (Vuframe): Virtual & Augmented Business: How to Discover and ...
Andreas Zeitler (Vuframe): Virtual & Augmented Business: How to Discover and ...
Ā 
130815 - Content Delviery Networks for the IEEE Singapore Broadcast group
130815 - Content Delviery Networks for the IEEE Singapore Broadcast group130815 - Content Delviery Networks for the IEEE Singapore Broadcast group
130815 - Content Delviery Networks for the IEEE Singapore Broadcast group
Ā 
SignalR Intro + WPDev integration @ Codetock
SignalR Intro + WPDev integration @ CodetockSignalR Intro + WPDev integration @ Codetock
SignalR Intro + WPDev integration @ Codetock
Ā 
Internet of things basics
Internet of things basicsInternet of things basics
Internet of things basics
Ā 
michael_milad_CV
michael_milad_CVmichael_milad_CV
michael_milad_CV
Ā 
Confluent Partner Tech Talk with SVA
Confluent Partner Tech Talk with SVAConfluent Partner Tech Talk with SVA
Confluent Partner Tech Talk with SVA
Ā 
3D Web Visualization 1
3D Web Visualization 13D Web Visualization 1
3D Web Visualization 1
Ā 
3D Web Visualization
3D Web Visualization 3D Web Visualization
3D Web Visualization
Ā 

Mehr von Christian Heindel

Nintex Forms als Ersatz fĆ¼r InfoPath?
Nintex Forms als Ersatz fĆ¼r InfoPath?Nintex Forms als Ersatz fĆ¼r InfoPath?
Nintex Forms als Ersatz fĆ¼r InfoPath?Christian Heindel
Ā 
MobileCamp 2014: on{x} - Google Now zum Selberbauen
MobileCamp 2014: on{x} - Google Now zum SelberbauenMobileCamp 2014: on{x} - Google Now zum Selberbauen
MobileCamp 2014: on{x} - Google Now zum SelberbauenChristian Heindel
Ā 
Social Workflows mit Nintex Workflow und SharePoint 2013
Social Workflows mit Nintex Workflow und SharePoint 2013Social Workflows mit Nintex Workflow und SharePoint 2013
Social Workflows mit Nintex Workflow und SharePoint 2013Christian Heindel
Ā 
Apps fĆ¼r SharePoint 2013 (Office Store, Windows 8, Windows Phone 8)
Apps fĆ¼r SharePoint 2013 (Office Store, Windows 8, Windows Phone 8)Apps fĆ¼r SharePoint 2013 (Office Store, Windows 8, Windows Phone 8)
Apps fĆ¼r SharePoint 2013 (Office Store, Windows 8, Windows Phone 8)Christian Heindel
Ā 
Scratch und LEGO WeDo - Wie mache ich mein Kind fit fĆ¼r SharePoint? ;-)
Scratch und LEGO WeDo - Wie mache ich mein Kind fit fĆ¼r SharePoint? ;-)Scratch und LEGO WeDo - Wie mache ich mein Kind fit fĆ¼r SharePoint? ;-)
Scratch und LEGO WeDo - Wie mache ich mein Kind fit fĆ¼r SharePoint? ;-)Christian Heindel
Ā 
Push-Benachrichtigungen in SharePoint via SignalR
Push-Benachrichtigungen in SharePoint via SignalRPush-Benachrichtigungen in SharePoint via SignalR
Push-Benachrichtigungen in SharePoint via SignalRChristian Heindel
Ā 
Collaboration Days 2011 - Mobile Anwendungen fĆ¼r SharePoint mit HTML5
Collaboration Days 2011 - Mobile Anwendungen fĆ¼r SharePoint mit HTML5Collaboration Days 2011 - Mobile Anwendungen fĆ¼r SharePoint mit HTML5
Collaboration Days 2011 - Mobile Anwendungen fĆ¼r SharePoint mit HTML5Christian Heindel
Ā 
SharePoint, HTML5 und mobile GerƤte (SharePoint UserGroup Dresden 11/2011)
SharePoint, HTML5 und mobile GerƤte (SharePoint UserGroup Dresden 11/2011)SharePoint, HTML5 und mobile GerƤte (SharePoint UserGroup Dresden 11/2011)
SharePoint, HTML5 und mobile GerƤte (SharePoint UserGroup Dresden 11/2011)Christian Heindel
Ā 
European SharePoint Conference: Mobile Applications for SharePoint using HTML5
European SharePoint Conference: Mobile Applications for SharePoint using HTML5European SharePoint Conference: Mobile Applications for SharePoint using HTML5
European SharePoint Conference: Mobile Applications for SharePoint using HTML5Christian Heindel
Ā 
Mobile applications for SharePoint using HTML5
Mobile applications for SharePoint using HTML5Mobile applications for SharePoint using HTML5
Mobile applications for SharePoint using HTML5Christian Heindel
Ā 

Mehr von Christian Heindel (10)

Nintex Forms als Ersatz fĆ¼r InfoPath?
Nintex Forms als Ersatz fĆ¼r InfoPath?Nintex Forms als Ersatz fĆ¼r InfoPath?
Nintex Forms als Ersatz fĆ¼r InfoPath?
Ā 
MobileCamp 2014: on{x} - Google Now zum Selberbauen
MobileCamp 2014: on{x} - Google Now zum SelberbauenMobileCamp 2014: on{x} - Google Now zum Selberbauen
MobileCamp 2014: on{x} - Google Now zum Selberbauen
Ā 
Social Workflows mit Nintex Workflow und SharePoint 2013
Social Workflows mit Nintex Workflow und SharePoint 2013Social Workflows mit Nintex Workflow und SharePoint 2013
Social Workflows mit Nintex Workflow und SharePoint 2013
Ā 
Apps fĆ¼r SharePoint 2013 (Office Store, Windows 8, Windows Phone 8)
Apps fĆ¼r SharePoint 2013 (Office Store, Windows 8, Windows Phone 8)Apps fĆ¼r SharePoint 2013 (Office Store, Windows 8, Windows Phone 8)
Apps fĆ¼r SharePoint 2013 (Office Store, Windows 8, Windows Phone 8)
Ā 
Scratch und LEGO WeDo - Wie mache ich mein Kind fit fĆ¼r SharePoint? ;-)
Scratch und LEGO WeDo - Wie mache ich mein Kind fit fĆ¼r SharePoint? ;-)Scratch und LEGO WeDo - Wie mache ich mein Kind fit fĆ¼r SharePoint? ;-)
Scratch und LEGO WeDo - Wie mache ich mein Kind fit fĆ¼r SharePoint? ;-)
Ā 
Push-Benachrichtigungen in SharePoint via SignalR
Push-Benachrichtigungen in SharePoint via SignalRPush-Benachrichtigungen in SharePoint via SignalR
Push-Benachrichtigungen in SharePoint via SignalR
Ā 
Collaboration Days 2011 - Mobile Anwendungen fĆ¼r SharePoint mit HTML5
Collaboration Days 2011 - Mobile Anwendungen fĆ¼r SharePoint mit HTML5Collaboration Days 2011 - Mobile Anwendungen fĆ¼r SharePoint mit HTML5
Collaboration Days 2011 - Mobile Anwendungen fĆ¼r SharePoint mit HTML5
Ā 
SharePoint, HTML5 und mobile GerƤte (SharePoint UserGroup Dresden 11/2011)
SharePoint, HTML5 und mobile GerƤte (SharePoint UserGroup Dresden 11/2011)SharePoint, HTML5 und mobile GerƤte (SharePoint UserGroup Dresden 11/2011)
SharePoint, HTML5 und mobile GerƤte (SharePoint UserGroup Dresden 11/2011)
Ā 
European SharePoint Conference: Mobile Applications for SharePoint using HTML5
European SharePoint Conference: Mobile Applications for SharePoint using HTML5European SharePoint Conference: Mobile Applications for SharePoint using HTML5
European SharePoint Conference: Mobile Applications for SharePoint using HTML5
Ā 
Mobile applications for SharePoint using HTML5
Mobile applications for SharePoint using HTML5Mobile applications for SharePoint using HTML5
Mobile applications for SharePoint using HTML5
Ā 

KĆ¼rzlich hochgeladen

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
Ā 
Finology Group ā€“ Insurtech Innovation Award 2024
Finology Group ā€“ Insurtech Innovation Award 2024Finology Group ā€“ Insurtech Innovation Award 2024
Finology Group ā€“ Insurtech Innovation Award 2024The Digital Insurer
Ā 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
Ā 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
Ā 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel AraĆŗjo
Ā 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
Ā 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
Ā 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
Ā 
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
Ā 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
Ā 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
Ā 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
Ā 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
Ā 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
Ā 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
Ā 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
Ā 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
Ā 
Scaling API-first ā€“ The story of a global engineering organization
Scaling API-first ā€“ The story of a global engineering organizationScaling API-first ā€“ The story of a global engineering organization
Scaling API-first ā€“ The story of a global engineering organizationRadu Cotescu
Ā 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
Ā 

KĆ¼rzlich hochgeladen (20)

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
Ā 
Finology Group ā€“ Insurtech Innovation Award 2024
Finology Group ā€“ Insurtech Innovation Award 2024Finology Group ā€“ Insurtech Innovation Award 2024
Finology Group ā€“ Insurtech Innovation Award 2024
Ā 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
Ā 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
Ā 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Ā 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
Ā 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
Ā 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
Ā 
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...
Ā 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Ā 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
Ā 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Ā 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Ā 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
Ā 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Ā 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
Ā 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
Ā 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
Ā 
Scaling API-first ā€“ The story of a global engineering organization
Scaling API-first ā€“ The story of a global engineering organizationScaling API-first ā€“ The story of a global engineering organization
Scaling API-first ā€“ The story of a global engineering organization
Ā 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
Ā 

Realtime applications for SharePoint with SignalR and knockout.js

  • 1. Realtime applications for SharePoint with SignalR and knockout.js Communardo Software GmbH Christian Heindel SignalR @c_heindel
  • 2. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de Agenda 2 Realtime applications ā€¢ Goals, use cases, examples Push technologies ā€¢ WebSockets, Comet SignalR ā€¢ Connections and hubs ā€¢ Client libraries, supported platforms, scalability MVVM in JavaScript ā€¢ knockout.js, jQuery, JSON, oDATA Events in SharePoint ā€¢ Overview Bringing it all together ā€¢ SharePoint 2010 ā€¢ SharePoint 2013 ā€¢ SharePoint Online
  • 3. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de Agenda 3 Realtime applications ā€¢ Goals, use cases, examples Push technologies ā€¢ WebSockets, Comet SignalR ā€¢ Connections and hubs ā€¢ Client libraries, supported platforms, scalability MVVM in JavaScript ā€¢ knockout.js, jQuery, JSON, oDATA Events in SharePoint ā€¢ Overview Bringing it all together ā€¢ SharePoint 2010 ā€¢ SharePoint 2013 ā€¢ SharePoint Online
  • 4. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de Goals Improve user experience Reduce server load
  • 5. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de Use cases In general ā€¢ Adjust prices in real-time, e.g. for flight tickets ā€¢ Show new comments as they come in ā€¢ Activity streams In SharePoint ā€¢ Show changes to list items ā€¢ "Who is online?" ā€¢ Chat / Shoutbox ā€¢ Download counter ā€¢ Task status dashboard ā€¢ ā€¦
  • 6. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de TFS ā€“ Team Room Quelle: http://tfs.visualstudio.com/en-us/news/2013-jun-3
  • 7. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de Shopping cart Quelle: http://tech.pro/tutorial/1146/building-a-shopping-cart-with-signalr-aspnet-web-api-and-knockoutjs
  • 8. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de Example: Stock Ticker
  • 9. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de Download counter Quelle: http://melcher.it/2012/05/signalr-and-sharepoint-live-download-tracking/
  • 10. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de Upload visualizer Quelle: http://blog-aspc.azurewebsites.net/sharepoint-with-signalr/
  • 11. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de Realtime ASP.NET Web API tracing with SignalR Video: http://www.strathweb.com/ 2012/11/realtime-asp-net-web- api-tracing-with-signalr/
  • 12. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de JabbR Collaborative chat done right ā€¢ Project: http://about.jabbr.net/ ā€¢ Code: https://github.com/JabbR/JabbR ā€¢ Live demo: https://jabbR.net
  • 13. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de Example: ShootR ā€¢ Multiplayer space ship game built on the SignalR framework. ā€¢ Code: https://github.com/ ntaylormullen/shootr ā€¢ Live demo: http://shootr.signalr.net/
  • 14. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de Example: Tic-Tac-Toe ā€¢ Code: https://github.com/fekberg/Tic-Tac-Toe ā€¢ Live demo: http://signalr-tictactoe.azurewebsites.net/
  • 15. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de http://www.christian-heindel.de/SignalRServer/ 15
  • 16. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de Agenda 16 Realtime applications ā€¢ Goals, use cases, examples Push technologies ā€¢ WebSockets, Comet SignalR ā€¢ Connections and hubs ā€¢ Client libraries, supported platforms, scalability MVVM in JavaScript ā€¢ knockout.js, jQuery, JSON, oDATA Events in SharePoint ā€¢ Overview Bringing it all together ā€¢ SharePoint 2010 ā€¢ SharePoint 2013 ā€¢ SharePoint Online
  • 17. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de Refresh a page after it has loaded How you could try itā€¦ ā€¢ Client pull ā€¢ F5, Ctrl+F5, press the ā€œDelete cacheā€ button hard and often, then F5 ā€¢ Polling: AJAX Request every 60 seconds? Every 5 seconds? How you should do itā€¦ ā€¢ Server push ā€¢ WebSocket connection ā€¢ Comet techniques as fallback
  • 18. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de Comet (a.k.a. Ajax Push, Reverse Ajax, HTTP Streaming, HTTP server push) ā€¢ No page-by-page request or polling, but a long-held HTTP request ā€¢ Biggest problem: HTTP 1.1 (max. 2 simultaneous connections) ā€¢ Streaming: ā€¢ Hidden iFrame ā€¢ XMLHttpRequest ā€¢ Ajax with long polling ā€¢ XMLHttpRequest with long polling ā€¢ Script tag long polling
  • 19. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de WebSockets ā€¢ Full-duplex communication channel over a single TCP connection ā€¢ Persistent connection ā€¢ Cross origin support built in (CORS) ā€¢ IETF RFC 6455 ā€¢ Port 80 ā€¢ WebSockets API (W3C Recommendation) ā€¢ Web browser + web server need to implement it ā€¢ IIS 8.0, Apache 2.x, nginx 1.3.13+, lighttpd, node.js, ā€¦ ā€¢ Google Chrome 14+, Internet Explorer 10+, Firefox 6+, Safari 6+ and Opera 12.10+
  • 20. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de caniuse.com
  • 21. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de Agenda 21 Realtime applications ā€¢ Goals, use cases, examples Push technologies ā€¢ WebSockets, Comet SignalR ā€¢ Connections and hubs ā€¢ Client libraries, supported platforms, scalability MVVM in JavaScript ā€¢ knockout.js, jQuery, JSON, oDATA Events in SharePoint ā€¢ Overview Bringing it all together ā€¢ SharePoint 2010 ā€¢ SharePoint 2013 ā€¢ SharePoint Online
  • 22. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de ASP.NET SignalR ā€¢ SignalR started in July 2011 as a project by ā€¢ David Fowler (Senior Software Design Engineer, ASP.NET Team) ā€¢ Damien Edwards (Senior Program Manager, Microsoft) ā€¢ Now official part of the ASP.NET Technologies: http://asp.net/signalr ā€¢ MSDN documentation (since 03/2013): http://msdn.microsoft.com/en-us/library/jj891071(v=vs.111).aspx ā€¢ Source code on GitHub ā€¢ Available via NuGet Gallery (22.000+ downloads in last 6 weeks)
  • 23. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de Introduction to SignalR
  • 24. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de SignalR: Features ā€¢ Ready to use libraries for server and clients ā€¢ Automatic connection management (send to all clients, to specific clients) ā€¢ Uses WebSockets when available, fallback otherwise (abstraction layer) ā€¢ Scale out to thousands of clients
  • 25. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de SignalR: Transports and fallbacks HTML 5 transports These transports depend on support for HTML 5. If the client browser does not support the HTML 5 standard, older transports will be used. ā€¢ WebSocket ā€¢ Server Sent Events, also known as EventSource (if the browser supports Server Sent Events, which is basically all browsers except Internet Explorer.) Comet transports The following transports are based on the Comet web application model, in which a browser or other client maintains a long-held HTTP request, which the server can use to push data to the client without the client specifically requesting it. ā€¢ Forever Frame ā€¢ for Internet Explorer only, hidden Iframe, one-way realtime connection from server to client, connection from client to server uses a separate connection, a new connection is created for each piece of data that needs to be sent ā€¢ Ajax long polling ā€¢ no persistent connection, but instead polling the server with a request that stays open until the server responds, at which point the connection closes, and a new connection is requested immediately, latency while the connection resets
  • 26. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de SignalR: Architecture diagram
  • 27. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de SignalR: Connections - Simple endpoint for sending single-recipient, grouped, or broadcast messages - Connection API (represented in .NET code by the PersistentConnection class) - direct access to the low-level communication network that SignalR exposes - familiar to developers who have used connection-based APIs such as Windows Communication Foundation
  • 28. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de SignalR: Hubs - high-level pipeline built upon the Connection API - allows client and server to call methods on each other directly - SignalR handles dispatching across machine boundaries as if by magic - For different types of messages, it is recommended that you use the Hub class, so that you won't have to create your own dispatching - using the Hub, you can call methods on the clients, rather than sending an explicit message that needs to be received, interpreted, and acted upon - familiar to developers who have used remote invocation APIs such as .NET Remoting
  • 29. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de SignalR: Supported platforms (server side) http://blogs.msdn.com/b/timlee/archive/2013/02/27/deploy-the-signalr-getting-started-sample-as-a-windows-azure-web-site.aspx
  • 30. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de SignalR: Supported platforms (client side) ā€¢ Browsers (JavaScript) ā€¢ Windows Desktop (Forms) ā€¢ Silverlight ā€¢ Windows Store (.NET) ā€¢ Windows Store (JavaScript) ā€¢ Windows Phone (IE) ā€¢ Windows Phone (.NET) ā€¢ Console ā€¢ Web Services ā€¢ iOS (Objective-C) ā€¢ ā€¦
  • 31. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de SignalR: System requirements (Windows) ā€¢ On Facebook youā€Ÿd say: ā€œItā€Ÿs complicated.ā€ ā€¢ Excerpt from the documentation: ā€¢ Server: 2012*, 2008 r2, Azure Website, Windows 8*, Windows 7 ā€¢ .NET Framework: 4.0 / 4.5* ā€¢ IIS: 7,7.5,8*, 8 Express* ā€¢ Browser: IE10* ā€¢ Silverlight: N/A (restr. 5+) ā€¢ WP8: IE* (restr. WP8 App) ā€¢ Only * supports WebSocketsā€¦ ļŒ
  • 32. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de SignalR: Performance and scalability (I) ā€¢ Standard limit in IIS: 5.000 connections per CPU ā€¢ You can override this limit! ā€¢ For SignalR about 20.000 connections per CPU usually also work, depends on your appliactionā€¦ ā€¢ Special load test tool available: https://github.com/SignalR/SignalR/tree/dev/src/Microsoft.AspNet.SignalR.Crank
  • 33. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de SignalR: Performance and scalability (II) ā€¢ ScaleOut providers available since SignalR 1.1 ā€¢ Azure Service Bus ā€¢ SQL Server ā€¢ Redis
  • 34. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de SignalR: Performance and scalability (III) ā€¢ Helpful documentation on MSDN library ā€¢ How to notify the user about disconnections ā€¢ How to continuously reconnect $.connection.hub.connectionSlow(function() { notifyUserOfConnectionProblem(); // Your function to notify user. }); $.connection.hub.disconnected(function() { setTimeout(function() { $.connection.hub.start(); }, 5000); // Restart connection after 5 seconds. });
  • 35. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de Agenda 35 Realtime applications ā€¢ Goals, use cases, examples Push technologies ā€¢ WebSockets, Comet SignalR ā€¢ Connections and hubs ā€¢ Client libraries, supported platforms, scalability MVVM in JavaScript ā€¢ knockout.js, jQuery, JSON, oDATA Events in SharePoint ā€¢ Overview Bringing it all together ā€¢ SharePoint 2010 ā€¢ SharePoint 2013 ā€¢ SharePoint Online
  • 36. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de Why MVVM in JavaScript? ā€¢ Separate design from code ā€¢ Two-way DataBinding for properties ā€¢ Command binding ā€¢ Templates
  • 37. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de Which framework to choose? knockout.js (Microsoft) spine.js SproutCore JavascriptMVC ember.js Angluar.js (Google) ā€¦ 37
  • 38. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de knockout.js ā€¢ Simplify dynamic JavaScript UIs by applying the Model-View- View Model (MVVM) pattern ā€¢ By Steve Sanderson (Microsoft employee), inspired by XAML, supports legacy browsersā€¦ Declarative Bindings Easily associate DOM elements with model data using a concise, syntaxreadable Automatic UI Refresh When your data model's state changes, your UI updates automatically Dependency Tracking Implicitly set up chains of relationships between model data, to transform and combine it Templating Quickly generate sophisticated, nested UIs as a function of your model data
  • 39. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de knockout.js Load JavaScript: DataBinding in HTML: Define ViewModel: Start listening: Refresh values:
  • 40. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de knockout.js Load JavaScript: DataBinding in HTML: Define ViewModel: Start listening: Refresh values: JSON?
  • 41. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de JSON ā€“ JavaScript Object Notation ā€¢ Derived from JavaScript ā€¢ Language independant ā€¢ Human readable ā€¢ Specified by Douglas Crockford in RFC 4627 ā€¢ json.org launched in 2002 { "id": 1, "name": "Foo", "price": 123, "tags": [ "Bar", "Eek" ], "stock": { "warehouse": 300, "retail": 20 } }
  • 42. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de oDATA ā€“ Open Data Protocol ā€¢ standardized protocol for creating and consuming data APIs ā€¢ builds on REST web services ā€¢ uniform way to expose full-featured data APIs ā€¢ from Microsoft, submitted as OASIS standard ā€¢ AtomPub protocol as envelope for JSON ā€¢ REST methods available on sources ā€¢ http://www.odata.org/
  • 43. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de oDATA ā€“ Open Data Protocol ā€¢ standardized protocol for creating and consuming data APIs ā€¢ builds on REST web services ā€¢ uniform way to expose full-featured data APIs ā€¢ from Microsoft, submitted as OASIS standard ā€¢ AtomPub protocol as envelope for JSON ā€¢ REST methods available on sources ā€¢ http://www.odata.org/
  • 44. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de Agenda 44 Realtime applications ā€¢ Goals, use cases, examples Push technologies ā€¢ WebSockets, Comet SignalR ā€¢ Connections and hubs ā€¢ Client libraries, supported platforms, scalability MVVM in JavaScript ā€¢ knockout.js, jQuery, oDATA, JSON) Events in SharePoint ā€¢ Overview Bringing it all together ā€¢ SharePoint 2010 ā€¢ SharePoint 2013 ā€¢ SharePoint Online
  • 45. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de Events in SharePoint Synchronous or asynchronous (before or after) Local, app or remote (new in SP2013)
  • 46. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de Events in SharePoint ā€¢ Item events adding, added, deleting, deleted, updating, updated, fileconverted, filemoving, filemoved, checkingin, checkedin, checkingout, checked out, attachmentadding, attachmentadded, attachmentdeleting, attachmentdeleted ā€¢ List field events adding, added, deleting, deleted, updating, updated ā€¢ List events adding, added, deleting, deleted ā€¢ Web events adding, provisioned, deleting, deleted, moving, moved ā€¢ Site events deleting, deleted ā€¢ App events installed, uninstalling, upgraded ā€¢ And moreā€¦ EmailReceived, WorkflowCompleted, WorkflowPostponed, WorkflowStarted, WorkflowStarting, FeatureEventReceiver installation, activation, deactivation, and removal
  • 47. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de Agenda 47 Realtime applications ā€¢ Goals, use cases, examples Push technologies ā€¢ WebSockets, Comet SignalR ā€¢ Connections and hubs ā€¢ Client libraries, supported platforms, scalability MVVM in JavaScript ā€¢ knockout.js, jQuery, JSON, oDATA Events in SharePoint ā€¢ Overview Bringing it all together ā€¢ SharePoint 2010 ā€¢ SharePoint 2013 ā€¢ SharePoint Online
  • 48. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de Integration in SharePoint (on-premises) SharePoint 2010 ā€¢ uses .NET Framework 3.5 ā€¢ SignalR requires .NET Framework 4.0 / 4.5 ā€¢ ļƒ  Coding of a proxy necessary (WCF, HttpHandler or similar) SharePoint 2013 ā€¢ uses .NET Framework 4.0 But: ā€¢ SignalR attaches itself to the ā€žApp_Startā€œ event and registers a route ā€ž~/signalr/hubsā€œ (so that clients always find the hub) ā€¢ In SharePoint, there is no ā€žApp_Startā€œ! ĀÆ_(惄)_/ĀÆ Global.asax cannot be modified in a way that deployableļƒ solution: write a HttpModule
  • 49. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de Integration in SharePoint (on-premises) So in order to get it working you have to write: ā€¢ HttpModule ā€¢ SPWebConfigModificationHandler ā€¢ VirtualPathProvider Thanks to Max Melcher, you donā€žt have to: Go to Codeplex SPSignalR - real-time applications with SharePoint 2013 ā€¢ enables you to host SignalR in a SharePoint WebApplication ā€¢ web application feature, AppPool recycle, yoursharepoint.com/signalr/hubs
  • 50. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de Weak points ā€¢ CORS (cross site scripting) ā€¢ Different browsers handle this with different successā€¦ ;-) ā€¢ Proxying required
  • 51. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de Integration in SharePoint Online (I) ā€¢ Remote Event Receiver - Declaration
  • 52. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de Integration in SharePoint Online (II) ā€¢ Remote Event Receiver - Implementation
  • 53. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de Integration in SharePoint Online (III) ā€¢ SignalRHub in same project as RemoteEventReceiver
  • 54. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de CODE 54
  • 55. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de Agenda 55 Realtime applications ā€¢ Goals, use cases, examples Push technologies ā€¢ WebSockets, Comet SignalR ā€¢ Connections and hubs ā€¢ Client libraries, supported platforms, scalability MVVM in JavaScript ā€¢ knockout.js, jQuery, JSON, oDATA Events in SharePoint ā€¢ Overview Bringing it all together ā€¢ SharePoint 2010 ā€¢ SharePoint 2013 ā€¢ SharePoint Online
  • 56. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de Resources ā€¢ Active community ā€¢ Forums: http://forums.asp.net/1254.aspx ā€¢ Github: We've found 493 repository results ā€¢ Official website: http://asp.net/SignalR ā€¢ Videos: http://channel9.msdn.com/search?term=signalr ā€¢ Trainings: http://www.pluralsight.com/training/Courses/TableOfContents/signalr- introduction ā€¢ JavaScript libraries: Angular, http://smoothiecharts.org/ ā€¢ Books: Pushing Data: Integrating with ASP.NET SignalR Hubs http://henriquat.re/server- integration/signalr/integrateWithSignalRHubs.html ā€¢ More links: https://delicious.com/c.heindel/signalr
  • 57. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de Open Source projects using SignalR JabbR ā€¢ JabbR is an open source, real-time web chat system built using ASP.NET and SignalR. Source code is at https://github.com/davidfowl/jabbr. ShootR ā€¢ ShootR is an open source, real-time, multi-player HTML5 space shooter game, using SignalR for real-time server-client communications. Source code is at https://github.com/NTaylorMullen/ShootR. ElmahR = ELMAH & SignalR ā€¢ A real-time monitoring solution for ASP.NET applications built with ELMAH and SignalR. SignalR-ObjC ā€¢ A community maintained Objective-C client for SignalR, for use with iOS and Mac.
  • 58. SeiteĀ© Communardo Software GmbH Ā· KleiststraƟe 10 a Ā· D-01129 Dresden/Germany Ā· Fon +49 (351) 833 82-0 Ā· Mail info@communardo.de Ā· www.communardo.de Communardo Software GmbH KleiststraƟe 10 a 01129 Dresden http://www.communardo.de info@communardo.de Phone: +49 (351) 833 820 Standort Stuttgart Leinfelder StraƟe 64 70771 Leinfelden-Echterdingen Phone: +49 (711) 722 497 09 Thank you for listening! 58 Christian Heindel info@christian-heindel.de www.communardo.de Mobile: +49 (0) 171 - 3123924 Twitter: @c_heindel Blog: http://blog.christian-heindel.de Blog: http://www.communardo.de/techblog/