Building a SharePoint Factory
Donald Hessing (@dhessing)
3Copyright © Capgemini 2012. All Rights Reserved
Presentation Title | Date
Who am I?
Donald Hessing Principal Consultant | Thought Leader SharePoint
@Capgemini Netherlands
(Virtual) Technology Solution Professional for Microsoft
Work full time on SharePoint since 2007
[email protected] | @dhessing
4Copyright © Capgemini 2012. All Rights Reserved
Presentation Title | Date
Agenda
1. Considerations for building a SharePoint Factory?
2. Standardization
3. Code Analyses
4. Performance Testing
5. Deploy and Machine Provisioning
Some Demos:
Code Validation
Content Generation
Load Testing
Boeing factory in Seattle
6Copyright © Capgemini 2012. All Rights Reserved
Presentation Title | Date
Goals
Improve the Quality, Cost and Delivery
Reducing Risks, Incidents and Project failures
Improve Responsiveness and Reliability
Improve Predictability and Repeatability of outcomes
Bring new solutions to customers faster with lower cost
Building trust and confidence to all stakeholders (internal and external)
Bring new solutions to customers faster with lower cost
8Copyright © Capgemini 2012. All Rights Reserved
Presentation Title | Date
Why standardization?
Users / Consumer Easier to use
Compatibility & Reusability
Lower prices
Better Quality
Trust & Confidence
Products Larger market with fewer varieties
Increase productivity & effectiveness
Increased competition
Industry / Process Benchmarking against best practices
Time efforts savings
Gaining competitive advantages
Assures better alignment
10Copyright © Capgemini 2012. All Rights Reserved
Presentation Title | Date
Standardized process
Plan Build Test DeployRoll-Out
Acceptance criteria
• PID Templates
• Infrastructure Intake
• Reference architecture
• Storage calculator
• Design std
• Coding std
• Environment std
• Test environment std
• Test scenarios std
• DTAP deployment std
• Installation std
• Operations std
• Change mg std
• Training std
11Copyright © Capgemini 2012. All Rights Reserved
Presentation Title | Date
Define your maturity…
One-off solutions
Reusable Components (Logging, Data Access, Display Templates, ..)
Reusable Solutions (Streaming Video, People Directory, ..)
Standard offerings (Intranet, Extranet, Records Management, …)
12Copyright © Capgemini 2012. All Rights Reserved
Presentation Title | Date
Requires organizational change
At project start-up identify potential re-usable components
Architecture board for deviations from the reference architecture
Peer reviews
13Copyright © Capgemini 2012. All Rights Reserved
Presentation Title | Date
Standardize….
Create/Improve the standard
Agree on the Standard (Adoption)
Add review processes
Automate standard
Automate Process
14Copyright © Capgemini 2012. All Rights Reserved
Presentation Title | Date
…SharePoint Coding Standard Example
Create the standard “Coding
Standard for SP2013”
Agree on the Standard
(Adoption)
Add review processes
Automate Review
(FXCop, SPCop)
Automate Review Process in
Automated Builds (TFS)
Code Analyses
16Copyright © Capgemini 2012. All Rights Reserved
Presentation Title | Date
Static versus Dynamic Testing
Static:
Testing by Reviews, Walkthroughs or inspection Code Analyses inspection (Phoenix)
Reflection
Dynamic
Testing during execution of the programmed code Code Coverage
Code Profiling
Enforce Code Conformance by Automation
18Copyright © Capgemini 2012. All Rights Reserved
Presentation Title | Date
Tools
SPDisposeCheck.exe
MSOCAF 2010
FXContrib
SPCOP / SPCAF Foundation
FXCop
StyleCop
Visual Studio 2010 / 2012
MSOCAF 2013
SPCOP / SPCAF Foundation
FXCop – Custom Rules
StyleCop
Visual Studio 2012 / 2013
SharePoint 2010 SharePoint 2013
• Only tool for SharePoint artefacts,
metrics, feature dependency,
managed code and C# analyses!
• Includes TFS and 3th Party
integration (FXCop, JSLint,CAT.NET)
19Copyright © Capgemini 2012. All Rights Reserved
Presentation Title | Date
FXCop versus StyleCop
Visual Studio 2012 Code Analyses - FXCop
• Static Code Analyses on the MSIL
• Code Safety
• Performance
• Type hierarchy
• Analyses of database objects
StyleCop – C# Only
• Static Code Analyses on the Source Code
• Naming (casing, use of prefixes / suffixes)
• Ordering (where different members are defined in the context of a class)
• Comments (where they should be placed and how they should be formatted)
• Spacing
• Custom Rules
20Copyright © Capgemini 2012. All Rights Reserved
Presentation Title | Date
FXCop
“FxCop is a free static code analysis tool from Microsoft
that checks .NET managed code assemblies for
conformance to Design Guidelines”
Source: http://en.wikipedia.org/wiki/FxCop
21Copyright © Capgemini 2012. All Rights Reserved
Presentation Title | Date
FXCop versions
FXCop (11.0) is integrated with the code analyses features of Visual
Studio 2012 Premium
Ultimate
FXCop 10.0 - standalone application Windows 7 / 8 SDK
How to download FXCop 10.0http://codeblog.vurdalakov.net/2012/05/how-to-download-fxcop-100.html
22Copyright © Capgemini 2012. All Rights Reserved
Presentation Title | Date
DEMO
Performance Testing
24Copyright © Capgemini 2012. All Rights Reserved
Presentation Title | Date
Types of testing
Common testing types and levels for SharePoint:
Type Description
Unit Ensures the working of an individual unit or group
Functional Ensures that the specified functionality in the system works
Usability Ensures an effective GUI for the end-user
Acceptance Ensures the delivered product meets the requirements
Regression Ensure that the modification is working correctly
Performance Ensures that the system responses within specified time
System Ensures the system works in different environments
SharePoint Performance Testing
Valid testing data is essential for performance tests
Md5Hash
SharePoint Search Duplicates
28Copyright © Capgemini 2012. All Rights Reserved
Presentation Title | Date
Content generation
Downloaded a copy of the wiki database http://en.wikipedia.org/wiki/Wikipedia:Database_download#English-
language_Wikipedia
English ~40GB XML Data
Dutch ~ 10GB XML Data
Wrote custom wiki parser for generating MS – Word document
MS – Excel documents
MS – PowerPoint documents
HTML documents
Getting started : http://code.msdn.microsoft.com/Bulk-Loader-Create-Unique-eeb2d084#content
What we did at Capgemini…
29Copyright © Capgemini 2012. All Rights Reserved
Presentation Title | Date
What is important for SharePoint?
Unique FileRef and Title property
Language
Document Size
Document Type
Folder and nesting
Unique users, groups and permissions
Impacts: Search Performance and Results
Content Database Size
30Copyright © Capgemini 2012. All Rights Reserved
Presentation Title | Date
DEMO
Wiki based content generation
31Copyright © Capgemini 2012. All Rights Reserved
Presentation Title | Date
Performance Tests
Type of Test Description
Smoke How your application performs under light load for short
duration
Stress How your application runs under heavy load
Performance To determine how responsive the application runs under
expected load
Capacity How your application performs at various capacities
Type of Performance Tests
32Copyright © Capgemini 2012. All Rights Reserved
Presentation Title | Date
Visual Studio Load Testing
Visual Studio 2010 Ultimate Load testing was possible, but not optimized for SharePoint
SharePoint is using a lot of GUID’s and control values which needed to be
extracted manually
Visual Studio 2012 Ultimate – CTP Update 2 Load testing is made easier with out of the box extraction and validation
rules
Extracts SiteName, ListID, Form Fields, REQUEST DIGEST, Webpart,
Calender, Document Item
Coded web performance tests are not supported for SharePoint Applicationshttp://msdn.microsoft.com/en-us/library/vstudio/jj710162.aspx
33Copyright © Capgemini 2012. All Rights Reserved
Presentation Title | Date
DEMO – Visual Studio 2012 Performance Test
Machine provisioning
Development Machine
36Copyright © Capgemini 2012. All Rights Reserved
Presentation Title | Date
Installation scripts
Consistent deployment of SharePoint machines though DTAP stages
37Copyright © Capgemini 2012. All Rights Reserved
Presentation Title | Date
SC - Virtual Machine Manager 2012 SP1
Virtual Machine Manager provides automation, configuration and management of
Virtualization Host
• Private Cloud
• Provision Virtual
Machines based on
templates
• Service Templates
allows you to deploy
a multi tier
SharePoint
environment in one
click
• Still requires scripts
to configure
SharePoint
38Copyright © Capgemini 2012. All Rights Reserved
Presentation Title | Date
SC – Orchestrator Azure Integration Pack
Orchestrates Runbooks that can deploy Windows Azure Virtual Machines
• Public Cloud
• SP1 ships with
Windows Azure
Integration Pack
• Integration pack
allows you to deploy,
deprovision and
move Azure VM
• Requires scripts to
install and
configure all
components and
software
“It works on my machine”
40Copyright © Capgemini 2012. All Rights Reserved
Presentation Title | Date
Key takeaways
The goal for building a SharePoint factory can be different for every
organisation
Building a software factory also requires organisational change
Start with defining your standards – validation can also done manually
The quality of software can be validated with automated tools
Most existing tools are limited to Managed Code or C#
Performance tests require bulk load that can be generated out of
Wikipedia
Automating the deployment of SharePoint environments is an essential
part of the validation
Have a look at System Center 2012 SP1 and Visual Studio 2012 TFS Lab
Manager for automation your deployments and Test integration
41Copyright © Capgemini 2012. All Rights Reserved
Presentation Title | Date
Thank You!
01010100 01101000 01100001 01101110
01101011 00100000 01011001 01101111
01110101 0100001
43Copyright © Capgemini 2012. All Rights Reserved
Presentation Title | Date
Donald Hessing
Thought Leader SharePoint @Capgemini
Microsoft Certified Master for SharePoint
Contact me:
@dhessing
http://nl.linkedin.com/pub/donald-hessing/4/250/924