SlideShare uma empresa Scribd logo
1 de 34
Build real-time applications
using SharePoint, Azure
Service Bus and SignalR
Dinusha Kumarasiri
http://dinushaonline.blogspot.com
Dinusha Kumarasiri
• MVP in SharePoint server
• Software Architect focusing on
SharePoint and related
technologies
• Interested in SharePoint,
Office365 and Microsoft Azure
Email : kumarasiri048@gmail.com
Twitter : kumarasiri048
Facebook : dinushak
LinkedIn : dinushak
Contact Details
Agenda
• Evolution of web
• Real time web applications
• ASP.Net SignalR
• SignalR with SharePoint
• Microsoft Azure Service Bus
Evolution of web
• HTTP Protocol
Client
Server
Request
Response
• HTTP is stateless
• Current state is not saved
• New requests from the same users are treated as brand new requests
• HTTP is half duplex
• Either send a request or receive a response. But not at the same time
Evolution of web
• What are the current work arounds for being stateless
• HTTP Cookies, Server side sessions, etc.
• Additional information in HTTP headers
Evolution of web
• Ajax HTTP requests
• Uses XML HttpRequest
• Able to load parts of the web page without loading the entire page
• How can we load data, without any interaction from the end
user?
Real-time web applications
• Set of technologies and practices that enable users to receive
information as it is published
• Instantly receive messages if there are any
• Up to date
• Delivered to any device
Real-time web applications
• Use cases
• Social networking
• Gaming
• Gambling
• Trading
• Monitoring
• Tracking
• Sports events
• Collaborative applications
• Real-time forms
• Sites with messaging
capabilities
Real-time web applications
Consumer
Service to push
messages
Subscribe
Get messages
Events
Real-time web applications
• Technologies to enable real-time web applications
• Polling
• Long Polling
• Forever frame
• Server-Sent Events (SSE)
• WebSockets
Real-time web applications
Polling Long Polling
• Periodically request the server for any
updates
• Client poll the server, but server respond if
there is data to return
• The server holds on the request until timeout
or if it has new data
• Polling and Long Polling
Real-time web applications
• Forever Frame
• Uses a hidden iframe
• The iframe loads another page which has a loop
• HTML5 Server-Sent Events (SSE)
• Create new EventSource object, which opens a connection to server
Real-time web applications
• WebSockets
• Extended HTTP
• But may not be compatible
• Windows 8 + , Server 2012 +
• There may be network security concerns
Real-time web applications
• How to select what technology is best for current scenario
• Should fallback to another technology if primary is not
supported
• Frameworks support to achieve that
SignalR
• Asynchronous signaling library that enables real-time, multi-
user web applications.
• Creates a persistent connection between server and client(s)
• Within ASP.Net stack
• Source code is open and in GitHub
• Available via NuGet
SignalR
• Features
• Libraries for client and server
• Use WebSockets when available, if not fallback to other technologies
• Supported in many platforms
• SignalR Team
• .Net 4.0 +
• WinRT
• Windows Phone 8
• Silverlight 5
• JQuery
• C++
• Community
• IOS Native
• IOS via Mono
• Android via Mono
SignalR
Demo
Install-Package Microsoft.AspNet.SignalR.Samp
SignalR
• Architecture
SignalR
• Preparing the environment
NuGet package
Microsoft.AspNet.SignalR
Server
references
JavaScript
for clients
SignalR
• Preparing the environment
SignalR
• Server side development models
• Persistent connection : IHttpHandler
• Hubs : An abstraction over persistent connection
• Hubs
• Public methods defined in hubs are callable from outside
• Send messages to clients by invoking client-side methods
• Communication is serialized by JSON
SignalR
• Hubs
SignalR
• Clients
SignalR
Demo
SignalR with SharePoint
• Steps
• Create a provider hosted application
• Host the remote web
• Client Web Parts to display
SignalR
Demo
Working with external data
• Scenarios
• Output from LOB systems
• IOT and other external devices
• Production lines
• Communication from multiple sources
Working with external data
• Challenges
• Can lose data
• Data from multiple sources
• Data can be in multiple formats
• Cost
• Availability of infrastructure
• Heavy load in peak times
Azure Service Bus
• What is azure service bus?
• Reliable information delivery service
• It ensures that the information is delivered even both parties are not online in
the same time
• Azure service bus queue
• Sender sends a message to the queue
• A receiver can pickup
• One-way asynchronous communication
Azure Service Bus
• Azure service bus topics
• Filters
• One-way asynchronous communication
Azure Service Bus
• Azure service bus relays
• If your applications need to both send and receive messages
Azure Service Bus
• Real-time web applications with SignalR and Azure Service Bus
Service Bus Topics
SignalR (Server Side)
Hub
Client 1
Client 2
Client 2
Process 1 Process 2
Questions?
PLATINUM
SILVER
THANK YOU TO OUR SPONSORS

