SlideShare a Scribd company logo
Top 3 Mistakes
when Building Scalable SharePoint
Applications
Talbott Crowell
ThirdM.com
@talbott
http://www.freeimages.com/photo/858598
Mistake #1
Conflating Performance and
Scalability
Terminology
Performance
Behavior and response time for a single
user or multiple users under load
Scalability
Behavior and response time for a
growing number of users and volume
under load
Performance
A Lamborghini
performs well
Scalability
A Greyhound bus performs even better than a Lamborghini when
transporting 100 passengers from Boston to San Francisco
Example
• The application is built on developer machines and performs
great (single user)
• The application is tested by the QA (quality assurance) team,
and they find the performance great (single user)
• The application gets deployed into a pilot group of 10
people, the application is still fine because the 10 people
don’t use it simultaneously (still effectively single user)
• The application is launched and thousands of users start
using it and concurrency issues arise
Solution
• Add load testing to your SDLC (software
development lifecycle)
• The earlier the better
• Many large Fortune 500 companies have a
mandatory stage in their SDLC for volume testing
• Adding it into a continuous integration environment
is even better
• Better catch it early than right before scheduled
deployment to production
Test Cases
Know BEFORE you start designing, even
before you are laying out the solution
architecture what a real world scenario
will look like
1. Use cases
2. Number of users
3. Volume of data
Volume of Data
• Application might perform just fine with one to
ten Purchase Orders, but what happens when
there are hundreds of thousands?
• Know your target volume
• Simulate that volume using scripts
• Make sure at every step of the way,
volume is considered:
• envisioning, designing, implementing,
testing…
Mistake #2
Using SharePoint lists as an
OLTP database
Solution Architecture
• SharePoint stores data in lists
• Lists are abstractions that are
physically represented as records
in the content database
• If you are building an application in
SharePoint, consider the options in
storing the data in its own
database
SQL
Design for the Future
Office 365 standard design for
Provider Hosted Apps is to use a
custom SQL database for your
application purposes and to write
back to SharePoint lists only when
needed
SharePoint 2013 Provider Hosted
•Custom Database
•ASP.NET development model
•Connect to SharePoint using CSOM
•Required security token and framework
Mistake #3
Not using CAML to fetch
items in a list
Demo
Resources
• Bit.ly Bundle:
• https://bitly.com/bundles/talbott/2
• Blog:
• http://talbottcrowell.wordpress.com/
• Twitter:
• https://twitter.com/talbott
• Office Dev Patterns and Practices on GitHub:
• http://bit.ly/o365pnp

More Related Content

What's hot

Modern SharePoint, the Good, the Bad, and the Ugly
Modern SharePoint, the Good, the Bad, and the UglyModern SharePoint, the Good, the Bad, and the Ugly
Modern SharePoint, the Good, the Bad, and the Ugly
Bob German
 
ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ...
ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ...ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ...
ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ...
European Collaboration Summit
 
Going with the Flow: Rationalizing the workflow options in SharePoint Online
Going with the Flow: Rationalizing the workflow options in SharePoint OnlineGoing with the Flow: Rationalizing the workflow options in SharePoint Online
Going with the Flow: Rationalizing the workflow options in SharePoint Online
Bob German
 
My First SharePoint Online PowerApp
My First SharePoint Online PowerAppMy First SharePoint Online PowerApp
My First SharePoint Online PowerApp
Becky Bertram
 
Share point development 101
Share point development 101Share point development 101
Share point development 101
Becky Bertram
 
ECS19 - Ahmad Najjar and Serge Luca - Power Platform Tutorial
ECS19 - Ahmad Najjar and Serge Luca - Power Platform TutorialECS19 - Ahmad Najjar and Serge Luca - Power Platform Tutorial
ECS19 - Ahmad Najjar and Serge Luca - Power Platform Tutorial
European Collaboration Summit
 
So you’re building an intranet
So you’re building an intranetSo you’re building an intranet
So you’re building an intranet
Becky Bertram
 
ECS19 - Vesa Juvonen - Getting Started With SharePoint Framework - Roadmap
ECS19 - Vesa Juvonen - Getting Started With SharePoint Framework - RoadmapECS19 - Vesa Juvonen - Getting Started With SharePoint Framework - Roadmap
ECS19 - Vesa Juvonen - Getting Started With SharePoint Framework - Roadmap
European Collaboration Summit
 
