Working with modules
This topic provides you with an overview of modules in Sitefinity and guides you through the common steps when creating a module.
The article contains the following sections:
What is a module
Modules are small, independent applications that provide Sitefinity with specialized functionalities. They represent backend component, from which a user can create, delete or modify certain type of content items (content types). These content items can have different data fields, or implement comments for example. Sitefinity comes with several built-in modules, such as News, Events and Blogs, that provide user interface as well as API for these tasks. Sitefinity can be extended through new, custom modules, as well as extended by modification of existing ones.
For more information about the modules API in Sitefinity and how to use it see Modules.
Build-in modules
Sitefinity comes with several built-in modules. Here is a list:
-
Blogs module
It allows you to manage one or more blogs on a site including a range of features such as support for comments.
-
Documents and Files module
It provides users with the ability to manage files stored in libraries.
-
Events module
It provides users with the ability to schedule and announce events or happenings through their web site.
-
Forms module
Its purpose is to create forms like Contact us for example.
-
Images module
It provides users with the ability to manage images stored in libraries.
-
Lists module
It allows users to create lists such as FAQ.
-
News module
It allows you to add and display news stories to your Sitefinity site.
-
Newsletters module
It provides the ability of Sitefinity users to create and send newsletters to subscriber groups.
-
Videos module
It provides users with the ability to manage videos stored in libraries.
To view all build-in modules go to Sitefinity’s backend (http://<yoursite>/sitefinity) and click the Content button.
Custom modules
You can extend Sitefinity with new modules.
If, while developing your website, you need features that Sitefinity does not provide out of the box, you can build a new module. We recommend to do this in case that these features consist partially of admin side user interface and partially of public side user interface. The Blogs module is an example of such module - on the admin side it provides user interface for creating blogs, writing posts and other authoring capabilities. On the public side, it provides controls for displaying posts, displaying the list of all bloggers and so on.
If you need to implement features that need user interface only on the public side, you should implement a User Control or Custom Control. Fore more information, see Working with controls.
Many of the build-in modules are content-based modules. Content-based modules are based on ContentModuleBase and reuse much of the functionality available there. There are many features that are implemented directly when inheriting ContentModuleBase so that they can be reused across all modules based on it. Since Sitefinity is a Content Management System, most of the modules you build need the same or similar features provided by ContentModuleBase. We recommend building content-based modules, unless you have specific reasons not to do so.
For more information, see Creating Custom Modules.
Registering a module
To register a module in Sitefinity project, perform the following:
-
Build the Visual Studio solution, where the module was developed, by clicking Build Solution from the context menu of the solution.
-
Browse to the bin folder of the solution.
-
Copy the .dll file of the module project to the bin folder inside your Sitefinity folder.
-
Go to the Sitefinity backend (http://<yoursite>/sitefinity).
-
In the main menu, click Administration » Settings » Advanced.
-
In the treeview on the left, click System » ApplicationModules.
-
To register the module, click Create New.
-
In the Name input field and in the Title input field, enter the name of your module. For example, enter MyModule.
-
In the Type field, enter the fully qualified name of the module class. For example, enter MyModuleProject.MyModule.

-
In the StartupType field, change the text to OnApplicationStart.
-
To save your changes, click Save changes.
The module is installed the next time Sitefinity is initialized.