Mais conteúdo relacionado

Mais procurados

From Data Analysis to Smarter Apps - AWS Summit Tel Aviv 2017
From Data Analysis to Smarter Apps - AWS Summit Tel Aviv 2017From Data Analysis to Smarter Apps - AWS Summit Tel Aviv 2017
From Data Analysis to Smarter Apps - AWS Summit Tel Aviv 2017
Amazon Web Services
 

Mais procurados (20)

Toyko azure meetup # 1 azure paa s overview
Toyko azure meetup # 1   azure paa s overviewToyko azure meetup # 1   azure paa s overview
Toyko azure meetup # 1 azure paa s overview
 
Azure Mobile Services
Azure Mobile ServicesAzure Mobile Services
Azure Mobile Services
 
Intro to docker and kubernetes
Intro to docker and kubernetesIntro to docker and kubernetes
Intro to docker and kubernetes
 
Serverless integrations using Azure Logic Apps (intro)
Serverless integrations using Azure Logic Apps (intro)Serverless integrations using Azure Logic Apps (intro)
Serverless integrations using Azure Logic Apps (intro)
 
2 Speed IT powered by Microsoft Azure and Minecraft
2 Speed IT powered by Microsoft Azure and Minecraft2 Speed IT powered by Microsoft Azure and Minecraft
2 Speed IT powered by Microsoft Azure and Minecraft
 
Azure Logic Apps
Azure Logic AppsAzure Logic Apps
Azure Logic Apps
 
Integrating SaaS application using Microsoft’s Azure App Service Platform
Integrating SaaS application using Microsoft’s Azure App Service PlatformIntegrating SaaS application using Microsoft’s Azure App Service Platform
Integrating SaaS application using Microsoft’s Azure App Service Platform
 
Azure integration services from the IT Professional perspective
Azure integration services from the IT Professional perspectiveAzure integration services from the IT Professional perspective
Azure integration services from the IT Professional perspective
 
Azure functions
Azure functionsAzure functions
Azure functions
 
Develop enterprise-ready applications for Microsoft Teams
Develop enterprise-ready applications for Microsoft TeamsDevelop enterprise-ready applications for Microsoft Teams
Develop enterprise-ready applications for Microsoft Teams
 
From Data Analysis to Smarter Apps - AWS Summit Tel Aviv 2017
From Data Analysis to Smarter Apps - AWS Summit Tel Aviv 2017From Data Analysis to Smarter Apps - AWS Summit Tel Aviv 2017
From Data Analysis to Smarter Apps - AWS Summit Tel Aviv 2017
 
Azure Saturday: External Collaboration With Azure AD B2B
Azure Saturday:  External Collaboration With Azure AD B2BAzure Saturday:  External Collaboration With Azure AD B2B
Azure Saturday: External Collaboration With Azure AD B2B
 
Azure Functions VS AWS Lambda: overview and comparison
Azure Functions VS AWS Lambda: overview and comparisonAzure Functions VS AWS Lambda: overview and comparison
Azure Functions VS AWS Lambda: overview and comparison
 
