SCSF Contrib Coding Guidelines
Contributors should check back to this page often as these guidelines will likely evolve based on customer input and team discussions.
Namespaces
All code in this project should live under the
SCSFContrib namespace.
- Extensions should live under the SCSFContrib.Extensions namespace under the appropriate subfolder.
- UI agnostic CAB Extensions (i.e. custom Presenters, Controllers, Workitems) should live under SCSFContrib.Extensions.CAB
- Windows forms CAB extensions (Smart Parts, Workspaces, UI Extensions) should live under SCSFContrib.Extensions.WinForms
- WPF CAB extensions (Smart Parts, Workspaces, UI Extensions) should live under SCSFContrib.Extensions.WPF
- Custom services should live under SCSFContrib.Services
- Custom Guidance packages should live under SCSFContrib.GuidancePackages
References
SCSF Contrib projects should reference
Microsoft signed copies of Enterprise Library and CAB assemblies for consistency. However it should be easy for consumers of the code to recompile against unsigned or custom signed copies of the assemblies.
Unit Tests
All contributed code should have high unit test coverage, and the unit tests should be checked into the appropriate place in the code tree.
Documentation and Samples
All submitted extensions should include basic documentation explaining the intended usage scenarios, the available configuration options (if applicable) and the API (if applicable). The documentation should be posted on this CodePlex site in the
Documentation section. Samples or QuickStarts demonstrating the use of an extension can be checked into the Samples section of the source control if appropriate.