SlideShare une entreprise Scribd logo
1  sur  19
SignalR   Asynchrone
          Echtzeitanwendungen in
          SharePoint mit
          SignalR und knockout.JS

          Christian Heindel    @c_heindel
          christian.heindel@communardo.de
Vor einem Jahr…

   SignalR ist ein Projekt von
   • David Fowler
     (Senior Software Design Engineer, ASP.NET Team)
   • Damien Edwards
     (Senior Program Manager, Microsoft)

   GitHub, Nuget Gallery, SignalR 0.5

   ShareCamp 2012
   Christian Heindel:
   Push-Benachrichtigungen in SharePoint via SignalR

© Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de   Seite   2
Folien ShareCamp 2012

   http://de.slideshare.net/c.heindel/pushbenachricht
   igungen-in-sharepoint-via-signalr




© Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de   Seite   3
Mittlerweile…

   • SignalR offiziell zu ASP.NET aufgenommen
   • Größeres Team bei Microsoft (z.B. Patrick Fletcher)
   • Professionelle Software- und Lasttests ;-)
   • fast 50.000 Downloads via nuget
   • Zusätzliche Open Source-Bibliotheken und Projekte
     entstehen, z.B. SignalR-ObjC @ GitHub (für iOS and Mac)
   • Jabbr.net (mächtig!)
   • IE10 (Yippie!)




© Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de   Seite   4
Mittlerweile…

   • Mai 2012: DEMO: Max Melcher (Download-Tracking)
   • November 2012: DEMO: Realtime ASP.NET Web API
     tracing with SignalR
   • Dezember 2012: Max Melcher schwitzt und flucht:
     http://melcher.it/2012/12/signalr-in-sharepoint-2013-the-
     real-time-web-is-coming/
   • Dezember 2012: SignalR on Mono rücken näher
     zusammen (Link)
   • Februar 2013: Channel 9 veröffentlicht Video
     Building Web Apps with ASP.NET Jump Start: (08) Real-
     time Communication with SignalR (Link, 53m)
   • Februar 2013: Publish the SignalR Getting Started Sample
     as a Windows Azure Web Site
© Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de   Seite   5
Mittlerweile…

   • März 2013: Ergänzung zur Download DEMO, ein Upload-
     Beispiel (BEKK)
   • März 2013: Christian Weyer: 3h 28m, Intermediate
     Introducing ASP.NET SignalR - Push Services with
     Hubs (Link)
   • März 2013: MSDN Dokumentation verfügbar
   • März 2013: Shopping Cart Beispiel
   • Seit 2 Tagen:
     12.04.13: SignalR 1.1.0beta
     (mit ScaleOut Providern für Redis, SqlServer and Azure
     Service Bus)
   • ShareCamp 2013…

© Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de   Seite   6
Was ist SignalR?




© Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de   Seite   7
Transportwege und Fallbacks

   •      WebSockets
   •      Server Sent Events
   •      Forever Frame
   •      Ajax long polling

   (Dokumentation)




© Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de   Seite   8
Modell 1: Connection

   http://www.asp.net/signalr/overview/introduction/connections-and-hubs


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




© Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de   Seite   9
Modell 2: Hub

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


© Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de   Seite   10
Systemanforderungen

   Auf Facebook würde man schreiben: “Es ist kompliziert”

   Auszug aus der Dokumentation:

   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)

   Nur * unterstützt auch Websockets

© Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de   Seite   11
Lastgrenzen / Lasttest

   • Standardlimit im IIS: 5.000 Verbindungen pro CPU
   • Für SignalR gehen z.B. auch 20.000 Verbindungen
   • Spezielle Protokolle erfordern spezielles Lasttestwerkzeug
          https://github.com/SignalR/SignalR/tree/dev/src/Microsoft.AspNet.SignalR.Crank




© Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de   Seite   12
Open Source


   The source code for ASP.NET SignalR is
   available under an open source license.
   Developers outside of Microsoft may
   submit patches and code contributions
   that the Microsoft development team will
   review for potential inclusion.
   The framework continues to be fully
   support and staffed by Microsoft.
© Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de   Seite   13
Forum

   http://forums.asp.net/1254.aspx




© Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de   Seite   14
SharePoint macht mal wieder nur Probleme…

   SharePoint 2010
   • SharePoint verwendet .NET Framework 3.5
   • SignalR benötigt .NET Framework 4.0 / 4.5
   •  Proxy notwendig (WCF, HttpHandler o.ä.)

   SharePoint 2013
   • .NET Framework 4.0

   Aber:
   • Normalerweise hängt sich SignalR an „App_Start“ Event und registriert
     die Route „~/signalr/hubs“ (Clients finden damit immer den Hub)
   • In SharePoint gibt es aber kein „App_Start“! ¯_(ツ)_/¯
     Global.asax kann man nicht automatisch deploybar anpassen
     Lösung: HttpModule (Link)
© Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de   Seite   15
Derzeitige Lösung für SharePoint 2013

   • HttpModule
   • SPWebConfigModificationHandler
   • VirtualPathProvider

   <SanftenDruckErhoehen>
   Nette Verpackung als Open Source Lösung von Max Melcher geplant… ;-)
   </SanftenDruckErhoehen>




© Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de   Seite   16
© Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de   Seite   17
Alternative

   Socket.IO (Framwork für node.js)




   NowJS (ein node.js Modul)




© Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de   Seite   18
Kontakt

                                                 Communardo Software
                                                 GmbH
                                                 Kleiststraße 10 a
                                                 01129 Dresden
                                                 http://www.communardo.de
                                                 info@communardo.de

                                                 Telefon: +49 (351) 833 820

                                                                                                                Standort Stuttgart
                                                                                                                Leinfelder Straße 64
                                                                                                                70771 Leinfelden-Echterdingen

                                                                                                                Telefon: +49 (711) 722 497 09




                              Christian Heindel
                              christian.heindel@communardo.de
                              www.communardo.de

                              Telefon: +49 (351) 833 82-234




© Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de   Seite   19

Contenu connexe

Plus de Christian 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
 
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
 
Realtime applications for SharePoint with SignalR and knockout.js
Realtime applications for SharePoint with SignalR and knockout.jsRealtime applications for SharePoint with SignalR and knockout.js
Realtime applications for SharePoint with SignalR and knockout.jsChristian 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
 
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
 

Plus de Christian Heindel (9)

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)
 
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
 
Realtime applications for SharePoint with SignalR and knockout.js
Realtime applications for SharePoint with SignalR and knockout.jsRealtime applications for SharePoint with SignalR and knockout.js
Realtime applications for SharePoint with SignalR and knockout.js
 
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
 
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
 

