SlideShare une entreprise Scribd logo
1  sur  43
Télécharger pour lire hors ligne
Timer Jobs and Event
Handlers in SP Online
Adis Jugo
Slide 3
Adis Jugo
Microsoft MVP Office Development
Microsoft MVP Office Servers and Services
In IT for way too long (first money earned with development in 91)
Still dreaming of a Ćevapi restaurant or a vineyard
Director of Product Technology at skybow AG
Born in Sarajevo, B&H, living in Bingen, Germany
Blogger, speaker, author. adisjugo.com
What is this session about?
• Daemons
• Authentication
• Timer Jobs
• Event Handlers
Why this session
• skybow Solution Studio Online
• SaaS offering
• 35000 users at the moment
• Challenges:
• Performance
• Scalability
• Robustness
• Identity, Authentication and Authorization
• Maintainability and operations
What are daemons
• Software which runs as a background tasks
• Timer
• Continuous
• Triggered
Daemons in SharePoint Development?
• Event handlers
• Lists
• Items
• Site
• Security,,,
• Timer Jobs
• Timer Intervals
• Always in context
• Site context
• User context
• Change context
• …
Our options in cloud?
Daemon options in cloud
Flow
Power
User
Logic
Apps
IT Pro
Dev
Web Jobs
Dev
Functions
Dev
Flow Logic Apps
Audience Office workers, business users IT pros, developers
Scenarios Self-service Mission-critical
Design Tool In-browser and mobile app, UI only In-browser and Visual Studio, Code view available
DevOps Ad-hoc, develop in production source control, testing, support, and automation
and manageability in Azure Resource Management
Security Standard practices: data
sovereignty, encryption at rest for
sensitive data, etc.
Security assurance of Azure: Azure
Security, Security Center, audit logs, and more.
Daemon options in cloud
Flow
Power
User
Logic
Apps
IT Pro
Dev
Web Jobs
Dev
Functions
Dev
Webjobs
• Manually triggered or run on a schedule.
• Continuously running (aka running constantly, all the time)
• Triggered based on events in other Azure Services,
• Storage Queue or Service Buss
• Long running and Short Running
• Implemented in any language as either a command-line executable
or script
• One size fits all
Azure Functions
• Lightweight, flexible
• More difficult to operate and manage
• Consumption Plan
• 5 minutes threshold
• App Service Plan
• Share resources with a Web App, API App, or Mobile App
• Dedicated resources for long running / frequent Azure Functions
Functions WebJobs
Scaling Configurationless scaling Scale with App Service plan
Pricing Pay-per-use or part of App Service plan Part of App Service plan
Run-type Triggered, scheduled (by timer trigger) Triggered, continuous, scheduled
Trigger events Timer, Azure Cosmos DB, Azure Event
Hubs, HTTP/WebHook, Azure App Service
Mobile Apps, Azure Notification Hubs, Azure
Service Bus, Azure Storage
HTTP/WebHook, Timer, Queue, Blob
In-browser development Supported Not Supported
C# Supported Supported
F# Supported Not Supported
JavaScript Supported Supported
Java Supported Not supported
Bash Experimental Supported
Windows scripting (.cmd, .bat) Experimental Supported
PowerShell Experimental Supported
PHP Experimental Supported
Python Experimental Supported
TypeScript Experimental Not Supported
Authentication
Auth typeType
Daemon
Event
Handler
Delegated
App Only
Timer App Only
Azure Active Directory
• Microsoft’s Cloud Identity service
• Glue that holds all together
Applications
Devices
Principals
Protocols supported by AD
• WS-Federation
• SAML-P
• OAuth 2.0
• OpenID Connect
Protocol Endpoints
Azure AD Application mechanics
OAuth 2.0
•No capturing user credentials
•Fine-grained access scopes
•Supports MFA and federated user sign-in
•Long-term access through refresh tokens
Auth flow
Germany: Postident
Start
online bank account
Post clerk performs the
identification, issues
identification confirmation
You send the identification
confirmation to bank
Bank issues you a token
device
You perform the bank
operations
End
App Only
• App Secret
• App Certificate
Application Types
Web
Application
Web Api
Native App
Slide 26
Demo: AAD
Slide 27
Timer Jobs
• Register an app in AAD
• Add App-only permissions
• Create a certificate
• Store certificate credentials
• Create an Azure Function
• Read certificate
• Create authentication token from certificate
• Call SharePoint Logic
Slide 28
Get cert keys
$certPath = "X:[path][certificatenname].cer"
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
$cert.Import($certPath)
$rawCert = $cert.GetRawCertData()
$base64Cert = [System.Convert]::ToBase64String($rawCert)
$rawCertHash = $cert.GetCertHash()
$base64CertHash = [System.Convert]::ToBase64String($rawCertHash)
$KeyId = [System.Guid]::NewGuid().ToString()
Write-Output "Base 64 Certificate"
Write-Output $base64Cert
Write-Output "Base 64 Certificate Hash"
Write-Output $base64CertHash
Write-Output "Key ID"
Write-Output $KeyId
Slide 29
Remote Event Receivers VS webhooks
• RER
• Provider Hosted AddIn
• App Infrastructure
• Webhooks
• 1. ExpirationPeriod max 6 months.
• 2. Only synchronous (“-ed” events), async (“-ing” events) are not
possible.
Slide 30
Webhooks
• Subscription to the specific SharePoint resource, ie. lists
• Resource - The resource endpoint URL you are creating the
subscription for. For example a SharePoint List API URL.
• Server notification URL - Your service endpoint URL. HTTP POST
• Expiration date – max six months
• Client State - An opaque string passed back to the client on all
notifications. You can use this for validating notifications,
tagging different subscriptions, or other reasons.
Slide 31
Slide 32
Webhook validation req/resp
• POST https://contoso.azurewebsites.net/your/webhook/service?
validationToken={randomString}
Slide 33
Notifications
• Inform your service endpoint that a change has happened on a
subscription
• Multiple notifications to your application may be batched
together into a single request, if multiple changes occurred in
the resource within the same time period.
• The notification payload body will also contain your client state
if you used it when creating the subscription.
• The notification doesn't include any information about the
changes that triggered it. Use GetChanges API
Slide 34
Slide 35
DEMO
Create Webhook, send notifications
Slide 36
Error Handling
• Any response with an HTTP status code outside of the 200-299
range, or that times out, will be attempted again over the next
several minutes.
• If the request is not successful after 15 minutes, the notification
is dropped.
• Future notifications will still be attempted to your application,
although the service may remove the subscription if a sufficient
number of failures are detected.
• SharePoint performs a retry of 5 times with a 5 minute wait
time between the attempts.
Slide 37
Slide 38
Reading the queue
• Anything, really
• Console app
• Another Function
• Web Job
• Authentication
• Read token from the request
• Create new access token
• User context (delegated)
• App context (app only) => Elevated permissions simulation
Slide 39
Getting Changes
ChangeToken lastChangeToken = null;
lastChangeToken = new ChangeToken();
lastChangeToken.StringValue = string.Format("1;3;{0};{1};-1", listID,
DateTime.Now.AddMinutes(-1).ToUniversalTime().Ticks.ToString());
ChangeQuery changeQuery = new ChangeQuery(false, true);
changeQuery.Item = true;
changeQuery.ChangeTokenStart = lastChangeToken;
var changes = changedList.GetChanges(changeQuery);
SPClientContext.Load(changes);
SPClientContext.ExecuteQuery();
Slide 40
Complete End-To-End Flow
Slide 41
Recap
• Daemons in SharePoint Online with Azure
• Functions, Webjobs, etc.
• Azure Active Directory functions as a glue
• App Only permission for “timer jobs”
• Impersonification (Delegated permissions) for event handlers
• App only for event handlers when “elevated permissions” are needed
• Azure is your best friend ☺
Plumbing is not easy (yet)
• Series of blog posts at
• http://adisjugo.com
• @adisjugo
Thank you. Questions?

