SlideShare une entreprise Scribd logo
1  sur  31
Creating scalable enterprise solutions with Azure and O365
Adis Jugo
Thank You To All Of Our Sponsors!
#spsleicester
Adis Jugo
Microsoft MVP Office Apps and Services
Microsoft MVP Office Development
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
Cheering for Borussia Dortmund
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 an AAD Application
• App only vs. delegated permissions
• Certificate-based auth for App Only
• Using Azure Functions for BL layer
• Calling AF fro SPFx webparts
• Creating any other clients (web,
mobile native)
• Create a Bot which interacts with
your BL and adds Wine to SP Lists
AAD Application Scenarios
Microsoft Application Architecture Guide
https://msdn.microsoft.com/e
n-us/library/ff650706.aspx
Get to know your toolchain
• Azure Active Directory – Authentication
• JavaScript and Node.JS – web front end
• Azure Functions – Business Layer
• Azure APP Service – Business Layer, Data Access Layer
• 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 scenarios
• Wrappers around APIs hosted in App Service
• Common scenario: Exposing parts of AAD-protected APIs as anonymous or
key-protected APIs
• Fast development, drawbacks in deployment, debugging and ALM
(DevOps)
• Limited debugging and tracing
• Plumbing less mature than in App Service
When to use what – Azure APP Service
• Business Layer, Data Access Layer
• Heavy-weight, reliable code
• Mature development and ALM cycles
• 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
THANK YOU!
• Series of blog posts at
• http://adisjugo.com
• http://blog.sharedove.com/adisjugo/index.php/2017/10/15/timerjob
s-in-sharepoint-online/
• @adisjugo

Contenu connexe

Plus de Adis Jugo

ESPC 2014: 5 Enterprise Social usecases
ESPC 2014: 5 Enterprise Social usecasesESPC 2014: 5 Enterprise Social usecases
ESPC 2014: 5 Enterprise Social usecasesAdis Jugo
 
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 - DEVAdis Jugo
 
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 developmentAdis 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
 
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...Adis Jugo
 
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 AppsAdis Jugo
 
Developing SharePoint-powered mobile apps
Developing SharePoint-powered mobile appsDeveloping SharePoint-powered mobile apps
Developing SharePoint-powered mobile appsAdis Jugo
 
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...Adis Jugo
 
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 2013Adis Jugo
 
Developing SharePoint-powered mobile apps
Developing SharePoint-powered mobile appsDeveloping SharePoint-powered mobile apps
Developing SharePoint-powered mobile appsAdis Jugo
 
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.0Adis Jugo
 
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 ...Adis Jugo
 
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...Adis Jugo
 
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 togetherAdis Jugo
 
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?Adis Jugo
 
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...Adis Jugo
 
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?Adis Jugo
 
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 togetherAdis Jugo
 
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.0Adis Jugo
 
First look at SharePoint 2013
First look at SharePoint 2013First look at SharePoint 2013
First look at SharePoint 2013Adis Jugo
 

Plus de 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
 

Dernier

%+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
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benonimasabamasaba
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2
 
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 SituationJuha-Pekka Tolvanen
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
%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 kaalfonteinmasabamasaba
 
%+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
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburgmasabamasaba
 
%+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
 
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 PlatformlessWSO2
 
%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 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
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
%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 Hazyviewmasabamasaba
 
%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 midrandmasabamasaba
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Bert Jan Schrijver
 

Dernier (20)

%+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...
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
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
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%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
 
%+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 Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
%+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...
 
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
 
%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 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...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%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 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
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 

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

  • 1. Creating scalable enterprise solutions with Azure and O365 Adis Jugo
  • 2. Thank You To All Of Our Sponsors! #spsleicester
  • 3. Adis Jugo Microsoft MVP Office Apps and Services Microsoft MVP Office Development 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 Cheering for Borussia Dortmund Blogger, speaker, author. adisjugo.com
  • 4.
  • 5. What is this session about? • “Modern” • Applied known, old, “unmodern” architecture patterns in “modern” cloud solutions • Focus on Office 365 and SharePoint Online
  • 6. 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
  • 7.  Performance  Scalability  Robustness and scalability  Auth, Identity  Maintainability and operations
  • 8. 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
  • 9.
  • 11. Applying DDD to enterprise- oriented Microsoft Cloud (Azure, Office 365…) solutions
  • 12. 1990es: Domain Driven Design Danger of over-architecting
  • 15. DEMO1: a simple hello world webpart
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. DEMO 2 – MOVING BL and DAL out • Create an AAD Application • App only vs. delegated permissions • Certificate-based auth for App Only • Using Azure Functions for BL layer • Calling AF fro SPFx webparts • Creating any other clients (web, mobile native) • Create a Bot which interacts with your BL and adds Wine to SP Lists
  • 21. Microsoft Application Architecture Guide https://msdn.microsoft.com/e n-us/library/ff650706.aspx
  • 22. Get to know your toolchain • Azure Active Directory – Authentication • JavaScript and Node.JS – web front end • Azure Functions – Business Layer • Azure APP Service – Business Layer, Data Access Layer • Azure Application Insights – logging, monitoring
  • 23. When to use what – AAD • Authentication • Authorization • Application Management • Application Capabilities • Delegated (impersonation) vs AppOnly (Daemons)
  • 24. When to use what – JavaScript and Node.JS • User Interface - RIA • Modern WebParts (when in SharePoint) • Azure Functions (Business Logic) • AAD secured Applications
  • 25. When to use what – C#, .NET • AAD secured Web Applications • Azure Functions (Business Logic) • Azure API Apps (BL, DAL)
  • 26. When to use what – Azure Functions • Lightweight BL scenarios • Wrappers around APIs hosted in App Service • Common scenario: Exposing parts of AAD-protected APIs as anonymous or key-protected APIs • Fast development, drawbacks in deployment, debugging and ALM (DevOps) • Limited debugging and tracing • Plumbing less mature than in App Service
  • 27. When to use what – Azure APP Service • Business Layer, Data Access Layer • Heavy-weight, reliable code • Mature development and ALM cycles • Use C# • Good debugging and tracing • Relatively easy plumbing
  • 28. When to use what – Azure Application Insights • Logging • Monitoring • Analysis • Easy plumbing
  • 29. 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
  • 30. Dino Esposito: Architecting Applications for Enterprise • One of the best architecture books ever • Practical applications of • Domain Driven Design
  • 31. THANK YOU! • Series of blog posts at • http://adisjugo.com • http://blog.sharedove.com/adisjugo/index.php/2017/10/15/timerjob s-in-sharepoint-online/ • @adisjugo

Notes de l'éditeur

  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)