3. Vincent Biret
Passionate about development, community and technologies
@baywet
bit.ly/vince365
MVP Office Servers and Services
Azure and Office 365 developer @ 2toLead
4. Often we think we need more than what we actually need and end up over-designing
Fact – development can get complex
5. That’s, and other causes, leads to spending way more than we thought
Fact – costs increase rapidly
6. Workflows and SharePoint always has been a love and hate story
Your experience?
• Customizing SharePoint Workflows with SPD?
• Developing WF with Visual Studio?
• Maintaining a WF infrastructure?
7. Let’s try to find better and more enjoyable tools that’ll make us more productive
Why this session?
• SharePoint workflows are a complicated thing
• Limited to SharePoint
• Software development is costly
• Reusing what already exists
8. Users build flows, developers extend capabilities with Azure Functions
The Team
Users Devs
9. Agenda
• Demo (“beer locator” solution)
• Introduction to Microsoft Flow
• Introduction to Azure Functions
• Conclusion
14. Cloud based solution for workflows provided by Microsoft with or without Office 365
Description
• User based workflow solution
• Connectors based (extensible)
• Web editor
• You can leverage on prem data via a gateway
• Steps based concept
• Numerous templates already available
15. 171 connectors to date, most of them are free (might require a service purchase), some
require a premium license
Some Services
17. You can either use it for free, have it as part of your office 365 plan or add it to it
Pricing
18. Good for 80% of the workloads, I’d avoid it for mission critical workflows for now
Some remarks
• NEW: performances are
guaranteed for paid tiers
• NEW: retry policies
• User based execution context
• NEW: import/export as
template or logic app
• Inconstancies Folder/SPItem
19. Devs have multiple ways to integrate, from the one-deal integration to the ISV
What about the devs?
• WebHooks to start the flows
• Private API’s => use of swagger + AAD app
• Public API’s => Swagger/OpenAPI => flowdev@microsoft.com
• Catalog => Iframes + URL params system or SDK JS
21. Microsoft’s response to the serverless opening market, allowing you to run code and just
not care.
Azure Functions
• Run « pieces of code »
• Focus on code, nothing else
• Supported by Azure App Service/WebJobs
• .NET is .net standard
• backed by runtime 4.7 for now
• soon by asp.net core / dotnet core
• NEW: now available in most of the regions
• PREVIEW: integration with MS Graph
22. Multiple languages supported which lowers the entry cost as the devs in your company
probably already master one or two of those
Supported langages
23. Functions can be triggered periodically, on events, http/webhook or using the bot
framework
Triggers
24. Triggers/Inputs/Outputs
• One trigger per function
• Can have multiple inputs (SQL, Azure Storage, DocumentDB…)
• Can have multiple outputs (same as inputs + http, SendGrid, Twilio…)
25. The more control you want, the lower in the stack, the more simplicity the higher
How to chose?
f
WebJob-App
Service
Cloud Service
VM
On prem
si
m
pl
ic
it
y
c
o
n
tr
o
l
26. SDK is still in preview but usefull to implement DevOps and more advanced scenarios
Tools
• Web Editor
• Git + Visual Studio
• VS 2015 update 3 + Azure Sdk 2.9.6 + functions SDK
• VS 2017 update 3 + azure dev checked
• #r ‘’Newtonsoft.Json’’
27. Azure functions are making progress on the DevOps path allowing you to better control
the lifecycle
Continuous integration
• Publication via web deploy
• Same as a app Service
• ARM
• NEW: Can (easily) be set up via VSTS
• NEW: Deployment slots are in preview
• **VSTS hosted agent doesn’t have Azure functions SDK for now
32. WebHooks are probably the most straight forward way to integrate both together
Multiple integration options
• WebHooks (both ways)
• Simple API (limitations)
• API + swagger
• API + Swagger + PowerApps
33. I swear, I’m going to stop talking soon and let you free
Conclusion
34. Conclusion
• Native access to tons of services and data
• Short development cycles
• More power to users
• Time saved
• Money saved