Contenu connexe

Tendances

Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - referenceChris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - referenceChris O'Brien
 
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...NCCOMMS
 
O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...
O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...
O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...NCCOMMS
 
Create SASSy web parts in SPFx
Create SASSy web parts in SPFxCreate SASSy web parts in SPFx
Create SASSy web parts in SPFxStefan Bauer
 
[Pinto] Is my SharePoint Development team properly enlighted?
[Pinto] Is my SharePoint Development team properly enlighted?[Pinto] Is my SharePoint Development team properly enlighted?
[Pinto] Is my SharePoint Development team properly enlighted?European Collaboration Summit
 
Application Lifecycle Management for Office 365 development
Application Lifecycle Management for Office 365 developmentApplication Lifecycle Management for Office 365 development
Application Lifecycle Management for Office 365 developmentChris O'Brien
 
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developers
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developersChris O'Brien - Best bits of Azure for Office 365/SharePoint developers
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developersChris O'Brien
 
ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...
ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...
ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...European Collaboration Summit
 
DEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISE
DEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISEDEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISE
DEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISEEuropean Collaboration Summit
 
Chris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 apps
Chris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 appsChris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 apps
Chris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 appsChris O'Brien
 
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...Bill Ayers
 
O365Con18 - SharePoint Framework for Administrators - Waldek Mastykarz
O365Con18 - SharePoint Framework for Administrators - Waldek MastykarzO365Con18 - SharePoint Framework for Administrators - Waldek Mastykarz
O365Con18 - SharePoint Framework for Administrators - Waldek MastykarzNCCOMMS
 
O365Con18 - Hybrid SharePoint Deep Dive - Thomas Vochten
O365Con18 - Hybrid SharePoint Deep Dive - Thomas VochtenO365Con18 - Hybrid SharePoint Deep Dive - Thomas Vochten
O365Con18 - Hybrid SharePoint Deep Dive - Thomas VochtenNCCOMMS
 
Azure Web Jobs
Azure Web JobsAzure Web Jobs
Azure Web JobsBizTalk360
 
[Vončina] Configuring SharePoint 2016 for BI Scenarios
[Vončina] Configuring SharePoint 2016 for BI Scenarios[Vončina] Configuring SharePoint 2016 for BI Scenarios
[Vončina] Configuring SharePoint 2016 for BI ScenariosEuropean Collaboration Summit
 
Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...Chris O'Brien
 
ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...
ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...
ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...European Collaboration Summit
 

Tendances (20)

Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - referenceChris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
 
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...
 
O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...
O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...
O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...
 
Create SASSy web parts in SPFx
Create SASSy web parts in SPFxCreate SASSy web parts in SPFx
Create SASSy web parts in SPFx
 
[Pinto] Is my SharePoint Development team properly enlighted?
[Pinto] Is my SharePoint Development team properly enlighted?[Pinto] Is my SharePoint Development team properly enlighted?
[Pinto] Is my SharePoint Development team properly enlighted?
 
Application Lifecycle Management for Office 365 development
Application Lifecycle Management for Office 365 developmentApplication Lifecycle Management for Office 365 development
Application Lifecycle Management for Office 365 development
 
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developers
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developersChris O'Brien - Best bits of Azure for Office 365/SharePoint developers
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developers
 
[Struyf] Automate Your Tasks With Azure Functions
[Struyf] Automate Your Tasks With Azure Functions[Struyf] Automate Your Tasks With Azure Functions
[Struyf] Automate Your Tasks With Azure Functions
 
ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...
ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...
ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...
 
DEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISE
DEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISEDEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISE
DEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISE
 
Chris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 apps
Chris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 appsChris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 apps
Chris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 apps
 
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
 
[Roine] Serverless: Don't Take It Literally
[Roine] Serverless: Don't Take It Literally[Roine] Serverless: Don't Take It Literally
[Roine] Serverless: Don't Take It Literally
 
O365Con18 - SharePoint Framework for Administrators - Waldek Mastykarz
O365Con18 - SharePoint Framework for Administrators - Waldek MastykarzO365Con18 - SharePoint Framework for Administrators - Waldek Mastykarz
O365Con18 - SharePoint Framework for Administrators - Waldek Mastykarz
 