SignalR beim ShareCamp 2013

  • 1. SignalR Asynchrone Echtzeitanwendungen in SharePoint mit SignalR und knockout.JS Christian Heindel @c_heindel christian.heindel@communardo.de
  • 2. Vor einem Jahr… SignalR ist ein Projekt von • David Fowler (Senior Software Design Engineer, ASP.NET Team) • Damien Edwards (Senior Program Manager, Microsoft) GitHub, Nuget Gallery, SignalR 0.5 ShareCamp 2012 Christian Heindel: Push-Benachrichtigungen in SharePoint via SignalR © Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de Seite 2
  • 3. Folien ShareCamp 2012 http://de.slideshare.net/c.heindel/pushbenachricht igungen-in-sharepoint-via-signalr © Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de Seite 3
  • 4. Mittlerweile… • SignalR offiziell zu ASP.NET aufgenommen • Größeres Team bei Microsoft (z.B. Patrick Fletcher) • Professionelle Software- und Lasttests ;-) • fast 50.000 Downloads via nuget • Zusätzliche Open Source-Bibliotheken und Projekte entstehen, z.B. SignalR-ObjC @ GitHub (für iOS and Mac) • Jabbr.net (mächtig!) • IE10 (Yippie!) © Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de Seite 4
  • 5. Mittlerweile… • Mai 2012: DEMO: Max Melcher (Download-Tracking) • November 2012: DEMO: Realtime ASP.NET Web API tracing with SignalR • Dezember 2012: Max Melcher schwitzt und flucht: http://melcher.it/2012/12/signalr-in-sharepoint-2013-the- real-time-web-is-coming/ • Dezember 2012: SignalR on Mono rücken näher zusammen (Link) • Februar 2013: Channel 9 veröffentlicht Video Building Web Apps with ASP.NET Jump Start: (08) Real- time Communication with SignalR (Link, 53m) • Februar 2013: Publish the SignalR Getting Started Sample as a Windows Azure Web Site © Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de Seite 5
  • 6. Mittlerweile… • März 2013: Ergänzung zur Download DEMO, ein Upload- Beispiel (BEKK) • März 2013: Christian Weyer: 3h 28m, Intermediate Introducing ASP.NET SignalR - Push Services with Hubs (Link) • März 2013: MSDN Dokumentation verfügbar • März 2013: Shopping Cart Beispiel • Seit 2 Tagen: 12.04.13: SignalR 1.1.0beta (mit ScaleOut Providern für Redis, SqlServer and Azure Service Bus) • ShareCamp 2013… © Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de Seite 6
  • 7. Was ist SignalR? © Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de Seite 7
  • 8. Transportwege und Fallbacks • WebSockets • Server Sent Events • Forever Frame • Ajax long polling (Dokumentation) © Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de Seite 8
  • 9. Modell 1: Connection http://www.asp.net/signalr/overview/introduction/connections-and-hubs - 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. © Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de Seite 9
  • 10. Modell 2: Hub - 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. © Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de Seite 10
  • 11. Systemanforderungen Auf Facebook würde man schreiben: “Es ist kompliziert” Auszug aus der Dokumentation: 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) Nur * unterstützt auch Websockets © Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de Seite 11
  • 12. Lastgrenzen / Lasttest • Standardlimit im IIS: 5.000 Verbindungen pro CPU • Für SignalR gehen z.B. auch 20.000 Verbindungen • Spezielle Protokolle erfordern spezielles Lasttestwerkzeug https://github.com/SignalR/SignalR/tree/dev/src/Microsoft.AspNet.SignalR.Crank © Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de Seite 12
  • 13. Open Source The source code for ASP.NET SignalR is available under an open source license. Developers outside of Microsoft may submit patches and code contributions that the Microsoft development team will review for potential inclusion. The framework continues to be fully support and staffed by Microsoft. © Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de Seite 13
  • 14. Forum http://forums.asp.net/1254.aspx © Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de Seite 14
  • 15. SharePoint macht mal wieder nur Probleme… SharePoint 2010 • SharePoint verwendet .NET Framework 3.5 • SignalR benötigt .NET Framework 4.0 / 4.5 •  Proxy notwendig (WCF, HttpHandler o.ä.) SharePoint 2013 • .NET Framework 4.0 Aber: • Normalerweise hängt sich SignalR an „App_Start“ Event und registriert die Route „~/signalr/hubs“ (Clients finden damit immer den Hub) • In SharePoint gibt es aber kein „App_Start“! ¯_(ツ)_/¯ Global.asax kann man nicht automatisch deploybar anpassen Lösung: HttpModule (Link) © Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de Seite 15
  • 16. Derzeitige Lösung für SharePoint 2013 • HttpModule • SPWebConfigModificationHandler • VirtualPathProvider <SanftenDruckErhoehen> Nette Verpackung als Open Source Lösung von Max Melcher geplant… ;-) </SanftenDruckErhoehen> © Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de Seite 16
  • 17. © Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de Seite 17
  • 18. Alternative Socket.IO (Framwork für node.js) NowJS (ein node.js Modul) © Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de Seite 18
  • 19. Kontakt Communardo Software GmbH Kleiststraße 10 a 01129 Dresden http://www.communardo.de info@communardo.de Telefon: +49 (351) 833 820 Standort Stuttgart Leinfelder Straße 64 70771 Leinfelden-Echterdingen Telefon: +49 (711) 722 497 09 Christian Heindel christian.heindel@communardo.de www.communardo.de Telefon: +49 (351) 833 82-234 © Communardo Software GmbH · Kleiststraße 10 a · D-01129 Dresden/Germany · Fon +49 (351) 833 82-0 · Mail info@communardo.de · www.communardo.de Seite 19