Sunday, October 10, 2010

Best Practices for developing Web Content Management (WCM) Portals using SharePoint 2010

Best Practices to consider while developing Web Content Management (WCM) portals using SharePoint 2010:

1. Prepare wired-frame diagrams for depicting screen layouts, developing a Proto-type in SharePoint is even better. It gives tremendous clarity to all the stakeholders and it becomes easy to communicate to your developers as well. Use Visio for this purpose.

2. Plan your web application topology well in advance. Identify when to use a site collection and when to use a subsite.

3. Define your taxonomies/folksonomy, use the SP 2010 managed metadata services.

4. Maintain separate content databases per  site collection, whenever you feel that your site collection can grow beyond 50 GB of data, move it into a separate content database, it becomes easier to manage and take back-ups and restore your web-application. SP 2010 recommended limit for content databases is a maximum of 100GB per site collection.

5. Always use content types, site columns for all your applications. Avoid creating columns directly in list/library.

6. Always limit the number of items in a List View using Filters.

7. Keep a very simple and a neat user interface with a user friendly navigation scheme.

8. Deploy your custom web parts, user controls, delegate controls, custom workflows as a feature solution package

9. Always prefer inheriting permissions for child sites, since they can be broken later.

10. Rigorously monitor your Application health using the new SP 2010 Developer dashboard for page response, memory leaks etc. ULS Diagnostic logging for errors etc.

11. Monitor your Content database size so that it does not exceed 100GB per site collection.

12. Use the new SP 2010 Folder Partitioning rules when your Document Library View items exceed the recommended 5000 item limit.

13. Always use Power Shell scripts to perform Solution installation, BackUp/Restore operations, Content database attach/detach, creating/deleting site collections and other Admin related operations.

14. Have atleast one Indexed column in your Lists for a performance reasons.

15. For moving content from staging to production environment, prefer using the new SQL Server 2008 Enterprise edition, Database snapshot technique which takes a quick snapshot of the Production farm and then ships it to the Destination farm.

16. You might convert your existing site collection to a solution file using SPD 2010 and open the solution using a Visual Studio 2010. and enhance it further. This is a faster way to build site definitions.

17. You can edit all List forms using InfoPath 2010, provided you have Enterprise edition of SP 2010. In this way you will be able to modify your New/Edit/Display forms using InfoPath 2010.

18. Use the advanced Record Management Rules for archiving, moving or marking documents as records. Alternatively InPlace records management is also available for declaring documents as records.

19. Prefer creating a Visual Webpart for better control over layout and ease of programming.

20. Prefer Creating Site Columns and Content Types programmatically over Features, the reason is when you add/update site columns in your custom content type, newly added/modified columns do not become immediately visible in the List/Page Content Type from the Parent Site Content Type.

Will keep updating this post with a lot more best practices in the future.