We are starting a new major initiative in Sitefinity that aims to enable developers to package certain pieces of website functionality into reusable components (Add-ons). Generally, it will work the following way:
1. Export any piece of the website data using the Data Export functionality
2. Combine the exported data with any files from your project (sources, binaries, static assets, etc.) and create it as a package
3. Install the add-on package to the target instance
4. Activate the add-on from the Sitefinity backend (there will be a new interface for this)
To get an idea about the new screens in the backend, you can have a look at http://l77ps2.axshare.com/
Here's some more details.
What can be included in the addon
We are trying to cover a broad range of scenarios here and allow you to place any piece of your website, i.e. any piece of exported data types and files that exist in your project.
Packaging and dependencies
The add-ons will be packaged and installed as nuget packages, which will allow to utilize the dependency management of Microsoft NuGet. The packages will have a special structure with placeholders for Sitefinity-specific data, that will be handled in a special way by Sitefinity after the nuget is installed.
Customization and upgrades of installed packages
Once installed, the add-ons will allow some level of customization to suit the needs of the target site they are installed to.
We will also offer upgrades, based on the versioning and upgrade mechanism of MS NuGet. On upgrade, Sitefinity will be also upgrading the previously exported data structures.
We are still figuring out the details what should and shouldn't be customized and how to balance between ease of customization and security of upgrades, so any feedback, ideas and suggestions on the topic will be most welcome.
Please share your thoughts, ideas and questions. Also, you'd help us a lot if you share a few minutes to fill in the following 8-question survey: