Overview: Types of widgets
Content and functionality of Sitefinity CMS pages are defined through widgets. Anything you want your page to do, you must do it with a widget. Following are examples of how widgets define the content and functionality of pages in Sitefinity:
- To display text on your page, you use the Content block widget.
- To display the blog posts on your page, you use the Blog posts widget.
- To display news on your page, you use the News widget.
- To display a menu on your page, you use the Navigation widget.
In Sitefinity CMS pages are only containers where you add the content and the functionality using widgets.
NOTE: When you develop widgets for Sitefinity CMS, the system imposes no special requirements. You can use widgets created for other systems by including them in the Sitefinity CMS toolbox.
Sitefinity CMS supports the following types of widgets:
Built-in Sitefinity CMS widgets
These are widgets, such as Blog posts and News, Field widgets, and Sitefinity CMS specific widgets.
For more information, see Overview: Built-in widgets.
NOTE: The concept for a Sitefinity CMS widget is the same as the one for an ASP.NET control.
ASP.NET standard widgets
These are widget, such as HyperLink, GridView, XmlDataSource
User widgets
These are standard ASP.NET User Controls that are usually formed by a markup (implemented in the .ascx file), a code-behind (implemented in the .cs file), and a client script (implemented in the .js file).
You create such widgets in your Sitefinity CMS web application in Visual Studio and then register them in Sitefinity CMS toolbox. You can also directly add user widgets to your Sitefinity CMS web application project and reference them by the physical path to the control.
NOTE: The major difference between a Sitefinity CMS user widget and ASP.NET user control is that in a Sitefinity CMS user widget, you cannot hook to events through the markup. Instead, you can subscribe to events only in the code-behind (implemented in the .cs file).
For more information, see MSDN » ASP.NET User Controls
Advantages: These widgets are immediately available in your Sitefinity CMS project and get compiled and distributed along with it. There are no references or dependencies and this is the quickest way to build and use your widget.
Disadvantages: User widgets are not easy to share, because they are directly built and compiled into the host project. To run them in another Sitefinity CMS site, you must copy all the widget files, including any additional resources, such as images, templates, .css files, etc.
Custom widgets
These are compiled ASP.NET Web Server controls and are usually formed by markup (implemented in the .ascx file), a code-behind (implemented in the .cs file), and a client script (implemented in the .js file). The control and all of its resources are defined in a separate project and compiled into a single assembly (.dll file).
The main difference between custom and user widgets is that custom widgets must inherit the SimpleView class. That makes the registration of custom widgets different, that is, you must provide the complete path when registering a new custom widget in Sitefinity CMS Toolbox. In contrast, you register user widgets by virtual path. In addition, to map the markup file of a custom widget with its code-behind, you must override the LayoutTemplatePath property and put the complete path of the markup instead.
Advantages: Easy to distribute and reuse.
Disadvantages: These types of widgets take additional time to develop, because they must be designed to work independently of any site where they are used.
Custom module widgets
These are widgets, such as user or custom widgets, which are registered in Sitefinity CMS by the module to provide frontend functionality for the module.
Telerik RadControls for ASP.NET AJAX
These controls are shipped with Sitefinity CMS and you can use in your own Sitefinity CMS projects. For more information, see Telerik RadControls for ASP.NET AJAX.
NOTE: The RadControls coming with the CMS can be used only within the context of the application. You will get a trial message, if you use them in separate projects.
Telerik RadControls for Silverlight
You use Telerik RadControls for Silverlight by wrapping them in an ASP.NET widget.