Realtime applications for SharePoint with SignalR and knockout.js
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Realtime applications for SharePoint with SignalR and knockout.js

am

  • 3,596 Views

As seen at http://www.shareconf.de/

As seen at http://www.shareconf.de/

Statistiken

Views

Gesamtviews
3,596
Views auf SlideShare
2,808
Views einbetten
788

Actions

Gefällt mir
3
Downloads
29
Kommentare
1

2 Einbettungen 788

http://www.scoop.it 785
https://twitter.com 3

Zugänglichkeit

Kategorien

Details hochladen

Uploaded via as Microsoft PowerPoint

Benutzerrechte

© Alle Rechte vorbehalten

Report content

Als unangemessen gemeldet Als unangemessen melden
Als unangemessen melden

Wählen Sie Ihren Grund, warum Sie diese Präsentation als unangemessen melden.

Löschen
  • Full Name Full Name Comment goes here.
    Sind Sie sicher, dass Sie...
    Ihre Nachricht erscheint hier
    Processing...
  • Here is a step-by-step tutorial on how to create a SignalR App for SharePoint 2013 and Office365 http://spmatt.wordpress.com/2013/08/21/harnessing-signalr-in-sharepoint-2013-office-365/
    Sind Sie sicher, dass Sie...
    Ihre Nachricht erscheint hier
    Processing...
Kommentar posten
Kommentar bearbeiten