Building a Microsoft Teams Provisioning Process using Power Apps & Power Auto...
Building a Microsoft Teams Provisioning Process using Power Apps & Power Auto...Building a Microsoft Teams Provisioning Process using Power Apps & Power Auto...
Building a Microsoft Teams Provisioning Process using Power Apps & Power Auto...
Thomas Daly
 
ECS19 - Robi Voncina - Upgrade to SharePoint 2019
ECS19 - Robi Voncina - Upgrade to SharePoint 2019ECS19 - Robi Voncina - Upgrade to SharePoint 2019
ECS19 - Robi Voncina - Upgrade to SharePoint 2019
European Collaboration Summit
 
Value of share point add ins
Value of share point add insValue of share point add ins
Value of share point add ins
Prabath Fonseka
 
ECS19 - John White - Unlock SharePoint’s Reporting Secrets
ECS19 - John White - Unlock SharePoint’s Reporting SecretsECS19 - John White - Unlock SharePoint’s Reporting Secrets
ECS19 - John White - Unlock SharePoint’s Reporting Secrets
European Collaboration Summit
 
Spca2014 mirjam van olst upgrading share point 2010 custom solutions to sha...
Spca2014 mirjam van olst   upgrading share point 2010 custom solutions to sha...Spca2014 mirjam van olst   upgrading share point 2010 custom solutions to sha...
Spca2014 mirjam van olst upgrading share point 2010 custom solutions to sha...NCCOMMS
 
SPCA2013 - Apps, Apps, Apps
SPCA2013 - Apps, Apps, AppsSPCA2013 - Apps, Apps, Apps
SPCA2013 - Apps, Apps, Apps
NCCOMMS
 
ECS 19 - Chris O'Brien - The hit list - Office 365 dev techniques you should ...
ECS 19 - Chris O'Brien - The hit list - Office 365 dev techniques you should ...ECS 19 - Chris O'Brien - The hit list - Office 365 dev techniques you should ...
ECS 19 - Chris O'Brien - The hit list - Office 365 dev techniques you should ...
European Collaboration Summit
 
[White/Himmelstein] Bridge the Cloud Divide with Hybrid Business Intelligence
[White/Himmelstein] Bridge the Cloud Divide with Hybrid Business Intelligence[White/Himmelstein] Bridge the Cloud Divide with Hybrid Business Intelligence
[White/Himmelstein] Bridge the Cloud Divide with Hybrid Business Intelligence
European Collaboration Summit
 
B6 - Using Office 365 groups in Power Bi - Marco Russo
B6 - Using Office 365 groups in Power Bi - Marco RussoB6 - Using Office 365 groups in Power Bi - Marco Russo
B6 - Using Office 365 groups in Power Bi - Marco Russo
SPS Monaco
 
T5 - Mise en place de votre processus DevOps Ofice, Office 365, SharePoint - ...
T5 - Mise en place de votre processus DevOps Ofice, Office 365, SharePoint - ...T5 - Mise en place de votre processus DevOps Ofice, Office 365, SharePoint - ...
T5 - Mise en place de votre processus DevOps Ofice, Office 365, SharePoint - ...
SPS Monaco
 
O365con14 - sharepoint online applification
O365con14 - sharepoint online applificationO365con14 - sharepoint online applification
O365con14 - sharepoint online applification
NCCOMMS
 
ECS19 Elio Struyf - Setting Up Your SPFx CI/CD pipelines on Azure DevOps
ECS19 Elio Struyf - Setting Up Your SPFx CI/CD pipelines on Azure DevOpsECS19 Elio Struyf - Setting Up Your SPFx CI/CD pipelines on Azure DevOps
ECS19 Elio Struyf - Setting Up Your SPFx CI/CD pipelines on Azure DevOps
European Collaboration Summit
 

What's hot (20)

Modern SharePoint, the Good, the Bad, and the Ugly
Modern SharePoint, the Good, the Bad, and the UglyModern SharePoint, the Good, the Bad, and the Ugly
Modern SharePoint, the Good, the Bad, and the Ugly
 
ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ...
ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ...ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ...
ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ...
 
Going with the Flow: Rationalizing the workflow options in SharePoint Online
Going with the Flow: Rationalizing the workflow options in SharePoint OnlineGoing with the Flow: Rationalizing the workflow options in SharePoint Online
Going with the Flow: Rationalizing the workflow options in SharePoint Online
 
