Best practices for Add-on development
Setup
-
You should develop add-ons on an empty Sitefinity CMS project.
This will limit any external factors that are part of the development of a particular website and that might interfere with the exported add-on.IMPORTANT: If you want to export an add-on from an already developed website, you must make sure that the produced NuGet contains only the required content and assemblies.
-
You should do custom development, for example custom widgets and modules, in separate projects in order to enable the packaging of the add-on. Separate projects containing custom code can be easily referenced in the add-on
.nuspecfile. -
We recommend to develop the add-on in a Continuous delivery process, where you can produce and test the add-on properly.
For more information, see Create add-ons. -
We recommend to install and activate an add-on in a Continuous delivery process, where you can ensure that the add-on works properly and does not break the project.
For more information, see Install and activate add-ons.
Types of development
The different aspects of development fall in two categories:
- Server-side development
Usually consists of development of custom CMS widgets, services, modules, etc. It does not include the styling of HTML, creating and using CSS, creating widget or page templates. - Client-side development
Usually consists of development related to the visual representation of the produced markup - creating and using CSS, creating and editing widget and page templates.
Server-side and client-side development can be done separately, having highly specialized experts working on each, or could be spread across people with roles that have a broader skillset. Following the guidelines listed below will facilitate the use of either approach.