Exception Management patterns in Logic Apps
Exception Management patterns in Logic AppsException Management patterns in Logic Apps
Exception Management patterns in Logic Apps
 
Serverless Architecture - Azure Logic apps
Serverless Architecture - Azure Logic appsServerless Architecture - Azure Logic apps
Serverless Architecture - Azure Logic apps
 
Getting started with Azure Cognitive services
Getting started with Azure Cognitive servicesGetting started with Azure Cognitive services
Getting started with Azure Cognitive services
 
Cloud Dev with Azure Functions - DogFoodCon 2018 - Brian T Jackett
Cloud Dev with Azure Functions - DogFoodCon 2018 - Brian T JackettCloud Dev with Azure Functions - DogFoodCon 2018 - Brian T Jackett
Cloud Dev with Azure Functions - DogFoodCon 2018 - Brian T Jackett
 
Serverless beyond AWS Lambda
Serverless beyond AWS LambdaServerless beyond AWS Lambda
Serverless beyond AWS Lambda
 
AAD with MVC App
AAD with MVC AppAAD with MVC App
AAD with MVC App
 
Azure App Service Deep Dive
Azure App Service Deep DiveAzure App Service Deep Dive
Azure App Service Deep Dive
 

Semelhante a Real-time web applications using SharePoint, SignalR and Azure Service Bus

Web Development Technologies
Web Development TechnologiesWeb Development Technologies
Web Development Technologies
Vignesh Prajapati
 
SignalR: Add real-time to your applications
SignalR: Add real-time to your applicationsSignalR: Add real-time to your applications
SignalR: Add real-time to your applications
Eugene Zharkov
 
Signal r azurepresentation
Signal r azurepresentationSignal r azurepresentation
Signal r azurepresentation
Justin Wendlandt
 

Semelhante a Real-time web applications using SharePoint, SignalR and Azure Service Bus (20)

ASP.NET MVC 5 and SignalR 2
ASP.NET MVC 5 and SignalR 2ASP.NET MVC 5 and SignalR 2
ASP.NET MVC 5 and SignalR 2
 
Introduction to SignalR
Introduction to SignalRIntroduction to SignalR
Introduction to SignalR
 
Azure signalr service
Azure signalr serviceAzure signalr service
Azure signalr service
 
Real-time Communications with SignalR
Real-time Communications with SignalRReal-time Communications with SignalR
Real-time Communications with SignalR
 
RESTful web
RESTful webRESTful web
RESTful web
 
CNIT 129S - Ch 3: Web Application Technologies
CNIT 129S - Ch 3: Web Application TechnologiesCNIT 129S - Ch 3: Web Application Technologies
CNIT 129S - Ch 3: Web Application Technologies
 
CNIT 129S: Ch 3: Web Application Technologies
CNIT 129S: Ch 3: Web Application TechnologiesCNIT 129S: Ch 3: Web Application Technologies
CNIT 129S: Ch 3: Web Application Technologies
 
SignalR 101
SignalR 101SignalR 101
SignalR 101
 
Azure Mobile Services
Azure Mobile ServicesAzure Mobile Services
Azure Mobile Services
 
Web Development Technologies
Web Development TechnologiesWeb Development Technologies
Web Development Technologies
 
SignalR With ASP.Net part1
SignalR With ASP.Net part1SignalR With ASP.Net part1
SignalR With ASP.Net part1
 
SignalR: Add real-time to your applications
SignalR: Add real-time to your applicationsSignalR: Add real-time to your applications
SignalR: Add real-time to your applications
 
SignalR
SignalR SignalR
SignalR
 
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
 
Tokyo azure meetup #8 azure update, august
Tokyo azure meetup #8   azure update, augustTokyo azure meetup #8   azure update, august
Tokyo azure meetup #8 azure update, august
 
Tokyo azure meetup #8 - Azure Update, August
Tokyo azure meetup #8 - Azure Update, AugustTokyo azure meetup #8 - Azure Update, August
Tokyo azure meetup #8 - Azure Update, August
 
