koen vosters improving-yoursp_solutiondesign-spsbe13
DESCRIPTION
SharePoint 2010 can be a complex beast. As a developer there is an extensive API that you have to master, lots of xml, code, files and configurations. All of that needs to be deployed to your SharePoint farm in a proper way. In the worst case scenario your deployment will be done by someone who hasn’t a clue about SharePoint development and would rather not have your solution on their farm as it will increase the risk of downtime. This session is about designing SharePoint solutions that will enable future solutions to be built besides or on top of it. Even if there are guidelines on the best practices to write SharePoint code, this specific topic will not be our main focus during the session.It will give you a real life example of how combination of several projects done by multiple parties can be successfully deployed simultaneously. As a result of this approach we were able to build different public internet sites and put them into production at the exact same moment.This session aims to create awareness that you, as a developer, are required to build a solution which will be deployed on a shared environment. Showing how these projects were designed and managed and what lessons we learned during the process will help you to reduce the risks of the deployments.TRANSCRIPT
Koen Vosters
Improving your SharePoint Solution Design – Experiences from the Field
#spsbe13
SponsorsVenue Sponsor
Platinum Sponsors
Gold Premium Sponsors
Gold Sponsors
About me• Consultant at Microsoft Services
• 12 years of experience
• Visual Basic
• .net
• SharePoint
• Focus on Collaborative end-to-end solutions, coaching and QA for SharePoint customization projects
• Blog: http://blogs.msdn.com/b/kvosters
• Twitter: @koenvosters
Agenda• Situation
• Architecture
• Building the solution structure
• Deploying Solutions
• Upgrading Solutions
• Q/A
Situation (do we know the situation)
WHO?
WHEN? WHERE?
WHAT?WHY?
HOW?
Creating a solution design without knowing the current and future situation is only useful to get to know the current and the future situation
Situation (Project Organization)• 1 customer / multiple worldwide divisions• Multiple simultaneous customization projects (+- 20)
• Deployed on prem and in the cloud• Company wide and division specific content/customizations
• Provide services to • Internal users• External users• Anonymous users
• Part of a larger Program• International team of partners (Europe) • Outsourcing to India
Key Points of the Design• Reusable Platform – SharePoint Architecture
• Reusable Customizations (Solutions, UI Components...)
• Easy to deploy, taking into account the different ownerships
• Performance
• Take into consideration
• Business
• IT
• Governance
• Customization / Maintenance
Architecture – Reusable Platform
Extranets – ProdOn Premises
Daily build
Internet – Prod AOn Premises
Integration testing
TFS
Intranet – Pre-ProdCloud
Intranet – ProductionCloud
DMZ
CorporateExtranets – Prod
On Premises Internet – Prod BOn Premises
11
10
Intranet – QAOn Premises 6
5
4
1
12
3
2
FIM / RMS
8
Intranet – ProdOn Premises
7
Extranets – ProdOn Premises
15
Internet 2 – Prod AOn Premises
Internet 2 – Prod BOn Premises1413
MSOCAF
9
Solutions – Reusable Solutions and UI Elements
Performance• Performance testing using Visual Studio Load Testing
• Impact on design
• Third Party Solutions
• Long Running Processes (IIS Timeout)
Tools• Visual Studio 2010
• Team Foundation Server 2010
• Community Kit for SharePoint
• SPDisposeChecker
• MSOCAF
• Lync
Demo
Building the Visual Studio Solution
Tools
Deploying Solutions• PowerShell scripts• Installation Guidance• Site Creation Scripts• Feature Activation Scripts• Don’t forget your mobile users• KNOW YOUR ARCHITECTURE!• Not only SharePoint!
• AD• UAG• FIM
Rolling Release (High Availability)
Server A
Server B
Server C
Server D
Server E & F Server G & H
http://www.contoso.comRouted to servers A & Bhttp://www.contoso.comRouted to servers C & D
http://internetRouted to servers E & Fhttp://internetRouted to servers G & H
QAQAProduction Production
Routing to servers managed using scripted DNS updates
Did you get it?• New Solution
• Webparts
• Termsets
• Publishing Pages
• Entering the switch for first time
• Preparing Content Databases on QA before switch (2 weeks)
• Will this work?
Upgrading Solutions• Granular approach
• Different versions on different sites
• Provisioning list instances in an upgrade
• Upgrading solutions for Sandbox Solutions is different
Demo
Upgrading Solutions
Conclusion• Architecture and application design ALWAYS start with the
business needs
• Make sure you know why you are building a solution and how it can be considered a success, technology is the enabler, not the goal
• Solutions are more than just a file in Visual Studio
• Which architecture do we provide
• Which solution structure do we use
• What deployment strategy do we use
• Which dependencies do we need to sort
References• Deploying Solutions to SharePoint 2010 with PowerShell
• http://msdn.microsoft.com/en-us/library/aa544500.aspx
• Upgrading Solutions
• http://msdn.microsoft.com/en-us/library/aa543659.aspx
• http://msdn.microsoft.com/en-us/library/ee537575.aspx
• Switch Architecture and How-To
• http://technet.microsoft.com/en-us/library/hh495476.aspx
Questions?