Friday, May 28, 2010

Suggested SharePoint Development Standards

Assembly Development:

 
File Headers:
  • In the top section of each file (code, xml, aspx, etc) supply the following information:
    • Company name and copy rights
    • Author name
    • File
    • Purpose
    • Create Date
Custom Configuration:
Config File:
  • When possible try to not store custom settings in the web.config file. Use a separate file on CONFIG folder.
  • File name should follow this format:
    • [Customer]_[Supplier Name]_[Solution name]_Configuration.config example:Adventureworks_JSolutions_Branding_Configuration.config
  • Entries to web.config keys must be communicated beforehand to the customer.
  • Entries to web.config (user names or passwords) must be encrypted.
  • Entries to the web.config should be inside a block of comment which contains the solution name and description.
Property Bag:
  • Should be used for storing only primitive types.
  • If the values are user-defined, provide a web interface to edit those properties from custom actions on central administration on each property scope.
Features:
  • Ensure that each feature GUID is unique in the farm.
  • Ensure that each feature folder name and title should follow this format:
    • [Customer].[Supplier Name].[Solution name].[Feature Name]
    • example: Adventureworks.JSolutions.Branding.HideLinks
  • Ensure that all the features has a appropriate name, description, updated version number and icon.
  • Features with event receivers should clean up all changes created in activation as part of the deactivation routines. If the feature creates a list that contains user data, the feature should not delete this list.
  • Farm and Web Application features should never be hidden.
  • Site Collection and Site features should be hidden.
Solution (WSP):
  • Ensure that new solutions have a unique GUID in the Farm
  • Ensure that the new solution version number is incremented (format V#.#.#)
  • Solution naming convention must be descriptive: 
    • [Client Name].[Supplier Name].[Solution or module name]_[Version number].wsp                                       
    • example: Adventureworks.JSolutions.Branding_v1.0.0.wsp
  • In case of an update solution action is required for installation,solution name must not be  changed. 
  • The solution package should not include any of SharePoint installed files.
  • Referenced assemblies should not be set to copy local = 'true'.
  • All prerequisites must be communicated to the customer and pre-installed as stand-alone components for easier administration.

 Tools for Building the Solution:
Tools for Quality Assurance:
  • Use FXCop for identifying and fixing performance and security issues in source code.
  • Use the CAT.NET to help identify security issues in the solution source code.
  • Use StyleCop to identify code style and naming conventions issues. 
  • Use the SPDisposeCheck tool
Source Control:
  • All source code must be under a proper source control (like TFS or SVN).
  • All internal builds must have proper labels on source control.
  • All releases have proper labels on source control.
Quality Assurance:
Release to Customer:
  • Provide an Installation Guide which contains the following items:
    • Solution name and version number.
    • Targeted environments for installation.
    • Software and hardware Prerequisites: explicitly describes what is all needed updates, activities, configurations, packages, etc. that should be installed or performed before the package installation.
    • Deployment steps: Detailed steps to deploy or retract the package.
    • Deployment validation: How to validate that the package is deployed successfully.
    • Describe all impacted scopes in the deployment environment and the type of impact.
Enjoy !!!

9 comments:

Seth said...

hey, good stuff man! Thanks for the post.

sukumar said...

Thanks for sharing information about SharePoint keep it up more post.
Sharepoint Development

stena said...

Resourceful information for SharePoint.
SharePoint is a Microsoft Product, which is used to develop information portals in the organization. These information portals enable the people to connect and collaborate with the information available in the organization.
Thanks.
SharePoint Consulting

spike said...

Hi,

I just wanted to say that I really enjoyed your blog and this post. You make some very informative points. Keep up the great work!

-
SharePoint Development

Kevin Leinen said...

It's awesome and thanks for sharing this posting, Keep updating. Thanks



SharePoint Development

BuckminsterMalone said...

Know that SharePoint Development Standards have been updated with a few minor SharePoint 2010 specific tweaks, the addition of database access but how we can include client site development like Jquery.

AlecCoffey said...

For custom SharePoint growth, it would be a wise decision to choose third-party associates. You will need them to keep from writing plenty of customized rule.

Neil Hester said...

It is essential that you comprehend the actual concepts for each conventional if you want to know whether it is appropriate in your own environment.

Dean Infotech said...

Really nice post…Thanks for sharing the information & keep sharing. I like it Click Share Point Development

Post a Comment