Work with decoupled modules
Overview
By default, a Sitefinity CMS installation comes in two packages:
- The Full package, containing all modules
- The Light package, containing only core modules.
Depending on your use case, you may be utilizing only some Sitefinity CMS modules. In such cases, you may choose to use one of the two packages. In addition, you can disable the modules that are not used or add only modules that you want to use. This way, the precompiled logic of the disabled modules remains in the project /bin
folder and gets loaded by the IIS application pool process, but the modules’ initialization logic is not executed every time Sitefinity CMS application starts.
By decoupling the system modules, Sitefinity CMS offers you an advanced mechanism for handling such scenarios. This way, you can selectively install only the required modules and optimize your website startup time and the IIS application pool memory consumption.
PREREQUISITES: To be able to use decoupled modules and select between the Full-modules package and the Light package, you must install Sitefinity CMS using NuGet packages. For more information, see Install Sitefinity CMS.
If you are not using all Sitefinity CMS modules, you might consider installing the light package. Then, add on top of it the modules you need. When creating projects via NuGet packages, you have two options:
Full package
You install all modules of Sitefinity CMS by installing the Telerik.Sitefinity.All
NuGet package in your application.
This package contains the full set of Sitefinity CMS modules.
Light package
You can install only Sitefinity CMS core modules by installing the Progress.Sitefinity
NuGet package in your application.
This package contains a light version of Sitefinity CMS with a core set of modules.
Add modules to the Light package
The following list of modules is not included in the Light package. If you want to use the Light package, but need some of the modules that are not included, you can selectively add the desired modules, by installing the following NuGet packages:
Progress.Sitefinity.ABTesting
Telerik.Sitefinity.Analytics
Telerik.Sitefinity.AuditTrail
Telerik.Sitefinity.Diagnostics
Telerik.Sitefinity.DigitalExperienceCloudConnector
Progress.Sitefinity.Forums
Progress.Sitefinity.MobileFormats
Telerik.Sitefinity.Packaging
Telerik.Sitefinity.RecycleBin
Telerik.Sitefinity.SitemapGenerator
Telerik.Sitefinity.SiteSync
Progress.Sitefinity.WebSecurity
Telerik.Sitefinity.AmazonCloudSearch
Telerik.Sitefinity.Amazon
Telerik.Sitefinity.Azure
Telerik.Sitefinity.Audit.Elasticsearch
Telerik.Sitefinity.SharepointConnector
Telerik.Sitefinity.MarketoConnector
Telerik.Sitefinity.SalesForceConnector
Progress.Sitefinity.EloquaConnector
Progress.Sitefinity.HubSpotConnector
Progress.Sitefinity.NativeChatConnector
Telerik.Sitefinity.Translations
Remove unused modules
You can remove unused modules from existing projects, by performing in one of the following ways:
- Using the backend UI
In Sitefinity CMS backend, navigate to Administration » Modules & Services.
Expand the Actions menu of the module and click Uninstall.
For more information, see Activate and deactivate modules.
- If your project is using NuGet packages, uninstall the package.
- If your project is not using NuGet packages, remove the references to the module assembly from your project references.
Then delete the module assembly from the project /bin
folder.
Build the project.
When you uninstall a module, Sitefinity CMS removes it from its configuration files. If, in addition, you remove the module from the project references and the project /bin
folder, the IIS application pool no longer loads the module assembly, thus, decreasing your website memory consumption.
Performance benefits of Progress.Sitefinity package
When you install the Light package of Sitefinity CMS, you are loading fewer modules on startup, which improves the memory consumption and lowers startup time by up to 30%. The following table demonstrates the metrics comparison between a blank project running with the full set of modules and a blank project running with the light version of Sitefinity CMS:
Metric
|
Progress.Sitefinity
|
Telerik.Sitefinity.All
|
Size
|
393 MB
|
484 MB
|
Project setup time
|
110 sec
|
138 sec
|
Startup time
|
9.6 sec
|
15.6 sec
|
DB size (initial schema)
|
73 MB
|
73 MB
|
w3wp memory
|
(395 – 445) MB
|
(440 – 512) MB
|
NOTE: The above metrics are provided for demonstration purposes only. They illustrate the effect of running the Light Sitefinity CMS package. The results vary depending on your setup and hosting configuration.