SlideShare a Scribd company logo
1 of 34
Creating scalable cloud solutions with Office 365 and Azure
Speaker: Adis Jugo
Email: adis@jugo.ba
Social: @adisjugo
Thank you to our sponsors!
Sponsor Raffle!!!
• Each sponsor stamp will opt you into sponsor raffle prize and mailings
• Collect 7 or more sponsor stamps on your Badge to be eligible for the
Xbox One X
• Hand entire Badge/ ribbon back into registration desk at end of day to
enter the prize draw
• Badges drawn at 5.15pm in Trinobantes (if you are drawn and do not
have the pre-requisite stamp/s….. You’ll lose!)
Social
• Tweet on #spscambridge OR #sqlsatcambridge
• We have Giant Jenga, Giant Connect 4, Giant Kerplunk and Sack races!
• Post event, join us for a SharePint/ SQLPint from our bar
• Don’t forget to thank Sponsors, Volunteers and Speakers!
• The event doors will close at 6.30pm
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 restaurant or a vineyard
Director of Product Technology at skybow AG
Mastermind behind European Collaboration Summit (www.collabsummit.eu)
Born in Sarajevo, Bosnia, living in Bingen, Germany
Blogger, speaker, author. adisjugo.com
What is this session about?
• “Modern”
• Applied known, old, “unmodern” architecture patterns in “modern” cloud solutions
• Focus on Office 365 and SharePoint Online
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
 Performance
 Scalability
 Robustness and scalability
 Auth, Identity
 Maintainability and operations
Not a new phenomenon
• Cobol
• …
• Windows Forms => Database
• PHP => MySQL
• “Classic” SharePoint development: Webparts talk to lists
• ...
• Modern web applications
• Model understood as DAL
• View understood as UI
• Controller understood as BL
SharePoint Framework
APPLYING DDD TO ENTERPRISE-ORIENTED MICROSOFT
CLOUD (AZURE, OFFICE 365…) SOLUTIONS
1990es: Domain Driven Design
Danger of over-architecting
SP AnythingBACKEND
SP AnythingBACKEND
FRONTEND SPFx
DEMO1: A SIMPLE HELLO WORLD WEBPART
What did we do
• MVC web part talks directly to datasource
• (SharePoint Online REST API)
• It works!
• No code reusability
• What are our options?
• Move the code for wine adding and calculation out
• Apply architecture
SP AnythingDATA SOURCES
FRONTEND SPFx
Web
Application
Mobile …DaemonWindows
DATA ACCESS LAYER APP Service
BUSINESS LAYER
APP Service Azure Functions
DAEMONS AND
HANDLERS
Authentication Logging Caching Testing
WebJob /
AzureFunction
RER/Webhook
SP AnythingDATA SOURCES
FRONTEND SPFx
Web
Application
Mobile …DaemonWindows
DATA ACCESS LAYER APP Service
BUSINESS LAYER
APP Service
WebJob /
AzureFunction
Azure Functions
DAEMONS AND
HANDLERS
Authentication Logging Caching Testing
APP ONLYDELEGATED
(IMPERSONIFICATION)
RER/Webhook
DEMO 2 – MOVING BL and DAL out
Create AAD Application
App only vs. delegated permissions
Certificates for app only
Azure Functions
Integrating AF into SPFx webparts
Other clients
AAD Application Scenarios
Microsoft Application Architecture
Guide
https://msdn.microsoft.com
/en-us/library/ff650706.aspx
Get to know your toolchain
• Azure Active Directory – Authentication
• JavaScript and Node.JS – front end
• Azure Functions – Business Layer
• Azure APP Service – BL, DAL
• Azure Application Insights – logging, monitoring
When to use what – AAD
• Authentication
• Authorization
• Application Management
• Application Capabilities
• Delegated (impersonation) vs AppOnly (Daemons)
When to use what – JavaScript and Node.JS
• User Interface - RIA
• Modern WebParts (when in SharePoint)
• Azure Functions (Business Logic)
• AAD secured Applications
When to use what – C#, .NET
• AAD secured Web Applications
• Azure Functions (Business Logic)
• Azure API Apps (BL, DAL)
When to use what – Azure Functions
• Lightweight BL
• wrappers around API Apps
• Fast development, drawbacks in development and ALM Cycle
• Limited debugging and tracing
• Plumbing less mature than in API Apps
When to use what – Azure APP
Service
• Business Layer, Data Access Layer
• Heavy-weight, reliable code
• Mature development cycle
• Use C#
• Good debugging and tracing
• Relatively easy plumbing
When to use what – Azure Application
Insights
• Logging
• Monitoring
• Analysis
• Easy plumbing
Microsoft Cloud Design Patterns
• msdn.microsoft.com/en-us/library/dn568099.aspx
• Availability
• Data Management
• Design and Implementation
• Messaging
• Management and Monitoring
• Performance & Scalability
• Resiliency
• Security
Dino Esposito: Architecting Applications for
Enterprise
• One of the best architecture books ever
• Practical applications of
• Domain Driven Design
Plumbing is not easy (yet)
• Series of blog posts at
• http://adisjugo.com
• http://blog.sharedove.com/adisjugo/index.php/2017/10/15/timerjobs-in-sharepoint-online/
• @adisjugo
THANK YOU

