Server controls are meant for eliminating redundant code and
boosting productivity. They make development tasks easier by hiding their
internal details and providing ready to use packaged functionality. There are
many controls shipped with ASP.NET that shorten development effort, but there
are always opportunities for us to build our own controls to reduce even more
development effort. Many times business scenarios create the need of custom
controls to simplify development solutions.
If you want some reusable functionality in a single
application or for few developers and it can be achieved from combining
existing web controls then user controls can be a good choice. But when you
want to make a piece of functionality reusable and redistributable then custom
controls will be the best solution. You can extend some control or make one
from scratch or combine multiple ones as per your need. This activity will let
you get into the things and will add confidence for bringing novelty and
uniqueness into your projects. Most importantly, you will become adept at
intrinsic details of the architecture of the dozens of standard controls
shipped with ASP.NET. The purpose of these controls is to achieve a different
functionality (from the existing server control), a totally new functionality,
or a combined functionality of several other existing or new server controls.