SlideShare a Scribd company logo
1 of 28
Building High Performance and 
Scalable SharePoint Applications 
Talbott Crowell 
ThirdM.com 
@talbott 
http://www.freeimages.com/photo/858598
AGENDA 
• Terminology 
• Where Performance 
occurs in the SDLC 
• Test Cases, Use Cases, 
Volume of Data 
• SharePoint Limits 
• OOTB or Custom? 
• Provider Hosted Apps 
• Know SharePoint’s 
Strengths 
• What to Avoid 
• Developer Dashboard 
• Instrumentation 
• Phases of SDLC
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
Software Development Life Cycle 
• Waterfall 
• Agile 
• Combination 
What's missing from this graphic? 
• Testing! 
– Functional Testing 
– Performance Testing 
– Scalability Testing
NON-FUNCTIONAL 
REQUIREMENTS 
Make sure you have: 
• Performance requirements 
• Maximum page load time 
• Time for a user to complete a use case 
• Volume requirements 
• How much volume of data will your solution store at 
launch, 6 months after launch, 2 years after launch? 
• How many people will use your application 
• Scalability requirements 
• Number of concurrent users + volume + real world use 
cases
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
Use Cases 
• Doesn't need to be specific to the 
implementation 
• Just describe a user and the high level operations 
they need to perform 
• Examples 
– user logs into the system and finds a purchase order 
– user updates a purchase order by assigning date paid 
• Don't need to have details of how the user will 
accomplish the use cases, just what the user does
Number of Users 
• How many users will be using your system? 
• How often will they be using the system? 
• How many people will be using the system 
concurrently? 
– Look at logs/stats for similar applications at the 
company 
• What about peak times? 
– Example: Recording timesheets, there might be a peak 
load in the last few hours they are due, Friday from 
noon to 6 PM 
http://www.freeimages.com/photo/1391608
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… 
http://www.freeimages.com/photo/1209714
SharePoint Limitations 
• Number of Web Applications on a farm 
• Number of security groups and users, 
especially when breaking permission 
inheritance for site level, list level, or item 
level security 
• Number of items in a list 
– 30 million items per list 
• http://bit.ly/limits2013 
http://www.freeimages.com/photo/790725
IS 30 MILLION ITEMS A 
GOOD IDEA? 
• Just because it is possible, should you build 
your information architecture and/or 
application solution architecture on these 
limitations? 
• IT ALL DEPENDS! 
• How are you going to use those items? 
• SPQuery? 
• SPSiteDataQuery? 
• CrossListQueryInfo? (Enterprise Edition) 
• Search index and Search API?
OOTB OR CUSTOM? 
• Out of the box SharePoint functionality 
• Lists 
• Automatic CRUD screens for free 
• Easy to set up 
• Can handle many situations 
• Custom solutions 
• Database 
• More development time 
• May perform/scale better in certain 
situations
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
SHAREPOINT ONLINE VERSUS 
SHAREPOINT ON PREM 
• Fully Trusted Code is not allowed on Office 
365 
• More flexibility on premise 
• Higher maintenance cost for on premise
SHAREPOINT 2013 
PROVIDER HOSTED 
•Custom Database 
• ASP.NET development model 
• Connect to SharePoint using 
CSOM 
• Required security token and 
framework
Know SharePoint’s Strengths 
• Search is very powerful 
– Leverage for very quick 
results retrieving from 
large sets of data 
– Take in account the 
time to index the data 
– Does it take 15 minutes 
or a day to crawl your 
data set? 
http://www.freeimages.com/photo/1369150
AVOID 
• Looping though items 
• Use targeted CAML queries instead with 
SPQuery, SPSiteDataQuery, etc.. 
• Using Web Parts when they aren’t needed 
• Web parts are great for composable pages or 
reusable components 
• Throwing Exceptions for normal flow 
• Exceptions should be used when something 
exceptional goes wrong (network is down, 
database is unreachable) 
• Very slow, and cause major performance issues
DEVELOPER DASHBOARD 
• Free tool for analyzing web pages in 
SharePoint 
• Turn it on in developer environments 
(Get-SPFarm).PerformanceMonitor.DeveloperDashboardLevel = ”On” 
• Can turn it on in stage/production when 
needed to troubleshoot in realtime 
• Leverage SPMonitoredScope 
• http://bit.ly/devdash
INSTRUMENTATION 
• Leverage ULS logging 
• Implement your own logging 
• Incorporate a third party logging or 
instrumentation product or framework
PHASES – PART 1 
• Envision 
• Gather Non-functional requirements 
• Volume, user count, and use cases 
• Design 
• Keep in mind the volume and scalability 
• POC areas you aren’t sure of 
• Develop 
• Build out the system 
• Use tools like developer dashboard
PHASES – PART 2 
• Test 
• Make sure to test with artificial volume of data 
• functional (does it work) 
• performance (does it meet required user 
experience response times) 
• scalability (does it handle load) 
• You may need load tools for this 
• Large corporations have load tools and teams 
• Smaller companies will rely on devs or QA 
• Visual Studio has load tools http://bit.ly/vsload
PHASES – PART 3 
• User Acceptance 
• Pilot 
• Production 
• Monitor 
• Leverage instrumentation 
• Maintenance 
• Fix performance and scalability issues before 
your users notice them 
• Proactively look at error logs for ways to clean up
REVIEW 
• What is faster, a lambo or a bus? 
• When should you be thinking 
about performance and 
scalability?
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
Was made possible by the generous 
support of the following sponsors… 
And by your participation… Thank you!
Join us for the raffle & SharePint 
following the last session 
Be sure to fill out your eval 
form & turn in at the end of the 
day for a ticket to the BIG 
raffle!