Cloud-native Data
Cloud-native DataCloud-native Data
Cloud-native Data
 
Cloud-Native-Data with Cornelia Davis
Cloud-Native-Data with Cornelia DavisCloud-Native-Data with Cornelia Davis
Cloud-Native-Data with Cornelia Davis
 
Windows 8 Apps and the Outside World
Windows 8 Apps and the Outside WorldWindows 8 Apps and the Outside World
Windows 8 Apps and the Outside World
 
Signal r azurepresentation
Signal r azurepresentationSignal r azurepresentation
Signal r azurepresentation
 

Mais de Dinusha Kumarasiri

Introduction to SharePoint Online
Introduction to SharePoint OnlineIntroduction to SharePoint Online
Introduction to SharePoint Online
Dinusha Kumarasiri
 

Mais de Dinusha Kumarasiri (20)

Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Migrating On-Premises Workloads with Azure Migrate
Migrating On-Premises Workloads with Azure MigrateMigrating On-Premises Workloads with Azure Migrate
Migrating On-Premises Workloads with Azure Migrate
 
Azure Event Hubs for Kafka.pptx
Azure Event Hubs for Kafka.pptxAzure Event Hubs for Kafka.pptx
Azure Event Hubs for Kafka.pptx
 
Future of Collaboration with Office 365.pptx
Future of Collaboration with Office 365.pptxFuture of Collaboration with Office 365.pptx
Future of Collaboration with Office 365.pptx
 
Application Development with Azure
Application Development with AzureApplication Development with Azure
Application Development with Azure
 
Building Data Solutions with Azure
Building Data Solutions with AzureBuilding Data Solutions with Azure
Building Data Solutions with Azure
 
Introduction to cloud computing
Introduction to cloud computingIntroduction to cloud computing
Introduction to cloud computing
 
Azure active directory and role based access control
Azure active directory and role based access controlAzure active directory and role based access control
Azure active directory and role based access control
 
Step into cloud
Step into cloudStep into cloud
Step into cloud
 
PowerApps and Flow
PowerApps and FlowPowerApps and Flow
PowerApps and Flow
 
PowerApps with Common Data Services
PowerApps with  Common Data ServicesPowerApps with  Common Data Services
PowerApps with Common Data Services
 
Automating Business Processes with SharePoint & Flow
Automating Business Processes with SharePoint & FlowAutomating Business Processes with SharePoint & Flow
Automating Business Processes with SharePoint & Flow
 
ALM with SharePoint
ALM with SharePointALM with SharePoint
ALM with SharePoint
 
SharePoint Authentication
SharePoint AuthenticationSharePoint Authentication
SharePoint Authentication
 
Data Loss Prevention in SharePoint 2016
Data Loss Prevention in SharePoint 2016Data Loss Prevention in SharePoint 2016
Data Loss Prevention in SharePoint 2016
 
Introduction to SharePoint
Introduction to SharePointIntroduction to SharePoint
Introduction to SharePoint
 
Azure notification hubs
Azure notification hubsAzure notification hubs
Azure notification hubs
 
Introduction to SharePoint
Introduction to SharePointIntroduction to SharePoint
Introduction to SharePoint
 
Introduction to SharePoint Online
Introduction to SharePoint OnlineIntroduction to SharePoint Online
Introduction to SharePoint Online
 
Enhance user experience for Search using display templates
Enhance user experience for  Search using display templatesEnhance user experience for  Search using display templates
Enhance user experience for Search using display templates
 

Último

Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 

Último (20)

Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 