More Related Content

More from Adis Jugo

Developing Sharepoint 2013-powered mobile and device apps
Developing Sharepoint 2013-powered mobile and device apps Developing Sharepoint 2013-powered mobile and device apps
Developing Sharepoint 2013-powered mobile and device apps
Adis Jugo
 

More from Adis Jugo (20)

ESPC 2014: 5 Enterprise Social usecases
ESPC 2014: 5 Enterprise Social usecasesESPC 2014: 5 Enterprise Social usecases
ESPC 2014: 5 Enterprise Social usecases
 
ESPC 2014 Barcelona: It is not your Father's SharePoint - DEV
ESPC 2014 Barcelona: It is not your Father's SharePoint - DEVESPC 2014 Barcelona: It is not your Father's SharePoint - DEV
ESPC 2014 Barcelona: It is not your Father's SharePoint - DEV
 
Work Management Application in SharePoint 2013 - architecture and development
Work Management Application in SharePoint 2013 - architecture and developmentWork Management Application in SharePoint 2013 - architecture and development
Work Management Application in SharePoint 2013 - architecture and development
 
Developing Sharepoint 2013-powered mobile and device apps
Developing Sharepoint 2013-powered mobile and device apps Developing Sharepoint 2013-powered mobile and device apps
Developing Sharepoint 2013-powered mobile and device apps
 
Beyond Social – Tailor Sharepoint 2013 social features according to your need...
Beyond Social – Tailor Sharepoint 2013 social features according to your need...Beyond Social – Tailor Sharepoint 2013 social features according to your need...
Beyond Social – Tailor Sharepoint 2013 social features according to your need...
 
Sharepoint Online and Windows Azure together: Autohosted Apps
Sharepoint Online and Windows Azure together: Autohosted AppsSharepoint Online and Windows Azure together: Autohosted Apps
Sharepoint Online and Windows Azure together: Autohosted Apps
 
Developing SharePoint-powered mobile apps
Developing SharePoint-powered mobile appsDeveloping SharePoint-powered mobile apps
Developing SharePoint-powered mobile apps
 
Beyond Social – Tailor SharePoint 2013 Social features according to your need...
Beyond Social – Tailor SharePoint 2013 Social features according to your need...Beyond Social – Tailor SharePoint 2013 Social features according to your need...
Beyond Social – Tailor SharePoint 2013 Social features according to your need...
 
SharePoint in the cloud: Deep Azure apps for SharePoint 2013
SharePoint in the cloud: Deep Azure apps for SharePoint 2013SharePoint in the cloud: Deep Azure apps for SharePoint 2013
SharePoint in the cloud: Deep Azure apps for SharePoint 2013
 