More Related Content

What's hot

ECS19 - Thomas Vochten - ESSENTIAL DATABASE ADMINISTRATION SKILLS FOR SHAREPO...
ECS19 - Thomas Vochten - ESSENTIAL DATABASE ADMINISTRATION SKILLS FOR SHAREPO...ECS19 - Thomas Vochten - ESSENTIAL DATABASE ADMINISTRATION SKILLS FOR SHAREPO...
ECS19 - Thomas Vochten - ESSENTIAL DATABASE ADMINISTRATION SKILLS FOR SHAREPO...European Collaboration Summit
 
My First SharePoint Online PowerApp
My First SharePoint Online PowerAppMy First SharePoint Online PowerApp
My First SharePoint Online PowerAppBecky Bertram
 
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 UglyBob German
 
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 SecretsEuropean Collaboration Summit
 
Share point development 101
Share point development 101Share point development 101
Share point development 101Becky 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 TutorialEuropean 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 - 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 - RoadmapEuropean Collaboration Summit
 
So you’re building an intranet
So you’re building an intranetSo you’re building an intranet
So you’re building an intranetBecky Bertram
 
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 OnlineBob German
 
Value of share point add ins
Value of share point add insValue of share point add ins
Value of share point add insPrabath Fonseka
 
Chris O'Brien - Introduction to the SharePoint Framework for developers
Chris O'Brien - Introduction to the SharePoint Framework for developersChris O'Brien - Introduction to the SharePoint Framework for developers
Chris O'Brien - Introduction to the SharePoint Framework for developersChris O'Brien
 
An introduction to microsoft power apps
An introduction to microsoft power appsAn introduction to microsoft power apps
An introduction to microsoft power appsMitul Rana
 
ECS 19 - John White, Jason Himmelstein - Everything You Always Wanted To Know...
ECS 19 - John White, Jason Himmelstein - Everything You Always Wanted To Know...ECS 19 - John White, Jason Himmelstein - Everything You Always Wanted To Know...
ECS 19 - John White, Jason Himmelstein - Everything You Always Wanted To Know...European Collaboration Summit
 
ECS19 - Tomislav Lulic - What is changed in product/service licensing with Cl...
ECS19 - Tomislav Lulic - What is changed in product/service licensing with Cl...ECS19 - Tomislav Lulic - What is changed in product/service licensing with Cl...
ECS19 - Tomislav Lulic - What is changed in product/service licensing with Cl...European Collaboration Summit
 
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
 
SharePoint Framework, React and Office UI SPS Paris 2016 - d01
SharePoint Framework, React and Office UI SPS Paris 2016 - d01SharePoint Framework, React and Office UI SPS Paris 2016 - d01
SharePoint Framework, React and Office UI SPS Paris 2016 - d01Sonja Madsen
 
Building solutions with Office Graph
Building solutions with Office GraphBuilding solutions with Office Graph
Building solutions with Office GraphMavention
 

What's hot (20)

ECS19 - Thomas Vochten - ESSENTIAL DATABASE ADMINISTRATION SKILLS FOR SHAREPO...
ECS19 - Thomas Vochten - ESSENTIAL DATABASE ADMINISTRATION SKILLS FOR SHAREPO...ECS19 - Thomas Vochten - ESSENTIAL DATABASE ADMINISTRATION SKILLS FOR SHAREPO...
ECS19 - Thomas Vochten - ESSENTIAL DATABASE ADMINISTRATION SKILLS FOR SHAREPO...
 