My First SharePoint Online PowerApp
My First SharePoint Online PowerAppMy First SharePoint Online PowerApp
My First SharePoint Online PowerApp
 
Share point development 101
Share point development 101Share point development 101
Share point development 101
 
ECS19 - Ahmad Najjar and Serge Luca - Power Platform Tutorial
ECS19 - Ahmad Najjar and Serge Luca - Power Platform TutorialECS19 - Ahmad Najjar and Serge Luca - Power Platform Tutorial
ECS19 - Ahmad Najjar and Serge Luca - Power Platform Tutorial
 
So you’re building an intranet
So you’re building an intranetSo you’re building an intranet
So you’re building an intranet
 
ECS19 - Vesa Juvonen - Getting Started With SharePoint Framework - Roadmap
ECS19 - Vesa Juvonen - Getting Started With SharePoint Framework - RoadmapECS19 - Vesa Juvonen - Getting Started With SharePoint Framework - Roadmap
ECS19 - Vesa Juvonen - Getting Started With SharePoint Framework - Roadmap
 
Building a Microsoft Teams Provisioning Process using Power Apps & Power Auto...
Building a Microsoft Teams Provisioning Process using Power Apps & Power Auto...Building a Microsoft Teams Provisioning Process using Power Apps & Power Auto...
Building a Microsoft Teams Provisioning Process using Power Apps & Power Auto...
 
ECS19 - Robi Voncina - Upgrade to SharePoint 2019
ECS19 - Robi Voncina - Upgrade to SharePoint 2019ECS19 - Robi Voncina - Upgrade to SharePoint 2019
ECS19 - Robi Voncina - Upgrade to SharePoint 2019
 
Value of share point add ins
Value of share point add insValue of share point add ins
Value of share point add ins
 
ECS19 - John White - Unlock SharePoint’s Reporting Secrets
ECS19 - John White - Unlock SharePoint’s Reporting SecretsECS19 - John White - Unlock SharePoint’s Reporting Secrets
ECS19 - John White - Unlock SharePoint’s Reporting Secrets
 
Spca2014 mirjam van olst upgrading share point 2010 custom solutions to sha...
Spca2014 mirjam van olst   upgrading share point 2010 custom solutions to sha...Spca2014 mirjam van olst   upgrading share point 2010 custom solutions to sha...
Spca2014 mirjam van olst upgrading share point 2010 custom solutions to sha...
 
SPCA2013 - Apps, Apps, Apps
SPCA2013 - Apps, Apps, AppsSPCA2013 - Apps, Apps, Apps
SPCA2013 - Apps, Apps, Apps
 
ECS 19 - Chris O'Brien - The hit list - Office 365 dev techniques you should ...
ECS 19 - Chris O'Brien - The hit list - Office 365 dev techniques you should ...ECS 19 - Chris O'Brien - The hit list - Office 365 dev techniques you should ...
ECS 19 - Chris O'Brien - The hit list - Office 365 dev techniques you should ...
 
[White/Himmelstein] Bridge the Cloud Divide with Hybrid Business Intelligence
[White/Himmelstein] Bridge the Cloud Divide with Hybrid Business Intelligence[White/Himmelstein] Bridge the Cloud Divide with Hybrid Business Intelligence
[White/Himmelstein] Bridge the Cloud Divide with Hybrid Business Intelligence
 
B6 - Using Office 365 groups in Power Bi - Marco Russo
B6 - Using Office 365 groups in Power Bi - Marco RussoB6 - Using Office 365 groups in Power Bi - Marco Russo
B6 - Using Office 365 groups in Power Bi - Marco Russo
 
T5 - Mise en place de votre processus DevOps Ofice, Office 365, SharePoint - ...
T5 - Mise en place de votre processus DevOps Ofice, Office 365, SharePoint - ...T5 - Mise en place de votre processus DevOps Ofice, Office 365, SharePoint - ...
T5 - Mise en place de votre processus DevOps Ofice, Office 365, SharePoint - ...
 
O365con14 - sharepoint online applification
O365con14 - sharepoint online applificationO365con14 - sharepoint online applification
O365con14 - sharepoint online applification
 
ECS19 Elio Struyf - Setting Up Your SPFx CI/CD pipelines on Azure DevOps
ECS19 Elio Struyf - Setting Up Your SPFx CI/CD pipelines on Azure DevOpsECS19 Elio Struyf - Setting Up Your SPFx CI/CD pipelines on Azure DevOps
ECS19 Elio Struyf - Setting Up Your SPFx CI/CD pipelines on Azure DevOps
 

