Con la versione 2.0 di ASP.NET è stata inserita una nuova classe nel namespace System.Web.UI.WebControls chiamata CompositeControl; ereditando da questa classe è possibile creare controlli compositi (quindi con altri controlli al loro interno) in maniera più semplificata rispetto a quanto si doveva fare nelle versioni precedenti del Framework.
Infatti, prima, si doveva ereditare dalla classe WebControl, implementare l'interfaccia INamingContainer ed assicurarsi a design-time che i controlli fossero stati creati correttamente attraverso il metodo EnsureChildControls().
Ora queste operazioni sono fatte direttamente dalla classe CompositeControl.
E' questo un modo più semplice per creare controlli web compositi senza l'implementazione di user control .ascx; infatti ereditando da CompositeControl ci si può avvalere di queste funzionalità aggiuntive:
- la possibilità di creare template
- la possibilità di creare un supporto migliore per il design-time
- la possibilità di inserirli all'interno della toolbox di Visual Studio
- la possibilità di compilarli in una dll e riusarli in altri progetti, senza doversi "portare dietro" il file .ascx