SharePoint 2010 Best Practices
Intro
Best practices are, and rightfully so, always a much sought-after topic. There are various kinds of best practices:
- Microsoft best practices. In real life, these are the most important ones to know, as most companies implementing SharePoint best practices have a tendency to follow as much of these as possibly can. Independent consultants doing architecture and code reviews will certainly take a look at these as well. In general, you can safely say that best practices endorsed by Microsoft have an added bonus and it will be mentioned whenever this is the case.
- Best practices. These practices are patterns that have proven themselves over and over again as a way to achieve a high quality of your solutions, and it's completely irrelevant who proposed them. Often MS best practices will also fall in this category. In real life, these practices should be the most important ones to follow.
- Practices. These are just approaches that are reused over and over again, but not necessarily the best ones. Wiki's are a great way to discern best practices from practices. It's certainly possible that this page refers to these "Practices of the 3rd kind", but hopefully, the SharePoint community will eventually filter them out. Therefore, everybody is invited and encouraged to actively participate in the various best practices discussions.
This Wiki page contains an overview of SharePoint 2010 Best Practices of all kinds, divided by categories.
Performance
When implementing IT solutions, everybody will face the day where a customer isn't happy with the way an application is performing. Because of the complex infrastructure and vast amount of features of SharePoint, there are many ways to approach these issues. Because of that and the importance of the topic, our first category outlines best practices to tackling performance problems.
- http://social.technet.microsoft.com/wiki/contents/articles/7926.sharepoint-2010-tips-for-dealing-with-performance-issues-en-us.aspx, perhaps the most comprehensive resource about solving SharePoint 2010 performance issues.
- http://www.dell.com/downloads/global/services/SharePoint_2010_Virtual_Small_Farm_Performance_Study_Final.pdf, performance study of virtualized small farm.
- http://www.f5.com/pdf/white-papers/dell-sharepoint-2010-large-farm-performance-study-wp.pdf, large farm performance study.
- http://www.microsoft.com/en-us/download/details.aspx?id=7480, performance studies.
- http://www.cleverworkarounds.com/2012/05/31/demystifying-sharepoint-performance-management-part-1-how-to-stop-developers-blaming-the-infrastructure, great series of articles about performance management.
- http://www.microsoft.com/downloads/details.aspx?FamilyID=37B1333C-A8D9-45F9-BE78-9212C2CD3641&displaylang=e&displaylang=en Managing large, up to multi-terabyte content databases.
Planning
Every SharePoint undertaking will at one point face the following questions: how long will it take, how much will it cost to implement, and how will we use it?
- http://social.technet.microsoft.com/wiki/contents/articles/10590.sharepoint-2010-best-practices-estimating-projects.aspx, the first and so far only resource covering this particular topic.
- http://gallery.technet.microsoft.com/Maxer-for-SharePoint-2010-8cd0f26f, Maxer for SharePoint 2010 is a tool that checks for capacity boundaries in existing SharePoint farms.
- http://technet.microsoft.com/en-us/library/hh403882.aspx, capacity management.
- http://social.technet.microsoft.com/wiki/contents/articles/3495.typical-sharepoint-project-part-1-en-us.aspx, interpretation of a "typical" SharePoint project.
- http://social.technet.microsoft.com/wiki/contents/articles/8874.sharepoint-server-2010-getting-started-beginners-to-expert-en-us.aspx, getting started.
- http://www.microsoft.com/en-us/download/details.aspx?id=1288, adoption best practices.
Installation, Removal, Configuration, and Operation
This section deals with best practices regarding the following questions: How to install SharePoint? How to configure it? How to keep it operating? All best practices are targeted towards the IT Pro.
- http://technet.microsoft.com/en-us/library/cc850692.aspx, provides advice on how to get and keep your environment up and running. This list is created by members of the Microsoft Consulting Services team.
- http://technet.microsoft.com/en-us/library/cc850694.aspx, provides advice for the IT Pro how to keep team collaboration sites manageable. Created by Microsoft Consulting Services.
- http://technet.microsoft.com/en-us/library/cc262706.aspx, discusses how to keep My Sites manageable. Created by Microsoft employees.
- http://technet.microsoft.com/en-us/library/hh292621.aspx, discusses content deployment best practices. Created by Microsoft employees.
- http://technet.microsoft.com/en-us/library/hh292622.aspx, SQL Server 2008 best practices. Created by Microsoft employees.
- http://technet.microsoft.com/en-us/library/hh377942.aspx, People and Profiles. Created by MS employees.
- http://technet.microsoft.com/en-us/library/cc850696.aspx, Search. Created by MS employees.
- http://seclists.org/basics/2008/Sep/225, general considerations regarding service accounts.
- http://social.technet.microsoft.com/wiki/contents/articles/8217.sharepoint-2010-crawl-database-is-too-large.aspx, discusses what to do when the crawl database becomes too large.
- http://social.technet.microsoft.com/wiki/contents/articles/7999.sharepoint-2010-strategies-for-handling-historical-data-in-custom-lists.aspx, how to handle historical data in lists?
- http://social.technet.microsoft.com/wiki/contents/articles/10550.sharepoint-2010-best-practices-ad-groups-or-sharepoint-groups.aspx, should you choose to use AD groups or SharePoint groups?
- http://social.technet.microsoft.com/wiki/contents/articles/8778.sharepoint-2010-best-practices-is-sharepoint-designer-really-pure-evil.aspx, musings about the advantages of SPD.
- http://social.technet.microsoft.com/wiki/contents/articles/8723.sharepoint-2010-best-practices-list-throttling.aspx, be careful with list throttling settings.
- http://social.technet.microsoft.com/wiki/contents/articles/9628.sharepoint-2010-best-practice-row-limits-in-external-lists.aspx, row limits in external lists.
- http://social.technet.microsoft.com/wiki/contents/articles/9950.sharepoint-2010-best-practice-troubleshooting-an-ssrs-report-that-times-out-en-us.aspx, troubleshooting SSRS reports.
- http://www.gokanozcifci.be/subsite/how-to-install-sharepoint-2010-with-sql-2012-on-windows-server-8.html, installing SharePoint 2010 and SQL Server 2012.
- http://www.gokanozcifci.be/subsite/install-and-configure-sharepoint-13-preview.html Install and configure SharePoint 2013 and SQL server 2012
- http://social.technet.microsoft.com/wiki/contents/articles/11177.sharepoint-2010-best-practices-removing-sharepoint-from-servers.aspx, explains how to remove SharePoint in a clean and orderly fashion.
- http://technet.microsoft.com/en-us/library/ee662513.aspx, least privileges for administrative and service accounts.
- http://sharepointgeorge.com/2010/installing-sharepoint-2010-privilege-service-accounts, least privilege model for service accounts.
- http://en.hugon.ws/articles/sharepoint-2010/using-the-service-accounts-with-least-privilege-to-run-sharepoint-2010, least privilege user accounts.
- http://technet.microsoft.com/en-us/library/cc678863.aspx, account permissions and security settings.
- http://www.sharepointblog.co.uk/2012/06/quickly-create-sharepoint-service-account/, a PowerShell script for quickly
creating SharePoint service accounts.
Deployment
Deployment of software artifacts is important. This section discusses best practices.
- http://technet.microsoft.com/en-us/library/cc303424.aspx, deployment to different farm topologies.
- http://blogs.technet.com/b/stefan_gossner/archive/2009/01/16/content-deployment-best-practices.aspx, Content deployment best practices
Virtualization
It's very common that SharePoint farms use virtualization techniques. This section is dedicated to best practices concerning virtualization.
- http://technet.microsoft.com/en-us/library/hh295699.aspx, discusses virtualization best practices. Created by Microsoft Consulting Services.
- http://www.andrewconnell.com/blog/articles/SqeezePerformanceOutOfVirtualPCs.aspx, performance tips for virtual PCs.
Real Life Usage
Once you have SharePoint deployed, it's up to the end users, power users, and IT Pros to make the best of it. This section discusses best practices targeted towards this audience.
- http://social.technet.microsoft.com/wiki/contents/articles/8110.sharepoint-2010-best-practices-asset-vs-picture-library.aspx, discussion of the use of Asset vs Picture libraries.
- http://social.technet.microsoft.com/wiki/contents/articles/8138.sharepoint-2010-best-practices-copying-permissions-between-site-collections.aspx, dealing with copying permissions between site collections.
- http://social.technet.microsoft.com/wiki/contents/articles/2209.best-practices-for-indexing-file-share-content-en-us.aspx, best practices that help indexing content stored on file shares.
- http://sharepointdragons.com/2012/03/27/sharepoint-2010-wcf-best-practice/, discussion whether a WCF service should be separate or run within SharePoint context.
- http://social.technet.microsoft.com/wiki/contents/articles/8680.sharepoint-2010-best-practices-folders-not-necessarily-considered-evil.aspx, discusses advantages of folders over views.
- http://social.technet.microsoft.com/wiki/contents/articles/9638.sharepoint-2010-best-practice-keep-relational-data-in-a-database-or-migrate-it-into-a-custom-list.aspx, discusses whether to store data in SharePoint lists, external lists, or relational databases.
Backup and Recovery
This section deals with best practices about the back up and restore of SharePoint environments.
- http://technet.microsoft.com/en-us/library/gg266384.aspx, backup and recovery.
- http://social.technet.microsoft.com/wiki/contents/articles/5099.sharepoint-2010-backup-and-recovery-guidelines-en-us.aspx, general backup and recovery guidelines.
- http://social.technet.microsoft.com/wiki/contents/articles/9726.sharepoint-2010-best-practice-when-should-you-back-up-sharepoint-via-sharepoint-central-administration-sca.aspx, discusses when to use SCA to perform backups.
- http://technet.microsoft.com/en-us/library/cc261687(office.14).aspx, provides good explanation of what get's backed up and when.
Development
This section covers best practices targeted towards software developers.
- http://msdn.microsoft.com/en-us/library/ee554869(office.14).aspx, setting up a development environment.
- http://technet.microsoft.com/en-us/magazine/dn145990.aspx SharePoint 2010: Establish the proper environment
- http://msdn.microsoft.com/en-us/library/ff770300.aspx, patterns and practices from MS Patterns and Practices group for developing applications in SharePoint 2010.
- http://msdn.microsoft.com/en-us/library/ee231582.aspx, Visual Studio.NET 2010 requirements for developing SharePoint 2010 solutions.
- http://msdn.microsoft.com/en-us/library/ee556427(v=office.14).aspx, best practices for SPF concerning suspending impersonation, unnecessary construction of SPSite and SPWeb objects, event receivers, disposing objects, file naming restrictions, handling large folders and lists, object caching techniques, and optimizing code performance.
- http://sharepointdragons.com/, disposing objects.
- http://msdn.microsoft.com/en-us/library/ee558807(v=office.14).aspx, tips about writing efficient code.
- http://msdn.microsoft.com/en-us/library/gg552614.aspx, Security Best Practices for Developers in SharePoint 2010.
- http://msdn.microsoft.com/en-us/library/gg615455.aspx, Best Practices for Developing Sandboxed Solutions in SharePoint 2010
- http://spg.codeplex.com/, SharePoint Guidance Hands on Labs by MS.
- http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=23919 developing applications for SharePoint 2010.
- http://charliedigital.com/2009/08/29/design-patterns-for-sharepoint-entry-1/, creating an IDisposable class for lists so you won't forget to dispose SPSite and SPWeb objects.
- http://sharepointmvc.codeplex.com/, SharePoint MVC pattern.
- http://social.technet.microsoft.com/wiki/contents/articles/7884.sharepoint-2010-building-a-web-part-that-implements-the-mvp-pattern.aspx, SharePoint MVP pattern.
- http://social.technet.microsoft.com/wiki/contents/articles/8181.sharepoint-2010-best-practice-which-api-to-use.aspx, which API should you use: SharePoint object model/web services/client object model/custom WCF service leveraging server object model?
- http://sharepointdragons.com/2012/03/09/determine-the-current-user-in-a-sps-2010-workflow/, best practice for determining the current user in a SharePoint workflow.
- http://social.technet.microsoft.com/wiki/contents/articles/8665.sharepoint-2010-best-practices-where-to-publish-a-wcf-service-en-us.aspx, create a separate WCF service or a WCF service in SharePoint context?
- http://social.technet.microsoft.com/wiki/contents/articles/8044.sps-2010-best-practices-retrieving-the-current-user-in-a-workflow.aspx, how to retrieve the current user in a SharePoint workflow.
- https://caf.sharepoint.microsoftonline.com/ MICROSOFT SHAREPOINT ONLINE CODE ANALYSIS FRAMEWORK (MSOCAF) This application have code rules that can be used to validate SharePoint Solutions.
- http://archive.msdn.microsoft.com/SPDisposeCheck SPDisposeCheck is a tool that helps developers and administrators check custom SharePoint solutions that use the SharePoint Object Model helping measure against known Microsoft dispose best practices.
Search
Search is a complex topic and important to almost every company working with SharePoint. This section discusses best practices.
http://technet.microsoft.com/en-us/library/cc262794(v=office.12).aspx, when to crawl content.
http://technet.microsoft.com/en-us/library/ff599528.aspx, FAST search topology.
http://social.technet.microsoft.com/wiki/contents/articles/411.best-practices-for-using-a-dedicated-front-end-web-server-for-crawling-in-microsoft-office-sharepoint-server-2007-en-us.aspx , how to use a dedicated web server for crawling.
Upgrade and Migration
If a product is successful, it has to be upgraded at some point.
- http://technet.microsoft.com/en-us/library/cc261992.aspx, reviews upgrade best practices.
- http://www.slideshare.net/joeloleson/sharepoint-2010-upgrade-best-practices-croatia, video of best practices.
- http://technet.microsoft.com/en-us/video/initial-best-practices-lessons-learned-from-microsoft-its-sharepoint-2010-upgrade.aspx, video about Upgrade lessons learned by MS.
- http://www.aiim.org/community/blogs/expert/SharePoint-2010-Upgrade-Options-Considerations-Best-Practices, preparing for upgrade.
- http://channel9.msdn.com/posts/Joel-Oleson-SharePoint-2010-Upgrade--Migration-Best-Practices-SharepointPTDay-29102010, video about upgrade and migration best practices.
- http://technet.microsoft.com/en-us/library/cc262342(v=office.14).aspx , upgrade from SharePoint Foundation 2010 to SharePoint server 2010
Extranet Environments
This section provides an overview of planning and design considerations for SharePoint Extranet Environments.
- http://technet.microsoft.com/en-us/library/hh204611.aspx, provides advice regarding SharePoint Extranet environments. Created by members of Microsoft Consulting Services.
- http://www.microsoft.com/en-us/download/details.aspx?id=24079, extranet topologies.
- http://blogs.kma-llc.net/microknowledge/2011/06/sharepoint-2010-extranet-topologies-and-firewalls.html, extranet topologies and firewalls.
- http://technet.microsoft.com/en-us/library/cc263513.aspx, more extranet topologies.
- http://technet.microsoft.com/en-us/library/cc262834.aspx , lots of inf about extranet infrastructure. The part about protocols and port numbers is especially good!
- http://docs.oracle.com/cd/E27559_01/admin.1112/e27239/oam11_sharepoint2010.htm, Integration Oracle IAM with SharePoint 2010 for authentication
Farms
This section discusses best practices regarding SharePoint 2010 farm topologies.
- http://programming4.us/enterprise/3492.aspx, discussion of three supported topologies: Single Data Center High-Availability Model, Cross-Site High-Availability Model, and Multiple-Farm Cross-Site Model.
- http://technet.microsoft.com/en-us/library/cc263199.aspx, technical diagrams of recommended solutions.
- http://www.microsoft.com/en-us/download/details.aspx?id=6096, common ways to build and scale farm topologies.
- http://www.techbubbles.com/sharepoint-2010/sharepoint-2010-farm-topologies/, nice explanation of basic terminology.
- http://sharepointsolutions.com/sharepoint-help/blog/2011/02/how-to-scale-out-a-sharepoint-2010-farm-from-two-tier-to-three-tier-by-adding-a-dedicated-application-server/, scale out from a 2-tier farm to a 3-tier farm.
- http://www.sharepointedutech.com/2011/01/02/topology-med-sp2010-farm/, topology and licensing example of medium farm.
- http://www.astaticstate.com/2010/07/sharepoint-2010-physical-topology.html, examples of diagramming SharePoint topologies.
- http://technet.microsoft.com/en-us/library/ee805948.aspx, 3-tier farm.
- http://mscerts.programming4.us/sharepoint/Topologies%20for%20SharePoint%202010.aspx, discussion of basic types of deployment.
Top 10 Blogs to Follow
It's certainly a best practice to keep up to date with the latest SharePoint news. Therefore, a top 10 of blog suggestions to follow is included.
- http://blogs.msdn.com/b/sharepointdev/, the SharePoint Developer team blog.
- http://www.andrewconnell.com/blog, Andrew Connell on SharePoint.
- http://www.sharepointjoel.com/default.aspx, Joel Oleson's SharePoint Land.
- http://sharepointdragons.com, Nikander & Margriet on SharePoint.
- http://blogs.msdn.com/b/uksharepoint/, the SharePoint guys.
- https://www.nothingbutsharepoint.com/Pages/default.aspx, Nothing but SharePoint.
- http://www.shillier.com/default.aspx, Scot Hillier on SharePoint.
- http://www.lightningtools.com/blog/default.aspx, Lightning Tools Blog.
- http://www.wictorwilen.se/, Wictor Wilen on SharePoint.
- http://www.gknzcfc.net/blog, Gokan Ozcifci on SharePoint
Top 5 SharePoint Books
Books remain the most important resource for learning a new topic. Here's a suggestion of the best SharePoint 2010 books out there.
- http://www.amazon.com/Inside-Microsoft-SharePoint-2010-Pattison/dp/0735627460/ref=sr_1_1?s=books&ie=UTF8&qid=1337663232&sr=1-1, the favorite developer book about SharePoint 2010.
- http://www.amazon.com/Microsoft-SharePoint-2010-Administrators-Companion/dp/0735627207/ref=sr_1_2?s=books&ie=UTF8&qid=1337603828&sr=1-2, great resource for administrators.
- http://www.amazon.com/SharePoint-2010-Site-Owners-Manual/dp/1933988754/ref=sr_1_1?s=books&ie=UTF8&qid=1337663093&sr=1-1, does a great job teaching SharePoint end users and power users.
- http://www.amazon.com/Microsoft-SharePoint-Designer-2010-Step/dp/0735627339/ref=sr_1_2?s=books&ie=UTF8&qid=1337663155&sr=1-2, dedicated to SharePoint Designer 2010.
- http://www.amazon.com/SharePoint-2010-Web-Parts-Action/dp/1935182773/ref=sr_1_1?s=books&ie=UTF8&qid=1337663192&sr=1-1, best book out there about SharePoint 2010 web parts.
Top 10 SharePoint Tools
What to put in your bag of tools?
- http://cksdev.codeplex.com/, CKSDev makes SharePoint development easier.
- http://spm.codeplex.com/, SharePoint Manager is a SharePoint object model explorer.
- http://camldotnet.codeplex.com/, CAML.NET: IntelliSense for CAML.
- http://karinebosch.wordpress.com/2012/05/12/caml-designer/, CAML Designer makes creating CAML queries a lot easier (successor of U2U CAML Query Builder).
- http://archive.msdn.microsoft.com/ULSViewer, you'll always need a tool to view the ULS log files. ULS Log Viewer is probably the most popular one of the lot.
- http://gallery.technet.microsoft.com/Maxer-for-SharePoint-2010-8cd0f26f, the SharePoint Maxer tool helps checking for capacity planning limits.
- http://gallery.technet.microsoft.com/The-SharePoint-Flavored-5b03f323, the SharePoint Flavored Weblog Reader (SFWR) helps troubleshooting performance problems by analyzing the IIS log files of SharePoint WFEs.
- http://gallery.technet.microsoft.com/The-Migration-Dragon-for-628acae0, the Migration Dragon for SharePoint 2010 is a tool that can help to migrate file and folder structures from the file system to SharePoint 2010 Document Libraries leveraging the batching mechanism of the SharePoint managed client object model.
- http://visualstudiogallery.msdn.microsoft.com/36a6eb45-a7b1-47c3-9e85-09f0aef6e879, Muse.VSExtensions, a great tool for referencing assemblies located in the GAC.
- http://spservices.codeplex.com/, jQuery Library for SharePoint Web Services
Top Forums/Communities
Here is a list of sites to ask questions.
Other Blogs To Follow
1. Luis Valencia WordPress Blog (Real Life Problems with all SharePoint 2010 Development related, like content types, lists, feature upgrading, etc)
2. Field Notes on SharePoint Architecture, Strategy & Governance (Guidance on SharePoint Governance Framework with tools and templates)
3. Bjoern H Rapp, The SharePoint Viking (Developer-oriented blog about all things SharePoint 2010.. and SharePoint 2013)