Viewers also liked

Advanced cloud services development (PaaS)
Advanced cloud services development (PaaS)Advanced cloud services development (PaaS)
Advanced cloud services development (PaaS)Vitor Ciaramella
 
Building SharePoint Apps with Azure PaaS
Building SharePoint Apps with Azure PaaSBuilding SharePoint Apps with Azure PaaS
Building SharePoint Apps with Azure PaaS
InnoTech
 
Data Architecture Why Tools Are Not Enough
Data Architecture Why Tools Are Not EnoughData Architecture Why Tools Are Not Enough
Data Architecture Why Tools Are Not Enough
InnoTech
 
Étude Softchoice. Favoriser l’innovation : les actes en disent plus long que ...
Étude Softchoice. Favoriser l’innovation : les actes en disent plus long que ...Étude Softchoice. Favoriser l’innovation : les actes en disent plus long que ...
Étude Softchoice. Favoriser l’innovation : les actes en disent plus long que ...
Softchoice Corporation
 
AgilePath's Live Webinar: Exploring the Cloud Governance Lifecycle Dec 16 2010
AgilePath's Live Webinar: Exploring the Cloud Governance Lifecycle Dec 16 2010AgilePath's Live Webinar: Exploring the Cloud Governance Lifecycle Dec 16 2010
AgilePath's Live Webinar: Exploring the Cloud Governance Lifecycle Dec 16 2010
AgilePath Corporation
 
Microsoft Azure - Office 365 Overwrite
Microsoft Azure - Office 365 OverwriteMicrosoft Azure - Office 365 Overwrite
Microsoft Azure - Office 365 Overwrite
Mücahid Akçay
 
Microsoft TechSummit - Deploy your Solution to IaaS and PaaS with VSTS and Az...
Microsoft TechSummit - Deploy your Solution to IaaS and PaaS with VSTS and Az...Microsoft TechSummit - Deploy your Solution to IaaS and PaaS with VSTS and Az...
Microsoft TechSummit - Deploy your Solution to IaaS and PaaS with VSTS and Az...
Davide Benvegnù
 
Digital transformation - DevOps Day - 02/02/2017
Digital transformation - DevOps Day - 02/02/2017Digital transformation - DevOps Day - 02/02/2017
Digital transformation - DevOps Day - 02/02/2017
Clara Feuillet
 
Identity Management for Office 365 and Microsoft Azure
Identity Management for Office 365 and Microsoft AzureIdentity Management for Office 365 and Microsoft Azure
Identity Management for Office 365 and Microsoft Azure
Sparkhound Inc.
 
Azure cloud governance deck
Azure cloud governance deckAzure cloud governance deck
Azure cloud governance deck
Softchoice Corporation
 
Microsoft Azure Platform-as-a-Service (PaaS)
Microsoft Azure Platform-as-a-Service (PaaS)Microsoft Azure Platform-as-a-Service (PaaS)
Microsoft Azure Platform-as-a-Service (PaaS)
Chris Dufour
 
PaaS is dead, Long live PaaS - Defrag 2016
PaaS is dead, Long live PaaS - Defrag 2016PaaS is dead, Long live PaaS - Defrag 2016
PaaS is dead, Long live PaaS - Defrag 2016
brendandburns
 
Azure Websites
Azure WebsitesAzure Websites
Azure Websites
Kashif Imran
 
Chris Anderson and Yochay Kiriaty - Serverless Patterns with Azure Functions
Chris Anderson and Yochay Kiriaty - Serverless Patterns with Azure FunctionsChris Anderson and Yochay Kiriaty - Serverless Patterns with Azure Functions
Chris Anderson and Yochay Kiriaty - Serverless Patterns with Azure Functions
ServerlessConf
 
How and why to design your Teams for modern Software Systems - Matthew Skelto...
How and why to design your Teams for modern Software Systems - Matthew Skelto...How and why to design your Teams for modern Software Systems - Matthew Skelto...
How and why to design your Teams for modern Software Systems - Matthew Skelto...
Skelton Thatcher Consulting Ltd
 
What's new in SQL Server 2016
What's new in SQL Server 2016What's new in SQL Server 2016
What's new in SQL Server 2016
James Serra
 

