Sitefinity CMS Add-ons

Definition

Add-ons are packages of code and content that extend the core functionality of the Sitefinity CMS. Add-ons are made of custom ASP.NET code, configurations, content, and assets. Add-ons can include, but are not limited to Pages, Page Templates, Widgets, Widget templates, Libraries, Dynamic modules, Static modules, images, CSS, and JavaScript.

Purpose

Add-ons should distribute a single piece of functionality to many consumers to solve a common set of problems across a wide range of web applications. Each add-on should have an owner who can maintain it and issue new versions.

RECOMMENDATION: We recommend using add-ons only in cases when you need to solve a common problem across many web applications. We do not recommend creating an add-on for every piece of customization of your system. Implementing an add-on for every piece of functionality in a system is not feasible and not recommended, as it can add significant complexity in the upgrade process and increases the overall development cost.

Architecture

Add-ons are contained and distributed in NuGet packages. The .nuspec file and folder structure for each package is automatically generated by the Sitefinity CMS. The folder structure contains files with all structure and content data of the exported types. All custom developed functionalities, such as Providers, Widgets, HttpHandlers, Services, etc. are contained in separate projects that are referenced in the .nuspec file. The produced NuGet package contains all necessary custom code and data that works out-of-the-box when installed.

EXAMPLE: Following are few examples of add-ons:
  • Extended Blogs module - provides better SEO support, automatic semantic relation of blog posts items, a custom Authors module, etc.
  • Ecommerce template - creates a website with sample pages, data, CSS styles and visuals that can be used as a base for the development of an ecommerce web application.
  • Connector for Eloqua - integrates the Sitefinity CMS with the Eloqua marketing platform by extending the Forms module and inserting JavaScript code with tracking purposes that executes on every public page 
  • DevMagazine website – provides a starter kit template website.
    For more information, see Example: DevMagazine website.

Was this article helpful?

Next article

Event system