ECS19 Bert Jansen - Modernizing your existing sites
ECS19 Bert Jansen - Modernizing your existing sitesECS19 Bert Jansen - Modernizing your existing sites
ECS19 Bert Jansen - Modernizing your existing sites
 
O365Con18 - Hybrid SharePoint Deep Dive - Thomas Vochten
O365Con18 - Hybrid SharePoint Deep Dive - Thomas VochtenO365Con18 - Hybrid SharePoint Deep Dive - Thomas Vochten
O365Con18 - Hybrid SharePoint Deep Dive - Thomas Vochten
 
Azure Web Jobs
Azure Web JobsAzure Web Jobs
Azure Web Jobs
 
[Vončina] Configuring SharePoint 2016 for BI Scenarios
[Vončina] Configuring SharePoint 2016 for BI Scenarios[Vončina] Configuring SharePoint 2016 for BI Scenarios
[Vončina] Configuring SharePoint 2016 for BI Scenarios
 
Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...
 
ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...
ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...
ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...
 

En vedette

SPUnite17 The Accidental SPO Admin
SPUnite17 The Accidental SPO AdminSPUnite17 The Accidental SPO Admin
SPUnite17 The Accidental SPO AdminNCCOMMS
 
SPUnite17 The New Enterprise Content Management
SPUnite17 The New Enterprise Content ManagementSPUnite17 The New Enterprise Content Management
SPUnite17 The New Enterprise Content ManagementNCCOMMS
 
SPUnite17 Unified Search Experiences
SPUnite17 Unified Search ExperiencesSPUnite17 Unified Search Experiences
SPUnite17 Unified Search ExperiencesNCCOMMS
 
SPUnite17 Cost Effective Risk Mitigation
SPUnite17 Cost Effective Risk MitigationSPUnite17 Cost Effective Risk Mitigation
SPUnite17 Cost Effective Risk MitigationNCCOMMS
 
SPUnite17 SPFx Extensions
SPUnite17 SPFx ExtensionsSPUnite17 SPFx Extensions
SPUnite17 SPFx ExtensionsNCCOMMS
 
SPUnite17 Big Move - Learning from the Shell O365 Migration
SPUnite17 Big Move - Learning from the Shell O365 MigrationSPUnite17 Big Move - Learning from the Shell O365 Migration
SPUnite17 Big Move - Learning from the Shell O365 MigrationNCCOMMS
 
SPUnite17 Introducing Logic Apps
SPUnite17 Introducing Logic AppsSPUnite17 Introducing Logic Apps
SPUnite17 Introducing Logic AppsNCCOMMS
 
SPUnite17 Transforming your Organisation into a Digital Workplace
SPUnite17 Transforming your Organisation into a Digital WorkplaceSPUnite17 Transforming your Organisation into a Digital Workplace
SPUnite17 Transforming your Organisation into a Digital WorkplaceNCCOMMS
 
SPUnite17 If I Ran the SharePoint Zoo
SPUnite17 If I Ran the SharePoint ZooSPUnite17 If I Ran the SharePoint Zoo
SPUnite17 If I Ran the SharePoint ZooNCCOMMS
 
SPUnite17 Who Are You and What Do You Want
SPUnite17 Who Are You and What Do You WantSPUnite17 Who Are You and What Do You Want
SPUnite17 Who Are You and What Do You WantNCCOMMS
 
SPUnite17 Caveman Project Management for Agile - Scrum - Kanban teams with Of...
SPUnite17 Caveman Project Management for Agile - Scrum - Kanban teams with Of...SPUnite17 Caveman Project Management for Agile - Scrum - Kanban teams with Of...
SPUnite17 Caveman Project Management for Agile - Scrum - Kanban teams with Of...NCCOMMS
 
SPUnite17 Secure Collaboration with AIP
SPUnite17 Secure Collaboration with AIPSPUnite17 Secure Collaboration with AIP
SPUnite17 Secure Collaboration with AIPNCCOMMS
 
SPUnite17 Deep Dive Building Solutions
SPUnite17 Deep Dive Building SolutionsSPUnite17 Deep Dive Building Solutions
SPUnite17 Deep Dive Building SolutionsNCCOMMS
 
SPUnite17 O365 Practical Adoption Strategies
SPUnite17 O365 Practical Adoption StrategiesSPUnite17 O365 Practical Adoption Strategies
SPUnite17 O365 Practical Adoption StrategiesNCCOMMS
 
SPUnite17 Setting Up Development Environment
SPUnite17 Setting Up Development EnvironmentSPUnite17 Setting Up Development Environment
SPUnite17 Setting Up Development EnvironmentNCCOMMS
 
SPUnite17 Getting up to Speed with React
SPUnite17 Getting up to Speed with ReactSPUnite17 Getting up to Speed with React
SPUnite17 Getting up to Speed with ReactNCCOMMS
 
SPUnite17 Yet Another Search Driven Publishing Site
SPUnite17 Yet Another Search Driven Publishing SiteSPUnite17 Yet Another Search Driven Publishing Site
SPUnite17 Yet Another Search Driven Publishing SiteNCCOMMS
 

En vedette (17)

SPUnite17 The Accidental SPO Admin
SPUnite17 The Accidental SPO AdminSPUnite17 The Accidental SPO Admin
SPUnite17 The Accidental SPO Admin
 
SPUnite17 The New Enterprise Content Management
SPUnite17 The New Enterprise Content ManagementSPUnite17 The New Enterprise Content Management
SPUnite17 The New Enterprise Content Management
 
SPUnite17 Unified Search Experiences
SPUnite17 Unified Search ExperiencesSPUnite17 Unified Search Experiences
SPUnite17 Unified Search Experiences
 
SPUnite17 Cost Effective Risk Mitigation
SPUnite17 Cost Effective Risk MitigationSPUnite17 Cost Effective Risk Mitigation
SPUnite17 Cost Effective Risk Mitigation
 
SPUnite17 SPFx Extensions
SPUnite17 SPFx ExtensionsSPUnite17 SPFx Extensions
SPUnite17 SPFx Extensions
 
SPUnite17 Big Move - Learning from the Shell O365 Migration
SPUnite17 Big Move - Learning from the Shell O365 MigrationSPUnite17 Big Move - Learning from the Shell O365 Migration
SPUnite17 Big Move - Learning from the Shell O365 Migration
 
SPUnite17 Introducing Logic Apps
SPUnite17 Introducing Logic AppsSPUnite17 Introducing Logic Apps
SPUnite17 Introducing Logic Apps
 
SPUnite17 Transforming your Organisation into a Digital Workplace
SPUnite17 Transforming your Organisation into a Digital WorkplaceSPUnite17 Transforming your Organisation into a Digital Workplace
SPUnite17 Transforming your Organisation into a Digital Workplace
 
SPUnite17 If I Ran the SharePoint Zoo
SPUnite17 If I Ran the SharePoint ZooSPUnite17 If I Ran the SharePoint Zoo
SPUnite17 If I Ran the SharePoint Zoo
 
SPUnite17 Who Are You and What Do You Want
SPUnite17 Who Are You and What Do You WantSPUnite17 Who Are You and What Do You Want
SPUnite17 Who Are You and What Do You Want
 
SPUnite17 Caveman Project Management for Agile - Scrum - Kanban teams with Of...
SPUnite17 Caveman Project Management for Agile - Scrum - Kanban teams with Of...SPUnite17 Caveman Project Management for Agile - Scrum - Kanban teams with Of...
SPUnite17 Caveman Project Management for Agile - Scrum - Kanban teams with Of...
 
SPUnite17 Secure Collaboration with AIP
SPUnite17 Secure Collaboration with AIPSPUnite17 Secure Collaboration with AIP
SPUnite17 Secure Collaboration with AIP
 
SPUnite17 Deep Dive Building Solutions
SPUnite17 Deep Dive Building SolutionsSPUnite17 Deep Dive Building Solutions
SPUnite17 Deep Dive Building Solutions
 
SPUnite17 O365 Practical Adoption Strategies
SPUnite17 O365 Practical Adoption StrategiesSPUnite17 O365 Practical Adoption Strategies
SPUnite17 O365 Practical Adoption Strategies
 
SPUnite17 Setting Up Development Environment
SPUnite17 Setting Up Development EnvironmentSPUnite17 Setting Up Development Environment
SPUnite17 Setting Up Development Environment
 
SPUnite17 Getting up to Speed with React
SPUnite17 Getting up to Speed with ReactSPUnite17 Getting up to Speed with React
SPUnite17 Getting up to Speed with React
 
SPUnite17 Yet Another Search Driven Publishing Site
SPUnite17 Yet Another Search Driven Publishing SiteSPUnite17 Yet Another Search Driven Publishing Site
SPUnite17 Yet Another Search Driven Publishing Site
 

Similaire à SPUnite17 Timer Jobs Event Handlers

O365Con19 - Developing Timerjob and Eventhandler Equivalents - Adis Jugo
O365Con19 - Developing Timerjob and Eventhandler Equivalents - Adis JugoO365Con19 - Developing Timerjob and Eventhandler Equivalents - Adis Jugo
O365Con19 - Developing Timerjob and Eventhandler Equivalents - Adis JugoNCCOMMS
 
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 JackettBrian T. Jackett
 
Code first in the cloud: going serverless with Azure
Code first in the cloud: going serverless with AzureCode first in the cloud: going serverless with Azure
Code first in the cloud: going serverless with AzureJeremy Likness
 
Cloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps  with AzureCloud Powered Mobile Apps  with Azure
Cloud Powered Mobile Apps with AzureKris Wagner
 
From Zero to Serverless
From Zero to ServerlessFrom Zero to Serverless
From Zero to ServerlessChad Green
 
Mobile Services for Windows Azure
Mobile Services for Windows AzureMobile Services for Windows Azure
Mobile Services for Windows AzureAbhishek Sur
 
Connector API Apps
Connector API AppsConnector API Apps
Connector API AppsBizTalk360
 
Getting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesGetting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesAmazon Web Services
 
Building API in the cloud using Azure Functions
Building API in the cloud using Azure FunctionsBuilding API in the cloud using Azure Functions
Building API in the cloud using Azure FunctionsAleksandar Bozinovski
 
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flowVincent Biret
 
Introduction to Microsoft Flow and Azure Functions
Introduction to Microsoft Flow and Azure FunctionsIntroduction to Microsoft Flow and Azure Functions
Introduction to Microsoft Flow and Azure FunctionsBIWUG
 
JoTechies - Azure Functions Using c#
JoTechies - Azure Functions Using c#JoTechies - Azure Functions Using c#
JoTechies - Azure Functions Using c#JoTechies
 
Azure API Apps
Azure API AppsAzure API Apps
Azure API AppsBizTalk360
 
#SPFestSea azr302 The SharePoint Framework and the #MicrosoftGraph under ster...
#SPFestSea azr302 The SharePoint Framework and the #MicrosoftGraph under ster...#SPFestSea azr302 The SharePoint Framework and the #MicrosoftGraph under ster...
#SPFestSea azr302 The SharePoint Framework and the #MicrosoftGraph under ster...Vincent Biret
 
Play with azure functions
Play with azure functionsPlay with azure functions
Play with azure functionsBaskar rao Dsn
 
Microservices: Architecting for Innovation - Level 300
Microservices: Architecting for Innovation - Level 300Microservices: Architecting for Innovation - Level 300
Microservices: Architecting for Innovation - Level 300Amazon Web Services
 
Azure Functions in Action #CodePaLOUsa
Azure Functions in Action #CodePaLOUsaAzure Functions in Action #CodePaLOUsa
Azure Functions in Action #CodePaLOUsaBaskar rao Dsn
 
Azure Serverless with Functions, Logic Apps, and Event Grid
Azure Serverless with Functions, Logic Apps, and Event Grid  Azure Serverless with Functions, Logic Apps, and Event Grid
Azure Serverless with Functions, Logic Apps, and Event Grid WinWire Technologies Inc
 
AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)
AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)
AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)Amazon Web Services
 
Heading to the Cloud : Introduction to deploying a Provider-Hosted App in Azure
Heading to the Cloud : Introduction to deploying a Provider-Hosted App in AzureHeading to the Cloud : Introduction to deploying a Provider-Hosted App in Azure
Heading to the Cloud : Introduction to deploying a Provider-Hosted App in AzureXenox Garavito
 

Similaire à SPUnite17 Timer Jobs Event Handlers (20)

O365Con19 - Developing Timerjob and Eventhandler Equivalents - Adis Jugo
O365Con19 - Developing Timerjob and Eventhandler Equivalents - Adis JugoO365Con19 - Developing Timerjob and Eventhandler Equivalents - Adis Jugo
O365Con19 - Developing Timerjob and Eventhandler Equivalents - Adis Jugo
 
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
 
Code first in the cloud: going serverless with Azure
Code first in the cloud: going serverless with AzureCode first in the cloud: going serverless with Azure
Code first in the cloud: going serverless with Azure
 
Cloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps  with AzureCloud Powered Mobile Apps  with Azure
Cloud Powered Mobile Apps with Azure
 
From Zero to Serverless
From Zero to ServerlessFrom Zero to Serverless
From Zero to Serverless
 
Mobile Services for Windows Azure
Mobile Services for Windows AzureMobile Services for Windows Azure
Mobile Services for Windows Azure
 
Connector API Apps
Connector API AppsConnector API Apps
Connector API Apps
 
Getting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesGetting Started with Serverless Architectures
Getting Started with Serverless Architectures
 
Building API in the cloud using Azure Functions
Building API in the cloud using Azure FunctionsBuilding API in the cloud using Azure Functions
Building API in the cloud using Azure Functions
 
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow
 
Introduction to Microsoft Flow and Azure Functions
Introduction to Microsoft Flow and Azure FunctionsIntroduction to Microsoft Flow and Azure Functions
Introduction to Microsoft Flow and Azure Functions
 
JoTechies - Azure Functions Using c#
JoTechies - Azure Functions Using c#JoTechies - Azure Functions Using c#
JoTechies - Azure Functions Using c#
 
Azure API Apps
Azure API AppsAzure API Apps
Azure API Apps
 
#SPFestSea azr302 The SharePoint Framework and the #MicrosoftGraph under ster...
#SPFestSea azr302 The SharePoint Framework and the #MicrosoftGraph under ster...#SPFestSea azr302 The SharePoint Framework and the #MicrosoftGraph under ster...
#SPFestSea azr302 The SharePoint Framework and the #MicrosoftGraph under ster...
 
Play with azure functions
Play with azure functionsPlay with azure functions
Play with azure functions
 
Microservices: Architecting for Innovation - Level 300
Microservices: Architecting for Innovation - Level 300Microservices: Architecting for Innovation - Level 300
Microservices: Architecting for Innovation - Level 300
 
Azure Functions in Action #CodePaLOUsa
Azure Functions in Action #CodePaLOUsaAzure Functions in Action #CodePaLOUsa
Azure Functions in Action #CodePaLOUsa
 
Azure Serverless with Functions, Logic Apps, and Event Grid
Azure Serverless with Functions, Logic Apps, and Event Grid  Azure Serverless with Functions, Logic Apps, and Event Grid
Azure Serverless with Functions, Logic Apps, and Event Grid
 
AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)
AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)
AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)
 
Heading to the Cloud : Introduction to deploying a Provider-Hosted App in Azure
Heading to the Cloud : Introduction to deploying a Provider-Hosted App in AzureHeading to the Cloud : Introduction to deploying a Provider-Hosted App in Azure
Heading to the Cloud : Introduction to deploying a Provider-Hosted App in Azure
 

Plus de NCCOMMS

O365Con19 - UI:UX 101 Learn How to Design Custom Experiences for SharePoint -...
O365Con19 - UI:UX 101 Learn How to Design Custom Experiences for SharePoint -...O365Con19 - UI:UX 101 Learn How to Design Custom Experiences for SharePoint -...
O365Con19 - UI:UX 101 Learn How to Design Custom Experiences for SharePoint -...NCCOMMS
 
O365Con19 - Model-driven Apps or Canvas Apps? - Rick Bakker
O365Con19 - Model-driven Apps or Canvas Apps? - Rick BakkerO365Con19 - Model-driven Apps or Canvas Apps? - Rick Bakker
O365Con19 - Model-driven Apps or Canvas Apps? - Rick BakkerNCCOMMS
 
O365Con19 - Office 365 Groups Surviving the Real World - Jasper Oosterveld
O365Con19 - Office 365 Groups Surviving the Real World - Jasper OosterveldO365Con19 - Office 365 Groups Surviving the Real World - Jasper Oosterveld
O365Con19 - Office 365 Groups Surviving the Real World - Jasper OosterveldNCCOMMS
 
O365Con19 - Sharepoint with (Artificial) Intelligence - Adis Jugo
O365Con19 - Sharepoint with (Artificial) Intelligence - Adis JugoO365Con19 - Sharepoint with (Artificial) Intelligence - Adis Jugo
O365Con19 - Sharepoint with (Artificial) Intelligence - Adis JugoNCCOMMS
 
O365Con19 - What Do You Mean 90 days Isn't Enough - Paul Hunt
O365Con19 - What Do You Mean 90 days Isn't Enough - Paul HuntO365Con19 - What Do You Mean 90 days Isn't Enough - Paul Hunt
O365Con19 - What Do You Mean 90 days Isn't Enough - Paul HuntNCCOMMS
 
O365Con19 - Tips and Tricks for Complex Migrations to SharePoint Online - And...
O365Con19 - Tips and Tricks for Complex Migrations to SharePoint Online - And...O365Con19 - Tips and Tricks for Complex Migrations to SharePoint Online - And...
O365Con19 - Tips and Tricks for Complex Migrations to SharePoint Online - And...NCCOMMS
 
O365Con19 - Start Developing Teams Tabs and SharePoint Webparts with SPFX - O...
O365Con19 - Start Developing Teams Tabs and SharePoint Webparts with SPFX - O...O365Con19 - Start Developing Teams Tabs and SharePoint Webparts with SPFX - O...
O365Con19 - Start Developing Teams Tabs and SharePoint Webparts with SPFX - O...NCCOMMS
 
O365Con19 - Start Your Journey from Skype for Business to Teams - Sasja Beere...
O365Con19 - Start Your Journey from Skype for Business to Teams - Sasja Beere...O365Con19 - Start Your Journey from Skype for Business to Teams - Sasja Beere...
O365Con19 - Start Your Journey from Skype for Business to Teams - Sasja Beere...NCCOMMS
 
O365Con19 - Lets Get Started with Azure Container Instances - Jussi Roine
O365Con19 - Lets Get Started with Azure Container Instances - Jussi RoineO365Con19 - Lets Get Started with Azure Container Instances - Jussi Roine
O365Con19 - Lets Get Started with Azure Container Instances - Jussi RoineNCCOMMS
 
O365Con19 - Azure Blackbelt - Jussi Roine
O365Con19 - Azure Blackbelt - Jussi RoineO365Con19 - Azure Blackbelt - Jussi Roine
O365Con19 - Azure Blackbelt - Jussi RoineNCCOMMS
 
O365Con19 - Customise the UI in Modern SharePoint Workspaces - Corinna Lins
O365Con19 - Customise the UI in Modern SharePoint Workspaces - Corinna LinsO365Con19 - Customise the UI in Modern SharePoint Workspaces - Corinna Lins
O365Con19 - Customise the UI in Modern SharePoint Workspaces - Corinna LinsNCCOMMS
 
O365Con19 - Be The Protagonist of Your Modern Workplace - Corinna Lins
O365Con19 - Be The Protagonist of Your Modern Workplace - Corinna LinsO365Con19 - Be The Protagonist of Your Modern Workplace - Corinna Lins
O365Con19 - Be The Protagonist of Your Modern Workplace - Corinna LinsNCCOMMS
 
O365Con19 - How to Really Manage all your Tasks Across Microsoft 365 - Luise ...
O365Con19 - How to Really Manage all your Tasks Across Microsoft 365 - Luise ...O365Con19 - How to Really Manage all your Tasks Across Microsoft 365 - Luise ...
O365Con19 - How to Really Manage all your Tasks Across Microsoft 365 - Luise ...NCCOMMS
 
O365Con19 - Sharing Code Efficiently in your Organisation - Elio Struyf
O365Con19 - Sharing Code Efficiently in your Organisation - Elio StruyfO365Con19 - Sharing Code Efficiently in your Organisation - Elio Struyf
O365Con19 - Sharing Code Efficiently in your Organisation - Elio StruyfNCCOMMS
 
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...NCCOMMS
 
O365Con19 - Keep Control of Your Data with AIP and CA - Bram de Jager
O365Con19 - Keep Control of Your Data with AIP and CA - Bram de JagerO365Con19 - Keep Control of Your Data with AIP and CA - Bram de Jager
O365Con19 - Keep Control of Your Data with AIP and CA - Bram de JagerNCCOMMS
 
O365Con19 - Kaizala a Dive Into the Unknown - Rick van Rousselt
O365Con19 - Kaizala a Dive Into the Unknown - Rick van RousseltO365Con19 - Kaizala a Dive Into the Unknown - Rick van Rousselt
O365Con19 - Kaizala a Dive Into the Unknown - Rick van RousseltNCCOMMS
 
O365Con19 - How to Inspire Users to Unstick from Email - Luise Freese
O365Con19 - How to Inspire Users to Unstick from Email - Luise FreeseO365Con19 - How to Inspire Users to Unstick from Email - Luise Freese
O365Con19 - How to Inspire Users to Unstick from Email - Luise FreeseNCCOMMS
 
O365Con19 - O365 Identity Management and The Golden Config - Chris Goosen
O365Con19 - O365 Identity Management and The Golden Config - Chris GoosenO365Con19 - O365 Identity Management and The Golden Config - Chris Goosen
O365Con19 - O365 Identity Management and The Golden Config - Chris GoosenNCCOMMS
 
O365Con19 - Exposing Multi-Geo Capabilities in Office 365 - Paul Hunt
O365Con19 - Exposing Multi-Geo Capabilities in Office 365 - Paul HuntO365Con19 - Exposing Multi-Geo Capabilities in Office 365 - Paul Hunt
O365Con19 - Exposing Multi-Geo Capabilities in Office 365 - Paul HuntNCCOMMS
 

Plus de NCCOMMS (20)

O365Con19 - UI:UX 101 Learn How to Design Custom Experiences for SharePoint -...
O365Con19 - UI:UX 101 Learn How to Design Custom Experiences for SharePoint -...O365Con19 - UI:UX 101 Learn How to Design Custom Experiences for SharePoint -...
O365Con19 - UI:UX 101 Learn How to Design Custom Experiences for SharePoint -...
 
O365Con19 - Model-driven Apps or Canvas Apps? - Rick Bakker
O365Con19 - Model-driven Apps or Canvas Apps? - Rick BakkerO365Con19 - Model-driven Apps or Canvas Apps? - Rick Bakker
O365Con19 - Model-driven Apps or Canvas Apps? - Rick Bakker
 
O365Con19 - Office 365 Groups Surviving the Real World - Jasper Oosterveld
O365Con19 - Office 365 Groups Surviving the Real World - Jasper OosterveldO365Con19 - Office 365 Groups Surviving the Real World - Jasper Oosterveld
O365Con19 - Office 365 Groups Surviving the Real World - Jasper Oosterveld
 
O365Con19 - Sharepoint with (Artificial) Intelligence - Adis Jugo
O365Con19 - Sharepoint with (Artificial) Intelligence - Adis JugoO365Con19 - Sharepoint with (Artificial) Intelligence - Adis Jugo
O365Con19 - Sharepoint with (Artificial) Intelligence - Adis Jugo
 
O365Con19 - What Do You Mean 90 days Isn't Enough - Paul Hunt
O365Con19 - What Do You Mean 90 days Isn't Enough - Paul HuntO365Con19 - What Do You Mean 90 days Isn't Enough - Paul Hunt
O365Con19 - What Do You Mean 90 days Isn't Enough - Paul Hunt
 
O365Con19 - Tips and Tricks for Complex Migrations to SharePoint Online - And...
O365Con19 - Tips and Tricks for Complex Migrations to SharePoint Online - And...O365Con19 - Tips and Tricks for Complex Migrations to SharePoint Online - And...
O365Con19 - Tips and Tricks for Complex Migrations to SharePoint Online - And...
 
O365Con19 - Start Developing Teams Tabs and SharePoint Webparts with SPFX - O...
O365Con19 - Start Developing Teams Tabs and SharePoint Webparts with SPFX - O...O365Con19 - Start Developing Teams Tabs and SharePoint Webparts with SPFX - O...
O365Con19 - Start Developing Teams Tabs and SharePoint Webparts with SPFX - O...
 
O365Con19 - Start Your Journey from Skype for Business to Teams - Sasja Beere...
O365Con19 - Start Your Journey from Skype for Business to Teams - Sasja Beere...O365Con19 - Start Your Journey from Skype for Business to Teams - Sasja Beere...
O365Con19 - Start Your Journey from Skype for Business to Teams - Sasja Beere...
 
O365Con19 - Lets Get Started with Azure Container Instances - Jussi Roine
O365Con19 - Lets Get Started with Azure Container Instances - Jussi RoineO365Con19 - Lets Get Started with Azure Container Instances - Jussi Roine
O365Con19 - Lets Get Started with Azure Container Instances - Jussi Roine
 
O365Con19 - Azure Blackbelt - Jussi Roine
O365Con19 - Azure Blackbelt - Jussi RoineO365Con19 - Azure Blackbelt - Jussi Roine
O365Con19 - Azure Blackbelt - Jussi Roine
 
O365Con19 - Customise the UI in Modern SharePoint Workspaces - Corinna Lins
O365Con19 - Customise the UI in Modern SharePoint Workspaces - Corinna LinsO365Con19 - Customise the UI in Modern SharePoint Workspaces - Corinna Lins
O365Con19 - Customise the UI in Modern SharePoint Workspaces - Corinna Lins
 
O365Con19 - Be The Protagonist of Your Modern Workplace - Corinna Lins
O365Con19 - Be The Protagonist of Your Modern Workplace - Corinna LinsO365Con19 - Be The Protagonist of Your Modern Workplace - Corinna Lins
O365Con19 - Be The Protagonist of Your Modern Workplace - Corinna Lins
 
O365Con19 - How to Really Manage all your Tasks Across Microsoft 365 - Luise ...
O365Con19 - How to Really Manage all your Tasks Across Microsoft 365 - Luise ...O365Con19 - How to Really Manage all your Tasks Across Microsoft 365 - Luise ...
O365Con19 - How to Really Manage all your Tasks Across Microsoft 365 - Luise ...
 
O365Con19 - Sharing Code Efficiently in your Organisation - Elio Struyf
O365Con19 - Sharing Code Efficiently in your Organisation - Elio StruyfO365Con19 - Sharing Code Efficiently in your Organisation - Elio Struyf
O365Con19 - Sharing Code Efficiently in your Organisation - Elio Struyf
 
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
 
O365Con19 - Keep Control of Your Data with AIP and CA - Bram de Jager
O365Con19 - Keep Control of Your Data with AIP and CA - Bram de JagerO365Con19 - Keep Control of Your Data with AIP and CA - Bram de Jager
O365Con19 - Keep Control of Your Data with AIP and CA - Bram de Jager
 
O365Con19 - Kaizala a Dive Into the Unknown - Rick van Rousselt
O365Con19 - Kaizala a Dive Into the Unknown - Rick van RousseltO365Con19 - Kaizala a Dive Into the Unknown - Rick van Rousselt
O365Con19 - Kaizala a Dive Into the Unknown - Rick van Rousselt
 
O365Con19 - How to Inspire Users to Unstick from Email - Luise Freese
O365Con19 - How to Inspire Users to Unstick from Email - Luise FreeseO365Con19 - How to Inspire Users to Unstick from Email - Luise Freese
O365Con19 - How to Inspire Users to Unstick from Email - Luise Freese
 
O365Con19 - O365 Identity Management and The Golden Config - Chris Goosen
O365Con19 - O365 Identity Management and The Golden Config - Chris GoosenO365Con19 - O365 Identity Management and The Golden Config - Chris Goosen
O365Con19 - O365 Identity Management and The Golden Config - Chris Goosen
 
O365Con19 - Exposing Multi-Geo Capabilities in Office 365 - Paul Hunt
O365Con19 - Exposing Multi-Geo Capabilities in Office 365 - Paul HuntO365Con19 - Exposing Multi-Geo Capabilities in Office 365 - Paul Hunt
O365Con19 - Exposing Multi-Geo Capabilities in Office 365 - Paul Hunt
 

Dernier

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
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
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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
 
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
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 