Realtime applications for SharePoint with SignalR and knockout.js Presentation Transcript

  • 1. Realtime applications forSharePoint withSignalR and knockout.jsCommunardo Software GmbHChristian HeindelSignalR@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.deAgenda2Realtimeapplications• Goals, use cases,examplesPush technologies• WebSockets, CometSignalR• Connections and hubs• Client libraries,supported platforms,scalabilityMVVM in JavaScript• knockout.js, jQuery,JSON, oDATAEvents inSharePoint• OverviewBringing it alltogether• 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.deAgenda3Realtimeapplications• Goals, use cases,examplesPush technologies• WebSockets, CometSignalR• Connections and hubs• Client libraries,supported platforms,scalabilityMVVM in JavaScript• knockout.js, jQuery,JSON, oDATAEvents inSharePoint• OverviewBringing it alltogether• 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.deGoalsImprove user experienceReduce 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.deUse casesIn general• Adjust prices in real-time,e.g. for flight tickets• Show new comments asthey come in• Activity streamsIn 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.deTFS – Team RoomQuelle: 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.deShopping cartQuelle: 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.deExample: 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.deDownload counterQuelle: 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.deUpload visualizerQuelle: 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.deRealtime ASP.NET Web API tracing with SignalRVideo: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.deJabbRCollaborative 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.deExample: ShootR• Multiplayer space shipgame built on theSignalR 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.deExample: 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.dehttp://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.deAgenda16Realtimeapplications• Goals, use cases,examplesPush technologies• WebSockets, CometSignalR• Connections and hubs• Client libraries,supported platforms,scalabilityMVVM in JavaScript• knockout.js, jQuery,JSON, oDATAEvents inSharePoint• OverviewBringing it alltogether• 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.deRefresh a page after it has loadedHow you could try it…• Client pull• F5, Ctrl+F5, press the “Deletecache” button hard and often,then F5• Polling: AJAX Request every 60seconds? 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.deComet (a.k.a. Ajax Push, Reverse Ajax, HTTP Streaming, HTTP server push)• No page-by-page request or polling, but a long-held HTTPrequest• 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.deWebSockets• 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 Opera12.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.decaniuse.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.deAgenda21Realtimeapplications• Goals, use cases,examplesPush technologies• WebSockets, CometSignalR• Connections and hubs• Client libraries,supported platforms,scalabilityMVVM in JavaScript• knockout.js, jQuery,JSON, oDATAEvents inSharePoint• OverviewBringing it alltogether• 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.deASP.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.deIntroduction 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.deSignalR: 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.deSignalR: Transports and fallbacksHTML 5 transportsThese transports depend on support for HTML 5. If the client browser does not support the HTML 5 standard, oldertransports will be used.• WebSocket• Server Sent Events, also known as EventSource (if the browser supports Server Sent Events, which is basically allbrowsers except Internet Explorer.)Comet transportsThe following transports are based on the Comet web application model, in which a browser or other client maintains along-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 aseparate 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 theconnection 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.deSignalR: 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.deSignalR: Connections- Simple endpoint for sending single-recipient, grouped, orbroadcast messages- Connection API (represented in .NET code by thePersistentConnection class)- direct access to the low-level communication network thatSignalR exposes- familiar to developers who have used connection-based APIssuch 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.deSignalR: 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, sothat you wont have to create your own dispatching- using the Hub, you can call methods on the clients, rather than sending an explicitmessage that needs to be received, interpreted, and acted upon- familiar to developers who have used remote invocation APIs such as .NETRemoting
  • 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.deSignalR: 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.deSignalR: 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.deSignalR: 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.deSignalR: 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 alsowork, 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.deSignalR: 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.deSignalR: 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.deAgenda35Realtimeapplications• Goals, use cases,examplesPush technologies• WebSockets, CometSignalR• Connections and hubs• Client libraries,supported platforms,scalabilityMVVM in JavaScript• knockout.js, jQuery,JSON, oDATAEvents inSharePoint• OverviewBringing it alltogether• 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.deWhy 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.deWhich framework to choose?knockout.js(Microsoft)spine.js SproutCore JavascriptMVC ember.jsAngluar.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.deknockout.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 BindingsEasily associate DOMelements with model datausing a concise,syntaxreadableAutomatic UI RefreshWhen your data modelsstate changes, your UIupdates automaticallyDependency TrackingImplicitly set up chains ofrelationships betweenmodel data, to transformand combine itTemplatingQuickly generatesophisticated, nested UIsas a function of your modeldata
  • 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.deknockout.jsLoad 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.deknockout.jsLoad 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.deJSON – JavaScript Object Notation• Derived from JavaScript• Language independant• Human readable• Specified by Douglas Crockfordin 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.deoDATA – 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 asenvelope for JSON• REST methods availableon 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.deoDATA – 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 asenvelope for JSON• REST methods availableon 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.deAgenda44Realtimeapplications• Goals, use cases,examplesPush technologies• WebSockets, CometSignalR• Connections and hubs• Client libraries,supported platforms,scalabilityMVVM in JavaScript• knockout.js, jQuery,oDATA, JSON)Events inSharePoint• OverviewBringing it alltogether• 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.deEvents in SharePointSynchronous orasynchronous(before or after)Local, app orremote (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.deEvents in SharePoint• Item eventsadding, added,deleting, deleted,updating, updated,fileconverted,filemoving, filemoved,checkingin,checkedin,checkingout, checkedout,attachmentadding,attachmentadded,attachmentdeleting,attachmentdeleted• List field eventsadding, added,deleting, deleted,updating, updated• List eventsadding, added,deleting, deleted• Web eventsadding, provisioned,deleting, deleted,moving, moved• Site eventsdeleting, deleted• App eventsinstalled, uninstalling,upgraded• And more…EmailReceived,WorkflowCompleted,WorkflowPostponed,WorkflowStarted,WorkflowStarting,FeatureEventReceiverinstallation, activation,deactivation, andremoval
  • 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.deAgenda47Realtimeapplications• Goals, use cases,examplesPush technologies• WebSockets, CometSignalR• Connections and hubs• Client libraries,supported platforms,scalabilityMVVM in JavaScript• knockout.js, jQuery,JSON, oDATAEvents inSharePoint• OverviewBringing it alltogether• 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.deIntegration 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.0But:• 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.deIntegration in SharePoint (on-premises)So in order to get it working you have to write:• HttpModule• SPWebConfigModificationHandler• VirtualPathProviderThanks to Max Melcher, you don„t have to: Go to CodeplexSPSignalR - 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.deWeak 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.deIntegration 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.deIntegration 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.deIntegration 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.deCODE54
  • 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.deAgenda55Realtimeapplications• Goals, use cases,examplesPush technologies• WebSockets, CometSignalR• Connections and hubs• Client libraries,supported platforms,scalabilityMVVM in JavaScript• knockout.js, jQuery,JSON, oDATAEvents inSharePoint• OverviewBringing it alltogether• 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.deResources• Active community• Forums: http://forums.asp.net/1254.aspx• Github: Weve 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 Hubshttp://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.deOpen Source projects using SignalRJabbR• 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 SignalRfor real-time server-client communications. Source code is athttps://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.deCommunardo SoftwareGmbHKleiststraße 10 a01129 Dresdenhttp://www.communardo.deinfo@communardo.dePhone: +49 (351) 833 820Standort StuttgartLeinfelder Straße 6470771 Leinfelden-EchterdingenPhone: +49 (711) 722 497 09Thank you for listening!58Christian Heindelinfo@christian-heindel.dewww.communardo.deMobile: +49 (0) 171 - 3123924Twitter: @c_heindelBlog: http://blog.christian-heindel.deBlog: http://www.communardo.de/techblog/