Viewers also liked (16)

Advanced cloud services development (PaaS)
Advanced cloud services development (PaaS)Advanced cloud services development (PaaS)
Advanced cloud services development (PaaS)
 
Building SharePoint Apps with Azure PaaS
Building SharePoint Apps with Azure PaaSBuilding SharePoint Apps with Azure PaaS
Building SharePoint Apps with Azure PaaS
 
Data Architecture Why Tools Are Not Enough
Data Architecture Why Tools Are Not EnoughData Architecture Why Tools Are Not Enough
Data Architecture Why Tools Are Not Enough
 
Étude Softchoice. Favoriser l’innovation : les actes en disent plus long que ...
Étude Softchoice. Favoriser l’innovation : les actes en disent plus long que ...Étude Softchoice. Favoriser l’innovation : les actes en disent plus long que ...
Étude Softchoice. Favoriser l’innovation : les actes en disent plus long que ...
 
AgilePath's Live Webinar: Exploring the Cloud Governance Lifecycle Dec 16 2010
AgilePath's Live Webinar: Exploring the Cloud Governance Lifecycle Dec 16 2010AgilePath's Live Webinar: Exploring the Cloud Governance Lifecycle Dec 16 2010
AgilePath's Live Webinar: Exploring the Cloud Governance Lifecycle Dec 16 2010
 
Microsoft Azure - Office 365 Overwrite
Microsoft Azure - Office 365 OverwriteMicrosoft Azure - Office 365 Overwrite
Microsoft Azure - Office 365 Overwrite
 
Microsoft TechSummit - Deploy your Solution to IaaS and PaaS with VSTS and Az...
Microsoft TechSummit - Deploy your Solution to IaaS and PaaS with VSTS and Az...Microsoft TechSummit - Deploy your Solution to IaaS and PaaS with VSTS and Az...
Microsoft TechSummit - Deploy your Solution to IaaS and PaaS with VSTS and Az...
 
Digital transformation - DevOps Day - 02/02/2017
Digital transformation - DevOps Day - 02/02/2017Digital transformation - DevOps Day - 02/02/2017
Digital transformation - DevOps Day - 02/02/2017
 
Identity Management for Office 365 and Microsoft Azure
Identity Management for Office 365 and Microsoft AzureIdentity Management for Office 365 and Microsoft Azure
Identity Management for Office 365 and Microsoft Azure
 
Azure cloud governance deck
Azure cloud governance deckAzure cloud governance deck
Azure cloud governance deck
 
Microsoft Azure Platform-as-a-Service (PaaS)
Microsoft Azure Platform-as-a-Service (PaaS)Microsoft Azure Platform-as-a-Service (PaaS)
Microsoft Azure Platform-as-a-Service (PaaS)
 
PaaS is dead, Long live PaaS - Defrag 2016
PaaS is dead, Long live PaaS - Defrag 2016PaaS is dead, Long live PaaS - Defrag 2016
PaaS is dead, Long live PaaS - Defrag 2016
 
Azure Websites
Azure WebsitesAzure Websites
Azure Websites
 
Chris Anderson and Yochay Kiriaty - Serverless Patterns with Azure Functions
Chris Anderson and Yochay Kiriaty - Serverless Patterns with Azure FunctionsChris Anderson and Yochay Kiriaty - Serverless Patterns with Azure Functions
Chris Anderson and Yochay Kiriaty - Serverless Patterns with Azure Functions
 
How and why to design your Teams for modern Software Systems - Matthew Skelto...
How and why to design your Teams for modern Software Systems - Matthew Skelto...How and why to design your Teams for modern Software Systems - Matthew Skelto...
How and why to design your Teams for modern Software Systems - Matthew Skelto...
 
What's new in SQL Server 2016
What's new in SQL Server 2016What's new in SQL Server 2016
What's new in SQL Server 2016
 

Similar to Top 3 Mistakes when Building

System design for Web Application
System design for Web ApplicationSystem design for Web Application
System design for Web Application
Michael Choi
 
Managing Large Flask Applications On Google App Engine (GAE)
Managing Large Flask Applications On Google App Engine (GAE)Managing Large Flask Applications On Google App Engine (GAE)
Managing Large Flask Applications On Google App Engine (GAE)
Emmanuel Olowosulu
 
