Sitefinity comes with several built-in modules, but more importantly it comes with the ability to be extended through new modules. Some of the built-in modules are
Blogs, Events, Forums, and News. Modules are essentially-specialized mini applications inside of
Sitefinity that provide narrow and streamlined features.
Why Build New Modules for Sitefinity?
Obviously there may be times when you will need features that Sitefinity does not provide out of the box. Whenever those features consist partially of admin side user
interface and partially of public side user interface, building a new module is the recommended way of implementation. Take for example the Blogs module. On the admin side it
provides user interface for creating blogs, writing posts and other authoring capabilities. On the public side, it provides the BlogPosts control for displaying posts, Bloggers
control for displaying the list of all bloggers, and so on.
If you need to implement features that will need user interface only on the public side, you should implement a User Control or Custom
Control. If, on the other hand, you need features that will have user interface only on the admin side, you should implement a tool.
How to Build a New Module for Sitefinity?
Sitefinity supports two kinds of modules:
- Intra-Site modules
- Pluggable modules
Both types are capable of achieving the same end functionality and the only difference is in the actual implementation.
Intra-Site modules are much simpler and quicker to develop. The code for these modules is stored in the App_Code folder, while the user
interface is implemented through series of User Controls. The downside of this approach is the fact that they are relatively hard to transfer from one
installation of Sitefinity to another.
Pluggable modules are a bit more complex to implement. The whole Pluggable module is compiled into a .dll file, together with the User
Interface elements (generally, composite controls). While somewhat more complicated to develop, Pluggable modules can be easily transferred from one Sitefinity installation to
another (copying the .dll file to the bin folder and registering the module in the web.config is all that needs to be done).
Obviously, depending on your particular needs, you will choose the appropriate type of a custom module. If you are developing a commercial module that you intend to resell to
other users of Sitefinity, you will want to create a pluggable module. If, on the other hand, you are creating one module for your site, economically it makes more sense to
develop an Intra-Site module. Also, if you have less-experienced developers on staff, you may decide to use Intra-Site modules as a simpler alternative.