A custom web control is a control that inherits from a WebServer control and can be compiled into a .dll file and shared among applications. There are two approaches to creating one - inheriting directly from the WebControl class or inheriting from an existing control. A composite control contains other controls and handles their events.