MongoDB .local Houston 2019: Building an IoT Streaming Analytics Platform to ...
MongoDB .local Houston 2019: Building an IoT Streaming Analytics Platform to ...MongoDB .local Houston 2019: Building an IoT Streaming Analytics Platform to ...
MongoDB .local Houston 2019: Building an IoT Streaming Analytics Platform to ...
MongoDB
 
Microservices: Yes or not?
Microservices: Yes or not?Microservices: Yes or not?
Microservices: Yes or not?
Eduard Tomàs
 
An Introduction to Microsoft Flow
An Introduction to Microsoft FlowAn Introduction to Microsoft Flow
An Introduction to Microsoft Flow
Robert Crane
 
Containers, microservices and serverless for realists
Containers, microservices and serverless for realistsContainers, microservices and serverless for realists
Containers, microservices and serverless for realists
Karthik Gaekwad
 
API Integration
API IntegrationAPI Integration
API Integration
eMerge Technologies
 
redpill Mobile Case Study (Salvation Army)
redpill Mobile Case Study (Salvation Army)redpill Mobile Case Study (Salvation Army)
redpill Mobile Case Study (Salvation Army)
Peter Presnell
 
Five Early Challenges Of Building Streaming Fast Data Applications
Five Early Challenges Of Building Streaming Fast Data ApplicationsFive Early Challenges Of Building Streaming Fast Data Applications
Five Early Challenges Of Building Streaming Fast Data Applications
Lightbend
 
Driving TAS Enterprise Fitness
Driving TAS Enterprise FitnessDriving TAS Enterprise Fitness
Driving TAS Enterprise Fitness
VMware Tanzu
 
Webinar: Leveraging New Technologies with Migration
Webinar: Leveraging New Technologies with MigrationWebinar: Leveraging New Technologies with Migration
Webinar: Leveraging New Technologies with Migration
panagenda
 
Software design with Domain-driven design
Software design with Domain-driven design Software design with Domain-driven design
Software design with Domain-driven design
Allan Mangune
 
Active Cloud DB at CloudComp '10
Active Cloud DB at CloudComp '10Active Cloud DB at CloudComp '10
Active Cloud DB at CloudComp '10Chris Bunch
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform
Decision Science Community
 
ARC202:real world real time analytics
ARC202:real world real time analyticsARC202:real world real time analytics
ARC202:real world real time analytics
Sebastian Montini
 
Optimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best PracticesOptimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best Practices
Teamstudio
 
Growing an API Culture - APIdays LIVE AU 2020
Growing an API Culture - APIdays LIVE AU 2020Growing an API Culture - APIdays LIVE AU 2020
Growing an API Culture - APIdays LIVE AU 2020
Saul Caganoff
 
Advanced dev ops governance with terraform
Advanced dev ops governance with terraformAdvanced dev ops governance with terraform
Advanced dev ops governance with terraform
James Counts
 
The Best Local Database for React Native Application Development .pdf
The Best Local Database for React Native Application Development .pdfThe Best Local Database for React Native Application Development .pdf
The Best Local Database for React Native Application Development .pdf
Techugo
 
SharePoint, Office, and Outlook Integrations for Alfresco
SharePoint, Office, and Outlook Integrations for AlfrescoSharePoint, Office, and Outlook Integrations for Alfresco
SharePoint, Office, and Outlook Integrations for Alfresco
Zia Consulting
 

Similar to Top 3 Mistakes when Building (20)

System design for Web Application
System design for Web ApplicationSystem design for Web Application
System design for Web Application
 
Managing Large Flask Applications On Google App Engine (GAE)
Managing Large Flask Applications On Google App Engine (GAE)Managing Large Flask Applications On Google App Engine (GAE)
Managing Large Flask Applications On Google App Engine (GAE)
 
MongoDB .local Houston 2019: Building an IoT Streaming Analytics Platform to ...
MongoDB .local Houston 2019: Building an IoT Streaming Analytics Platform to ...MongoDB .local Houston 2019: Building an IoT Streaming Analytics Platform to ...
MongoDB .local Houston 2019: Building an IoT Streaming Analytics Platform to ...
 
Microservices: Yes or not?
Microservices: Yes or not?Microservices: Yes or not?
Microservices: Yes or not?
 
An Introduction to Microsoft Flow
An Introduction to Microsoft FlowAn Introduction to Microsoft Flow
An Introduction to Microsoft Flow
 