Dernier (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
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...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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...
 
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
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 

SPUnite17 Timer Jobs Event Handlers

  • 1. Timer Jobs and Event Handlers in SP Online Adis Jugo
  • 2.
  • 3. Slide 3 Adis Jugo Microsoft MVP Office Development Microsoft MVP Office Servers and Services In IT for way too long (first money earned with development in 91) Still dreaming of a Ćevapi restaurant or a vineyard Director of Product Technology at skybow AG Born in Sarajevo, B&H, living in Bingen, Germany Blogger, speaker, author. adisjugo.com
  • 4. What is this session about? • Daemons • Authentication • Timer Jobs • Event Handlers
  • 5. Why this session • skybow Solution Studio Online • SaaS offering • 35000 users at the moment • Challenges: • Performance • Scalability • Robustness • Identity, Authentication and Authorization • Maintainability and operations
  • 6. What are daemons • Software which runs as a background tasks • Timer • Continuous • Triggered
  • 7. Daemons in SharePoint Development? • Event handlers • Lists • Items • Site • Security,,, • Timer Jobs • Timer Intervals • Always in context • Site context • User context • Change context • …
  • 8. Our options in cloud?
  • 9. Daemon options in cloud Flow Power User Logic Apps IT Pro Dev Web Jobs Dev Functions Dev
  • 10. Flow Logic Apps Audience Office workers, business users IT pros, developers Scenarios Self-service Mission-critical Design Tool In-browser and mobile app, UI only In-browser and Visual Studio, Code view available DevOps Ad-hoc, develop in production source control, testing, support, and automation and manageability in Azure Resource Management Security Standard practices: data sovereignty, encryption at rest for sensitive data, etc. Security assurance of Azure: Azure Security, Security Center, audit logs, and more.
  • 11. Daemon options in cloud Flow Power User Logic Apps IT Pro Dev Web Jobs Dev Functions Dev
  • 12. Webjobs • Manually triggered or run on a schedule. • Continuously running (aka running constantly, all the time) • Triggered based on events in other Azure Services, • Storage Queue or Service Buss • Long running and Short Running • Implemented in any language as either a command-line executable or script • One size fits all
  • 13. Azure Functions • Lightweight, flexible • More difficult to operate and manage • Consumption Plan • 5 minutes threshold • App Service Plan • Share resources with a Web App, API App, or Mobile App • Dedicated resources for long running / frequent Azure Functions
  • 14. Functions WebJobs Scaling Configurationless scaling Scale with App Service plan Pricing Pay-per-use or part of App Service plan Part of App Service plan Run-type Triggered, scheduled (by timer trigger) Triggered, continuous, scheduled Trigger events Timer, Azure Cosmos DB, Azure Event Hubs, HTTP/WebHook, Azure App Service Mobile Apps, Azure Notification Hubs, Azure Service Bus, Azure Storage HTTP/WebHook, Timer, Queue, Blob In-browser development Supported Not Supported C# Supported Supported F# Supported Not Supported JavaScript Supported Supported Java Supported Not supported Bash Experimental Supported Windows scripting (.cmd, .bat) Experimental Supported PowerShell Experimental Supported PHP Experimental Supported Python Experimental Supported TypeScript Experimental Not Supported
  • 16. Azure Active Directory • Microsoft’s Cloud Identity service • Glue that holds all together Applications Devices Principals
  • 17. Protocols supported by AD • WS-Federation • SAML-P • OAuth 2.0 • OpenID Connect
  • 19. Azure AD Application mechanics
  • 20. OAuth 2.0 •No capturing user credentials •Fine-grained access scopes •Supports MFA and federated user sign-in •Long-term access through refresh tokens
  • 23. Start online bank account Post clerk performs the identification, issues identification confirmation You send the identification confirmation to bank Bank issues you a token device You perform the bank operations End
  • 24. App Only • App Secret • App Certificate
  • 27. Slide 27 Timer Jobs • Register an app in AAD • Add App-only permissions • Create a certificate • Store certificate credentials • Create an Azure Function • Read certificate • Create authentication token from certificate • Call SharePoint Logic
  • 28. Slide 28 Get cert keys $certPath = "X:[path][certificatenname].cer" $cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 $cert.Import($certPath) $rawCert = $cert.GetRawCertData() $base64Cert = [System.Convert]::ToBase64String($rawCert) $rawCertHash = $cert.GetCertHash() $base64CertHash = [System.Convert]::ToBase64String($rawCertHash) $KeyId = [System.Guid]::NewGuid().ToString() Write-Output "Base 64 Certificate" Write-Output $base64Cert Write-Output "Base 64 Certificate Hash" Write-Output $base64CertHash Write-Output "Key ID" Write-Output $KeyId
  • 29. Slide 29 Remote Event Receivers VS webhooks • RER • Provider Hosted AddIn • App Infrastructure • Webhooks • 1. ExpirationPeriod max 6 months. • 2. Only synchronous (“-ed” events), async (“-ing” events) are not possible.
  • 30. Slide 30 Webhooks • Subscription to the specific SharePoint resource, ie. lists • Resource - The resource endpoint URL you are creating the subscription for. For example a SharePoint List API URL. • Server notification URL - Your service endpoint URL. HTTP POST • Expiration date – max six months • Client State - An opaque string passed back to the client on all notifications. You can use this for validating notifications, tagging different subscriptions, or other reasons.
  • 32. Slide 32 Webhook validation req/resp • POST https://contoso.azurewebsites.net/your/webhook/service? validationToken={randomString}
  • 33. Slide 33 Notifications • Inform your service endpoint that a change has happened on a subscription • Multiple notifications to your application may be batched together into a single request, if multiple changes occurred in the resource within the same time period. • The notification payload body will also contain your client state if you used it when creating the subscription. • The notification doesn't include any information about the changes that triggered it. Use GetChanges API
  • 35. Slide 35 DEMO Create Webhook, send notifications
  • 36. Slide 36 Error Handling • Any response with an HTTP status code outside of the 200-299 range, or that times out, will be attempted again over the next several minutes. • If the request is not successful after 15 minutes, the notification is dropped. • Future notifications will still be attempted to your application, although the service may remove the subscription if a sufficient number of failures are detected. • SharePoint performs a retry of 5 times with a 5 minute wait time between the attempts.
  • 38. Slide 38 Reading the queue • Anything, really • Console app • Another Function • Web Job • Authentication • Read token from the request • Create new access token • User context (delegated) • App context (app only) => Elevated permissions simulation
  • 39. Slide 39 Getting Changes ChangeToken lastChangeToken = null; lastChangeToken = new ChangeToken(); lastChangeToken.StringValue = string.Format("1;3;{0};{1};-1", listID, DateTime.Now.AddMinutes(-1).ToUniversalTime().Ticks.ToString()); ChangeQuery changeQuery = new ChangeQuery(false, true); changeQuery.Item = true; changeQuery.ChangeTokenStart = lastChangeToken; var changes = changedList.GetChanges(changeQuery); SPClientContext.Load(changes); SPClientContext.ExecuteQuery();
  • 41. Slide 41 Recap • Daemons in SharePoint Online with Azure • Functions, Webjobs, etc. • Azure Active Directory functions as a glue • App Only permission for “timer jobs” • Impersonification (Delegated permissions) for event handlers • App only for event handlers when “elevated permissions” are needed • Azure is your best friend ☺
  • 42. Plumbing is not easy (yet) • Series of blog posts at • http://adisjugo.com • @adisjugo