Developing SharePoint-powered mobile apps
Developing SharePoint-powered mobile appsDeveloping SharePoint-powered mobile apps
Developing SharePoint-powered mobile apps
 
The Future of the Intranet: Road to Enterprise 2.0
The Future of the Intranet: Road to Enterprise 2.0The Future of the Intranet: Road to Enterprise 2.0
The Future of the Intranet: Road to Enterprise 2.0
 
Stronger than Chuck Norris: SharePoint in clouds, on earth, in subway and in ...
Stronger than Chuck Norris: SharePoint in clouds, on earth, in subway and in ...Stronger than Chuck Norris: SharePoint in clouds, on earth, in subway and in ...
Stronger than Chuck Norris: SharePoint in clouds, on earth, in subway and in ...
 
Business data in clouds, on earth, in subway and in the fruit salad (Mango an...
Business data in clouds, on earth, in subway and in the fruit salad (Mango an...Business data in clouds, on earth, in subway and in the fruit salad (Mango an...
Business data in clouds, on earth, in subway and in the fruit salad (Mango an...
 
Project Server and SharePoint Server - better together
Project Server and SharePoint Server - better togetherProject Server and SharePoint Server - better together
Project Server and SharePoint Server - better together
 
Are good SharePoint solutions only a myth?
Are good SharePoint solutions only a myth?Are good SharePoint solutions only a myth?
Are good SharePoint solutions only a myth?
 
SharePoint in the clouds, on earth, in the subway, and in a fruit salad (mang...
SharePoint in the clouds, on earth, in the subway, and in a fruit salad (mang...SharePoint in the clouds, on earth, in the subway, and in a fruit salad (mang...
SharePoint in the clouds, on earth, in the subway, and in a fruit salad (mang...
 
Are good SharePoint solutions only a myth?
Are good SharePoint solutions only a myth?Are good SharePoint solutions only a myth?
Are good SharePoint solutions only a myth?
 
Project Server and SharePoint Server - better together
Project Server and SharePoint Server - better togetherProject Server and SharePoint Server - better together
Project Server and SharePoint Server - better together
 
The Future of the Intranet: Road to Enterprise 2.0
The Future of the Intranet: Road to Enterprise 2.0The Future of the Intranet: Road to Enterprise 2.0
The Future of the Intranet: Road to Enterprise 2.0
 
First look at SharePoint 2013
First look at SharePoint 2013First look at SharePoint 2013
First look at SharePoint 2013
 

Recently uploaded

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 

Recently uploaded (20)

Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
%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
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
%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
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%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 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
 
%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 

SPS Cambridge 2018: Using architecture patterns in designing enterprise-scale solutions with Microsoft Azure and Office

  • 1. Creating scalable cloud solutions with Office 365 and Azure Speaker: Adis Jugo Email: adis@jugo.ba Social: @adisjugo
  • 2. Thank you to our sponsors!
  • 3. Sponsor Raffle!!! • Each sponsor stamp will opt you into sponsor raffle prize and mailings • Collect 7 or more sponsor stamps on your Badge to be eligible for the Xbox One X • Hand entire Badge/ ribbon back into registration desk at end of day to enter the prize draw • Badges drawn at 5.15pm in Trinobantes (if you are drawn and do not have the pre-requisite stamp/s….. You’ll lose!)
  • 4. Social • Tweet on #spscambridge OR #sqlsatcambridge • We have Giant Jenga, Giant Connect 4, Giant Kerplunk and Sack races! • Post event, join us for a SharePint/ SQLPint from our bar • Don’t forget to thank Sponsors, Volunteers and Speakers! • The event doors will close at 6.30pm
  • 5. 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 restaurant or a vineyard Director of Product Technology at skybow AG Mastermind behind European Collaboration Summit (www.collabsummit.eu) Born in Sarajevo, Bosnia, living in Bingen, Germany Blogger, speaker, author. adisjugo.com
  • 6.
  • 7. What is this session about? • “Modern” • Applied known, old, “unmodern” architecture patterns in “modern” cloud solutions • Focus on Office 365 and SharePoint Online
  • 8. 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
  • 9.  Performance  Scalability  Robustness and scalability  Auth, Identity  Maintainability and operations
  • 10. Not a new phenomenon • Cobol • … • Windows Forms => Database • PHP => MySQL • “Classic” SharePoint development: Webparts talk to lists • ... • Modern web applications • Model understood as DAL • View understood as UI • Controller understood as BL
  • 11.
  • 13. APPLYING DDD TO ENTERPRISE-ORIENTED MICROSOFT CLOUD (AZURE, OFFICE 365…) SOLUTIONS
  • 14. 1990es: Domain Driven Design Danger of over-architecting
  • 17. DEMO1: A SIMPLE HELLO WORLD WEBPART
  • 18. What did we do • MVC web part talks directly to datasource • (SharePoint Online REST API) • It works! • No code reusability • What are our options? • Move the code for wine adding and calculation out • Apply architecture
  • 19. SP AnythingDATA SOURCES FRONTEND SPFx Web Application Mobile …DaemonWindows DATA ACCESS LAYER APP Service BUSINESS LAYER APP Service Azure Functions DAEMONS AND HANDLERS Authentication Logging Caching Testing WebJob / AzureFunction RER/Webhook
  • 20. SP AnythingDATA SOURCES FRONTEND SPFx Web Application Mobile …DaemonWindows DATA ACCESS LAYER APP Service BUSINESS LAYER APP Service WebJob / AzureFunction Azure Functions DAEMONS AND HANDLERS Authentication Logging Caching Testing APP ONLYDELEGATED (IMPERSONIFICATION) RER/Webhook
  • 21. DEMO 2 – MOVING BL and DAL out Create AAD Application App only vs. delegated permissions Certificates for app only Azure Functions Integrating AF into SPFx webparts Other clients
  • 24. Get to know your toolchain • Azure Active Directory – Authentication • JavaScript and Node.JS – front end • Azure Functions – Business Layer • Azure APP Service – BL, DAL • Azure Application Insights – logging, monitoring
  • 25. When to use what – AAD • Authentication • Authorization • Application Management • Application Capabilities • Delegated (impersonation) vs AppOnly (Daemons)
  • 26. When to use what – JavaScript and Node.JS • User Interface - RIA • Modern WebParts (when in SharePoint) • Azure Functions (Business Logic) • AAD secured Applications
  • 27. When to use what – C#, .NET • AAD secured Web Applications • Azure Functions (Business Logic) • Azure API Apps (BL, DAL)
  • 28. When to use what – Azure Functions • Lightweight BL • wrappers around API Apps • Fast development, drawbacks in development and ALM Cycle • Limited debugging and tracing • Plumbing less mature than in API Apps
  • 29. When to use what – Azure APP Service • Business Layer, Data Access Layer • Heavy-weight, reliable code • Mature development cycle • Use C# • Good debugging and tracing • Relatively easy plumbing
  • 30. When to use what – Azure Application Insights • Logging • Monitoring • Analysis • Easy plumbing
  • 31. Microsoft Cloud Design Patterns • msdn.microsoft.com/en-us/library/dn568099.aspx • Availability • Data Management • Design and Implementation • Messaging • Management and Monitoring • Performance & Scalability • Resiliency • Security
  • 32. Dino Esposito: Architecting Applications for Enterprise • One of the best architecture books ever • Practical applications of • Domain Driven Design
  • 33. Plumbing is not easy (yet) • Series of blog posts at • http://adisjugo.com • http://blog.sharedove.com/adisjugo/index.php/2017/10/15/timerjobs-in-sharepoint-online/ • @adisjugo

Editor's Notes

  1. VS 2013 with console VS 2013 empty VS 2012 with WP emulator SP Designer Microsoft Azure (IE) Win Dev Portal (IE) Dev site (Chrome)
  2. VS 2013 with console VS 2013 empty VS 2012 with WP emulator SP Designer Microsoft Azure (IE) Win Dev Portal (IE) Dev site (Chrome)