Containers, microservices and serverless for realists
Containers, microservices and serverless for realistsContainers, microservices and serverless for realists
Containers, microservices and serverless for realists
 
API Integration
API IntegrationAPI Integration
API Integration
 
redpill Mobile Case Study (Salvation Army)
redpill Mobile Case Study (Salvation Army)redpill Mobile Case Study (Salvation Army)
redpill Mobile Case Study (Salvation Army)
 
Five Early Challenges Of Building Streaming Fast Data Applications
Five Early Challenges Of Building Streaming Fast Data ApplicationsFive Early Challenges Of Building Streaming Fast Data Applications
Five Early Challenges Of Building Streaming Fast Data Applications
 
Driving TAS Enterprise Fitness
Driving TAS Enterprise FitnessDriving TAS Enterprise Fitness
Driving TAS Enterprise Fitness
 
Webinar: Leveraging New Technologies with Migration
Webinar: Leveraging New Technologies with MigrationWebinar: Leveraging New Technologies with Migration
Webinar: Leveraging New Technologies with Migration
 
Software design with Domain-driven design
Software design with Domain-driven design Software design with Domain-driven design
Software design with Domain-driven design
 
Active Cloud DB at CloudComp '10
Active Cloud DB at CloudComp '10Active Cloud DB at CloudComp '10
Active Cloud DB at CloudComp '10
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform
 
ARC202:real world real time analytics
ARC202:real world real time analyticsARC202:real world real time analytics
ARC202:real world real time analytics
 
Optimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best PracticesOptimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best Practices
 
Growing an API Culture - APIdays LIVE AU 2020
Growing an API Culture - APIdays LIVE AU 2020Growing an API Culture - APIdays LIVE AU 2020
Growing an API Culture - APIdays LIVE AU 2020
 
Advanced dev ops governance with terraform
Advanced dev ops governance with terraformAdvanced dev ops governance with terraform
Advanced dev ops governance with terraform
 
The Best Local Database for React Native Application Development .pdf
The Best Local Database for React Native Application Development .pdfThe Best Local Database for React Native Application Development .pdf
The Best Local Database for React Native Application Development .pdf
 
SharePoint, Office, and Outlook Integrations for Alfresco
SharePoint, Office, and Outlook Integrations for AlfrescoSharePoint, Office, and Outlook Integrations for Alfresco
SharePoint, Office, and Outlook Integrations for Alfresco
 

More from Talbott Crowell

Developing a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint appDeveloping a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint app
Talbott Crowell
 
Developing a provider hosted share point app
Developing a provider hosted share point appDeveloping a provider hosted share point app
Developing a provider hosted share point app
Talbott Crowell
 
Introduction to F# 3.0
Introduction to F# 3.0Introduction to F# 3.0
Introduction to F# 3.0
Talbott Crowell
 
PowerShell and SharePoint @spsnyc July 2012
PowerShell and SharePoint @spsnyc July 2012PowerShell and SharePoint @spsnyc July 2012
PowerShell and SharePoint @spsnyc July 2012Talbott Crowell
 
PowerShell and SharePoint
PowerShell and SharePointPowerShell and SharePoint
PowerShell and SharePoint
Talbott Crowell
 
Welcome to windows 8
Welcome to windows 8Welcome to windows 8
Welcome to windows 8
Talbott Crowell
 
Exploring SharePoint with F#
Exploring SharePoint with F#Exploring SharePoint with F#
Exploring SharePoint with F#Talbott Crowell
 
Automating PowerShell with SharePoint
Automating PowerShell with SharePointAutomating PowerShell with SharePoint
Automating PowerShell with SharePointTalbott Crowell
 
F# And Silverlight
F# And SilverlightF# And Silverlight
F# And Silverlight
Talbott Crowell
 
SharePoint Saturday Boston 2010
SharePoint Saturday Boston 2010SharePoint Saturday Boston 2010
SharePoint Saturday Boston 2010
Talbott Crowell
 
Automating SQL Server Database Creation for SharePoint
Automating SQL Server Database Creation for SharePointAutomating SQL Server Database Creation for SharePoint
Automating SQL Server Database Creation for SharePoint
Talbott Crowell
 
Introduction to F#
Introduction to F#Introduction to F#
Introduction to F#
Talbott Crowell
 