Real-time web applications using SharePoint, SignalR and Azure Service Bus

  • 1. Build real-time applications using SharePoint, Azure Service Bus and SignalR Dinusha Kumarasiri http://dinushaonline.blogspot.com
  • 2. Dinusha Kumarasiri • MVP in SharePoint server • Software Architect focusing on SharePoint and related technologies • Interested in SharePoint, Office365 and Microsoft Azure Email : kumarasiri048@gmail.com Twitter : kumarasiri048 Facebook : dinushak LinkedIn : dinushak Contact Details
  • 3. Agenda • Evolution of web • Real time web applications • ASP.Net SignalR • SignalR with SharePoint • Microsoft Azure Service Bus
  • 4. Evolution of web • HTTP Protocol Client Server Request Response • HTTP is stateless • Current state is not saved • New requests from the same users are treated as brand new requests • HTTP is half duplex • Either send a request or receive a response. But not at the same time
  • 5. Evolution of web • What are the current work arounds for being stateless • HTTP Cookies, Server side sessions, etc. • Additional information in HTTP headers
  • 6. Evolution of web • Ajax HTTP requests • Uses XML HttpRequest • Able to load parts of the web page without loading the entire page • How can we load data, without any interaction from the end user?
  • 7. Real-time web applications • Set of technologies and practices that enable users to receive information as it is published • Instantly receive messages if there are any • Up to date • Delivered to any device
  • 8. Real-time web applications • Use cases • Social networking • Gaming • Gambling • Trading • Monitoring • Tracking • Sports events • Collaborative applications • Real-time forms • Sites with messaging capabilities
  • 9. Real-time web applications Consumer Service to push messages Subscribe Get messages Events
  • 10. Real-time web applications • Technologies to enable real-time web applications • Polling • Long Polling • Forever frame • Server-Sent Events (SSE) • WebSockets
  • 11. Real-time web applications Polling Long Polling • Periodically request the server for any updates • Client poll the server, but server respond if there is data to return • The server holds on the request until timeout or if it has new data • Polling and Long Polling
  • 12. Real-time web applications • Forever Frame • Uses a hidden iframe • The iframe loads another page which has a loop • HTML5 Server-Sent Events (SSE) • Create new EventSource object, which opens a connection to server
  • 13. Real-time web applications • WebSockets • Extended HTTP • But may not be compatible • Windows 8 + , Server 2012 + • There may be network security concerns
  • 14. Real-time web applications • How to select what technology is best for current scenario • Should fallback to another technology if primary is not supported • Frameworks support to achieve that
  • 15. SignalR • Asynchronous signaling library that enables real-time, multi- user web applications. • Creates a persistent connection between server and client(s) • Within ASP.Net stack • Source code is open and in GitHub • Available via NuGet
  • 16. SignalR • Features • Libraries for client and server • Use WebSockets when available, if not fallback to other technologies • Supported in many platforms • SignalR Team • .Net 4.0 + • WinRT • Windows Phone 8 • Silverlight 5 • JQuery • C++ • Community • IOS Native • IOS via Mono • Android via Mono
  • 19. SignalR • Preparing the environment NuGet package Microsoft.AspNet.SignalR Server references JavaScript for clients
  • 21. SignalR • Server side development models • Persistent connection : IHttpHandler • Hubs : An abstraction over persistent connection • Hubs • Public methods defined in hubs are callable from outside • Send messages to clients by invoking client-side methods • Communication is serialized by JSON
  • 25. SignalR with SharePoint • Steps • Create a provider hosted application • Host the remote web • Client Web Parts to display
  • 27. Working with external data • Scenarios • Output from LOB systems • IOT and other external devices • Production lines • Communication from multiple sources
  • 28. Working with external data • Challenges • Can lose data • Data from multiple sources • Data can be in multiple formats • Cost • Availability of infrastructure • Heavy load in peak times
  • 29. Azure Service Bus • What is azure service bus? • Reliable information delivery service • It ensures that the information is delivered even both parties are not online in the same time • Azure service bus queue • Sender sends a message to the queue • A receiver can pickup • One-way asynchronous communication
  • 30. Azure Service Bus • Azure service bus topics • Filters • One-way asynchronous communication
  • 31. Azure Service Bus • Azure service bus relays • If your applications need to both send and receive messages
  • 32. Azure Service Bus • Real-time web applications with SignalR and Azure Service Bus Service Bus Topics SignalR (Server Side) Hub Client 1 Client 2 Client 2 Process 1 Process 2