My First SharePoint Online PowerApp
My First SharePoint Online PowerAppMy First SharePoint Online PowerApp
My First SharePoint Online PowerApp
 
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 - 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
 
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
 
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 - 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
 
So you’re building an intranet
So you’re building an intranetSo you’re building an intranet
So you’re building an intranet
 
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
 
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
 
Chris O'Brien - Introduction to the SharePoint Framework for developers
Chris O'Brien - Introduction to the SharePoint Framework for developersChris O'Brien - Introduction to the SharePoint Framework for developers
Chris O'Brien - Introduction to the SharePoint Framework for developers
 
An introduction to microsoft power apps
An introduction to microsoft power appsAn introduction to microsoft power apps
An introduction to microsoft power apps
 
ECS 19 - John White, Jason Himmelstein - Everything You Always Wanted To Know...
ECS 19 - John White, Jason Himmelstein - Everything You Always Wanted To Know...ECS 19 - John White, Jason Himmelstein - Everything You Always Wanted To Know...
ECS 19 - John White, Jason Himmelstein - Everything You Always Wanted To Know...
 
ECS19 - Tomislav Lulic - What is changed in product/service licensing with Cl...
ECS19 - Tomislav Lulic - What is changed in product/service licensing with Cl...ECS19 - Tomislav Lulic - What is changed in product/service licensing with Cl...
ECS19 - Tomislav Lulic - What is changed in product/service licensing with Cl...
 
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 ...
 
SharePoint Framework, React and Office UI SPS Paris 2016 - d01
SharePoint Framework, React and Office UI SPS Paris 2016 - d01SharePoint Framework, React and Office UI SPS Paris 2016 - d01
SharePoint Framework, React and Office UI SPS Paris 2016 - d01
 
Building solutions with Office Graph
Building solutions with Office GraphBuilding solutions with Office Graph
Building solutions with Office Graph
 
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
 

Viewers also liked

Programming .NET Framework 4th edition published !
Programming .NET Framework 4th edition published !Programming .NET Framework 4th edition published !
Programming .NET Framework 4th edition published !Kazushi Kamegawa
 
Exploring SharePoint with F#
Exploring SharePoint with F#Exploring SharePoint with F#
Exploring SharePoint with F#Talbott Crowell
 
Making Magic with F# Type Providers
Making Magic with F# Type ProvidersMaking Magic with F# Type Providers
Making Magic with F# Type Providersdsyme
 
Declarative authorization in REST services in SharePoint with F# and ServiceS...
Declarative authorization in REST services in SharePoint with F# and ServiceS...Declarative authorization in REST services in SharePoint with F# and ServiceS...
Declarative authorization in REST services in SharePoint with F# and ServiceS...Sergey Tihon
 
Creazione Interiors™ - Designing Interiors Creatively (Brochure)
Creazione Interiors™ - Designing Interiors Creatively (Brochure) Creazione Interiors™ - Designing Interiors Creatively (Brochure)
Creazione Interiors™ - Designing Interiors Creatively (Brochure) Arkabrata Bandyapadhyay
 
Succeeding with Functional-first Programming in Enterprise
Succeeding with Functional-first Programming in EnterpriseSucceeding with Functional-first Programming in Enterprise
Succeeding with Functional-first Programming in Enterprisedsyme
 
Architecting Solutions for the Manycore Future
Architecting Solutions for the Manycore FutureArchitecting Solutions for the Manycore Future
Architecting Solutions for the Manycore FutureTalbott Crowell
 

Viewers also liked (8)

Programming .NET Framework 4th edition published !
Programming .NET Framework 4th edition published !Programming .NET Framework 4th edition published !
Programming .NET Framework 4th edition published !
 
Exploring SharePoint with F#
Exploring SharePoint with F#Exploring SharePoint with F#
Exploring SharePoint with F#
 
Making Magic with F# Type Providers
Making Magic with F# Type ProvidersMaking Magic with F# Type Providers
Making Magic with F# Type Providers
 
Declarative authorization in REST services in SharePoint with F# and ServiceS...
Declarative authorization in REST services in SharePoint with F# and ServiceS...Declarative authorization in REST services in SharePoint with F# and ServiceS...
Declarative authorization in REST services in SharePoint with F# and ServiceS...
 
