SlideShare une entreprise Scribd logo
1  sur  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!

Contenu connexe

Tendances

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
 

Tendances (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
 

En vedette

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
 

En vedette (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
 

Similaire à 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 - 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
 
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
 
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
 

Similaire à 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 - 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
 
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
 
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...
 

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

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

Dernier

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 

Dernier (20)

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 

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!