Sitefinity control toolbox can be extended with User Controls (.ascx files) and Custom Controls (compiled .dll files). There are no special
requirements that controls need to adhere to in order to be added to Sitefinity toolbox. However, Sitefinity provides several useful features that make developing controls even
simpler than it is for the normal ASP.NET application.
This topic provides an overview of the current section which will discuss how to take advantage of Sitefinity’s built-in features that allow developers to rapidly develop
powerful and customizable controls for the end users of Sitefinity.
To explain the features of Sitefinity controls, we will build Links List control from scratch. Each sample will take us one step further to creating more
customizable and more user-friendly control.
Sample Control : Links List
The sample control we are going to build is Links List. The control will be used by end users to display a list of links on the page. Users could use it as a blog roll control
together with other Blog controls.

Figure 1 : Feautres of the Links List control
As you can see from Figure 1, we are going to build a control that will allow end users to set the title of the control ("Favorite blogs" on the image), list of links that
the control will display, properties of the bulleted list such as the type of bullets, and finally, properties of the links such as color.
We are going to demonstrate all these concepts through the following 7 topics:
- Sitefinity Controls Basics: Adding Controls
This topic will explain the role of controls in
Sitefinity and the interaction that end users have with controls. It also provides instructions on how to add controls to Sitefinity toolbox.
- Using Properties with Controls
Demonstrates how control developers can make their
controls customizable for the end users with no programming abilities.
- Managing Properties with Attributes
Explains how to group properties into
meaningful groups and how to set default property of the control.
- Exposing Complex Child Controls as Properties
Demonstrates how to expose child
controls as properties and allow end users to manage properties of child controls as well.
- Using Non-string Properties with Controls
Explains how to use properties whose type
is not a primitive, such as arrays, lists and so on.
- Implementing TypeEditors for Complex Properties
Demonstrates how to provide user-friendly way for working with complex properties such as arrays of lists.
- Implementing Control Designer – the most user friendly way of editing a control
The final
example demonstrates how to implement Control Designers on controls to provide the most straightforward way for end users to customize controls.
You can download all the samples for this topic from here: LinksList
Project.