Architecting Solutions for the Manycore Future
Architecting Solutions for the Manycore FutureArchitecting Solutions for the Manycore Future
Architecting Solutions for the Manycore Future
Talbott Crowell
 

More from Talbott Crowell (13)

Developing a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint appDeveloping a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint app
 
Developing a provider hosted share point app
Developing a provider hosted share point appDeveloping a provider hosted share point app
Developing a provider hosted share point app
 
Introduction to F# 3.0
Introduction to F# 3.0Introduction to F# 3.0
Introduction to F# 3.0
 
PowerShell and SharePoint @spsnyc July 2012
PowerShell and SharePoint @spsnyc July 2012PowerShell and SharePoint @spsnyc July 2012
PowerShell and SharePoint @spsnyc July 2012
 
PowerShell and SharePoint
PowerShell and SharePointPowerShell and SharePoint
PowerShell and SharePoint
 
Welcome to windows 8
Welcome to windows 8Welcome to windows 8
Welcome to windows 8
 
Exploring SharePoint with F#
Exploring SharePoint with F#Exploring SharePoint with F#
Exploring SharePoint with F#
 
Automating PowerShell with SharePoint
Automating PowerShell with SharePointAutomating PowerShell with SharePoint
Automating PowerShell with SharePoint
 
F# And Silverlight
F# And SilverlightF# And Silverlight
F# And Silverlight
 
SharePoint Saturday Boston 2010
SharePoint Saturday Boston 2010SharePoint Saturday Boston 2010
SharePoint Saturday Boston 2010
 
Automating SQL Server Database Creation for SharePoint
Automating SQL Server Database Creation for SharePointAutomating SQL Server Database Creation for SharePoint
Automating SQL Server Database Creation for SharePoint
 
Introduction to F#
Introduction to F#Introduction to F#
Introduction to F#
 
Architecting Solutions for the Manycore Future
Architecting Solutions for the Manycore FutureArchitecting Solutions for the Manycore Future
Architecting Solutions for the Manycore Future
 

Top 3 Mistakes when Building

  • 1. Top 3 Mistakes when Building Scalable SharePoint Applications Talbott Crowell ThirdM.com @talbott http://www.freeimages.com/photo/858598
  • 3. Terminology Performance Behavior and response time for a single user or multiple users under load Scalability Behavior and response time for a growing number of users and volume under load
  • 5. Scalability A Greyhound bus performs even better than a Lamborghini when transporting 100 passengers from Boston to San Francisco
  • 6. Example • The application is built on developer machines and performs great (single user) • The application is tested by the QA (quality assurance) team, and they find the performance great (single user) • The application gets deployed into a pilot group of 10 people, the application is still fine because the 10 people don’t use it simultaneously (still effectively single user) • The application is launched and thousands of users start using it and concurrency issues arise
  • 7. Solution • Add load testing to your SDLC (software development lifecycle) • The earlier the better • Many large Fortune 500 companies have a mandatory stage in their SDLC for volume testing • Adding it into a continuous integration environment is even better • Better catch it early than right before scheduled deployment to production
  • 8. Test Cases Know BEFORE you start designing, even before you are laying out the solution architecture what a real world scenario will look like 1. Use cases 2. Number of users 3. Volume of data
  • 9. Volume of Data • Application might perform just fine with one to ten Purchase Orders, but what happens when there are hundreds of thousands? • Know your target volume • Simulate that volume using scripts • Make sure at every step of the way, volume is considered: • envisioning, designing, implementing, testing…
  • 10. Mistake #2 Using SharePoint lists as an OLTP database
  • 11. Solution Architecture • SharePoint stores data in lists • Lists are abstractions that are physically represented as records in the content database • If you are building an application in SharePoint, consider the options in storing the data in its own database SQL
  • 12. Design for the Future Office 365 standard design for Provider Hosted Apps is to use a custom SQL database for your application purposes and to write back to SharePoint lists only when needed
  • 13. SharePoint 2013 Provider Hosted •Custom Database •ASP.NET development model •Connect to SharePoint using CSOM •Required security token and framework
  • 14. Mistake #3 Not using CAML to fetch items in a list
  • 15. Demo
  • 16. Resources • Bit.ly Bundle: • https://bitly.com/bundles/talbott/2 • Blog: • http://talbottcrowell.wordpress.com/ • Twitter: • https://twitter.com/talbott • Office Dev Patterns and Practices on GitHub: • http://bit.ly/o365pnp