Creazione Interiors™ - Designing Interiors Creatively (Brochure)
Creazione Interiors™ - Designing Interiors Creatively (Brochure) Creazione Interiors™ - Designing Interiors Creatively (Brochure)
Creazione Interiors™ - Designing Interiors Creatively (Brochure)
 
Succeeding with Functional-first Programming in Enterprise
Succeeding with Functional-first Programming in EnterpriseSucceeding with Functional-first Programming in Enterprise
Succeeding with Functional-first Programming in Enterprise
 
FunScript: Why bother?
FunScript: Why bother?FunScript: Why bother?
FunScript: Why bother?
 
Architecting Solutions for the Manycore Future
Architecting Solutions for the Manycore FutureArchitecting Solutions for the Manycore Future
Architecting Solutions for the Manycore Future
 

Similar to Building high performance and scalable share point applications

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 PracticesTeamstudio
 
Building data intensive applications
Building data intensive applicationsBuilding data intensive applications
Building data intensive applicationsAmit Kejriwal
 
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...Amazon Web Services
 
Using AWS To Build A Scalable Machine Data Analytics Service
Using AWS To Build A Scalable Machine Data Analytics ServiceUsing AWS To Build A Scalable Machine Data Analytics Service
Using AWS To Build A Scalable Machine Data Analytics ServiceChristian Beedgen
 
Drupal Site Audit - SFDUG
Drupal Site Audit - SFDUGDrupal Site Audit - SFDUG
Drupal Site Audit - SFDUGJon Peck
 
Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...
Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...
Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...Jon Peck
 
Datapolis Guest Expert Presentation: Limitations of SharePoint Designer by Bj...
Datapolis Guest Expert Presentation: Limitations of SharePoint Designer by Bj...Datapolis Guest Expert Presentation: Limitations of SharePoint Designer by Bj...
Datapolis Guest Expert Presentation: Limitations of SharePoint Designer by Bj...Datapolis
 
Load testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew SiemerLoad testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew SiemerAndrew Siemer
 
Oracle Management Cloud - introduction, overview and getting started (AMIS, 2...
Oracle Management Cloud - introduction, overview and getting started (AMIS, 2...Oracle Management Cloud - introduction, overview and getting started (AMIS, 2...
Oracle Management Cloud - introduction, overview and getting started (AMIS, 2...Lucas Jellema
 
Productionising Machine Learning Models
Productionising Machine Learning ModelsProductionising Machine Learning Models
Productionising Machine Learning ModelsTash Bickley
 
Service quality monitoring system architecture
Service quality monitoring system architectureService quality monitoring system architecture
Service quality monitoring system architectureMatsuo Sawahashi
 
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!Richard Robinson
 
Choosing the Right Business Intelligence Tools for Your Data and Architectura...
Choosing the Right Business Intelligence Tools for Your Data and Architectura...Choosing the Right Business Intelligence Tools for Your Data and Architectura...
Choosing the Right Business Intelligence Tools for Your Data and Architectura...Victor Holman
 
UI Dev in Big data world using open source
UI Dev in Big data world using open sourceUI Dev in Big data world using open source
UI Dev in Big data world using open sourceTech Triveni
 
The Rise and Benefits of Robotic Process Automation
The Rise and Benefits of Robotic Process AutomationThe Rise and Benefits of Robotic Process Automation
The Rise and Benefits of Robotic Process AutomationCentralOhioSoftwareQ
 
The Rise and Benefits of Robotic Process Automation - Thomas Haver
The Rise and Benefits of Robotic Process Automation - Thomas HaverThe Rise and Benefits of Robotic Process Automation - Thomas Haver
The Rise and Benefits of Robotic Process Automation - Thomas HaverQA or the Highway
 
Cashing in on logging and exception data
Cashing in on logging and exception dataCashing in on logging and exception data
Cashing in on logging and exception dataStackify
 
Building a Real-Time Security Application Using Log Data and Machine Learning...
Building a Real-Time Security Application Using Log Data and Machine Learning...Building a Real-Time Security Application Using Log Data and Machine Learning...
Building a Real-Time Security Application Using Log Data and Machine Learning...Sri Ambati
 

Similar to Building high performance and scalable share point applications (20)

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
 
Building data intensive applications
Building data intensive applicationsBuilding data intensive applications
Building data intensive applications
 
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
 
Using AWS To Build A Scalable Machine Data Analytics Service
Using AWS To Build A Scalable Machine Data Analytics ServiceUsing AWS To Build A Scalable Machine Data Analytics Service
Using AWS To Build A Scalable Machine Data Analytics Service
 
Drupal Site Audit - SFDUG
Drupal Site Audit - SFDUGDrupal Site Audit - SFDUG
Drupal Site Audit - SFDUG
 
Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...
Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...
Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...
 
Datapolis Guest Expert Presentation: Limitations of SharePoint Designer by Bj...
Datapolis Guest Expert Presentation: Limitations of SharePoint Designer by Bj...Datapolis Guest Expert Presentation: Limitations of SharePoint Designer by Bj...
Datapolis Guest Expert Presentation: Limitations of SharePoint Designer by Bj...
 
Load testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew SiemerLoad testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew Siemer
 
Oracle Management Cloud - introduction, overview and getting started (AMIS, 2...
Oracle Management Cloud - introduction, overview and getting started (AMIS, 2...Oracle Management Cloud - introduction, overview and getting started (AMIS, 2...
Oracle Management Cloud - introduction, overview and getting started (AMIS, 2...
 
Productionising Machine Learning Models
Productionising Machine Learning ModelsProductionising Machine Learning Models
Productionising Machine Learning Models
 
Service quality monitoring system architecture
Service quality monitoring system architectureService quality monitoring system architecture
Service quality monitoring system architecture
 
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
 
Choosing the Right Business Intelligence Tools for Your Data and Architectura...
Choosing the Right Business Intelligence Tools for Your Data and Architectura...Choosing the Right Business Intelligence Tools for Your Data and Architectura...
Choosing the Right Business Intelligence Tools for Your Data and Architectura...
 
UI Dev in Big data world using open source
UI Dev in Big data world using open sourceUI Dev in Big data world using open source
UI Dev in Big data world using open source
 
ADF Performance Monitor
ADF Performance MonitorADF Performance Monitor
ADF Performance Monitor
 
The Rise and Benefits of Robotic Process Automation
The Rise and Benefits of Robotic Process AutomationThe Rise and Benefits of Robotic Process Automation
The Rise and Benefits of Robotic Process Automation
 
The Rise and Benefits of Robotic Process Automation - Thomas Haver
The Rise and Benefits of Robotic Process Automation - Thomas HaverThe Rise and Benefits of Robotic Process Automation - Thomas Haver
The Rise and Benefits of Robotic Process Automation - Thomas Haver
 
Cashing in on logging and exception data
Cashing in on logging and exception dataCashing in on logging and exception data
Cashing in on logging and exception data
 
Salesforce Performance hacks - Client Side
Salesforce Performance hacks - Client SideSalesforce Performance hacks - Client Side
Salesforce Performance hacks - Client Side
 
Building a Real-Time Security Application Using Log Data and Machine Learning...
Building a Real-Time Security Application Using Log Data and Machine Learning...Building a Real-Time Security Application Using Log Data and Machine Learning...
Building a Real-Time Security Application Using Log Data and Machine Learning...
 

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 appTalbott 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 appTalbott 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 SharePointTalbott Crowell
 
Automating PowerShell with SharePoint
Automating PowerShell with SharePointAutomating PowerShell with SharePoint
Automating PowerShell with SharePointTalbott Crowell
 
SharePoint Saturday Boston 2010
SharePoint Saturday Boston 2010SharePoint Saturday Boston 2010
SharePoint Saturday Boston 2010Talbott 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 SharePointTalbott Crowell
 

More from Talbott Crowell (11)

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
 
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#
 

Recently uploaded

unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 

Recently uploaded (20)

unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 

Building high performance and scalable share point applications

  • 1. Building High Performance and Scalable SharePoint Applications Talbott Crowell ThirdM.com @talbott http://www.freeimages.com/photo/858598
  • 2. AGENDA • Terminology • Where Performance occurs in the SDLC • Test Cases, Use Cases, Volume of Data • SharePoint Limits • OOTB or Custom? • Provider Hosted Apps • Know SharePoint’s Strengths • What to Avoid • Developer Dashboard • Instrumentation • Phases of SDLC
  • 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
  • 4. Performance • A Lamborghini performs well
  • 5. Scalability A Greyhound bus performs even better than a Lamborghini when transporting 100 passengers from Boston to San Francisco
  • 6. Software Development Life Cycle • Waterfall • Agile • Combination What's missing from this graphic? • Testing! – Functional Testing – Performance Testing – Scalability Testing
  • 7. NON-FUNCTIONAL REQUIREMENTS Make sure you have: • Performance requirements • Maximum page load time • Time for a user to complete a use case • Volume requirements • How much volume of data will your solution store at launch, 6 months after launch, 2 years after launch? • How many people will use your application • Scalability requirements • Number of concurrent users + volume + real world use cases
  • 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. Use Cases • Doesn't need to be specific to the implementation • Just describe a user and the high level operations they need to perform • Examples – user logs into the system and finds a purchase order – user updates a purchase order by assigning date paid • Don't need to have details of how the user will accomplish the use cases, just what the user does
  • 10. Number of Users • How many users will be using your system? • How often will they be using the system? • How many people will be using the system concurrently? – Look at logs/stats for similar applications at the company • What about peak times? – Example: Recording timesheets, there might be a peak load in the last few hours they are due, Friday from noon to 6 PM http://www.freeimages.com/photo/1391608
  • 11. 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… http://www.freeimages.com/photo/1209714
  • 12. SharePoint Limitations • Number of Web Applications on a farm • Number of security groups and users, especially when breaking permission inheritance for site level, list level, or item level security • Number of items in a list – 30 million items per list • http://bit.ly/limits2013 http://www.freeimages.com/photo/790725
  • 13. IS 30 MILLION ITEMS A GOOD IDEA? • Just because it is possible, should you build your information architecture and/or application solution architecture on these limitations? • IT ALL DEPENDS! • How are you going to use those items? • SPQuery? • SPSiteDataQuery? • CrossListQueryInfo? (Enterprise Edition) • Search index and Search API?
  • 14. OOTB OR CUSTOM? • Out of the box SharePoint functionality • Lists • Automatic CRUD screens for free • Easy to set up • Can handle many situations • Custom solutions • Database • More development time • May perform/scale better in certain situations
  • 15. 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
  • 16. SHAREPOINT ONLINE VERSUS SHAREPOINT ON PREM • Fully Trusted Code is not allowed on Office 365 • More flexibility on premise • Higher maintenance cost for on premise
  • 17. SHAREPOINT 2013 PROVIDER HOSTED •Custom Database • ASP.NET development model • Connect to SharePoint using CSOM • Required security token and framework
  • 18. Know SharePoint’s Strengths • Search is very powerful – Leverage for very quick results retrieving from large sets of data – Take in account the time to index the data – Does it take 15 minutes or a day to crawl your data set? http://www.freeimages.com/photo/1369150
  • 19. AVOID • Looping though items • Use targeted CAML queries instead with SPQuery, SPSiteDataQuery, etc.. • Using Web Parts when they aren’t needed • Web parts are great for composable pages or reusable components • Throwing Exceptions for normal flow • Exceptions should be used when something exceptional goes wrong (network is down, database is unreachable) • Very slow, and cause major performance issues
  • 20. DEVELOPER DASHBOARD • Free tool for analyzing web pages in SharePoint • Turn it on in developer environments (Get-SPFarm).PerformanceMonitor.DeveloperDashboardLevel = ”On” • Can turn it on in stage/production when needed to troubleshoot in realtime • Leverage SPMonitoredScope • http://bit.ly/devdash
  • 21. INSTRUMENTATION • Leverage ULS logging • Implement your own logging • Incorporate a third party logging or instrumentation product or framework
  • 22. PHASES – PART 1 • Envision • Gather Non-functional requirements • Volume, user count, and use cases • Design • Keep in mind the volume and scalability • POC areas you aren’t sure of • Develop • Build out the system • Use tools like developer dashboard
  • 23. PHASES – PART 2 • Test • Make sure to test with artificial volume of data • functional (does it work) • performance (does it meet required user experience response times) • scalability (does it handle load) • You may need load tools for this • Large corporations have load tools and teams • Smaller companies will rely on devs or QA • Visual Studio has load tools http://bit.ly/vsload
  • 24. PHASES – PART 3 • User Acceptance • Pilot • Production • Monitor • Leverage instrumentation • Maintenance • Fix performance and scalability issues before your users notice them • Proactively look at error logs for ways to clean up
  • 25. REVIEW • What is faster, a lambo or a bus? • When should you be thinking about performance and scalability?
  • 26. 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
  • 27. Was made possible by the generous support of the following sponsors… And by your participation… Thank you!
  • 28. Join us for the raffle & SharePint following the last session Be sure to fill out your eval form & turn in at the end of the day for a ticket to the BIG raffle!