I controlli in ASP.NET 2.0
Stavo guardando le differenze tra la versione attuale e la versione 2.0 del Framework per quanto riguarda i controlli Web e ho notato un po' di cose interessanti. Tutti sappiamo che la superclasse dei controlli è Control da cui derivano la classe TemplateControl (classe base di Page e UserControl), i WebControls e gli HtmlControls. Sono rimasto impressionato dalla quantità di nuovi controlli; ecco un elenco dei più significativi:
1. i controlli relativi ai dati (la DataGrid non c'è più - c'è la GridView e poi altri controlli più o meno noti);
2. i WebControls (sono una marea, c'è anche la TreeView);
3. WebControls.Content e WebControls.ContentPlaceHolder (servono per rendere modulari le pagine);
4. controlli Validators (i soliti);
5. controlli Navigation (Menu, SiteMapPath);
6. controlli Login (Login, LoginView, LoginStatus, ecc.);
7. WebPart, direttamente da SharePoint... :) (appartengono anche loro al namespace ASP);
8. i controlli HTML soliti;
9. i controlli Literal.
Sia la classe Control che la classe TemplateControl implementano un bel po' di interfacce nuove (vedi sotto).
Versione 1.1
<font size="2">Public Class Control Implements IComponent, _ IDisposable, _ IParserAccessor, _ IDataBindingsAccessor</font>
<font size="2">MustInherit Public Class TemplateControl Inherits Control Implements INamingContainer</font>
Versione 2.0
<font size="2">Public Class Control Implements IComponent, _ IDisposable, _ IParserAccessor, _ IUrlResolutionService, _ IDataBindingsAccessor, _ IControlBuilderAccessor, _ IControlDesignerAccessor, _ IExpressionsAccessor</font>
<font size="2">MustInherit Public Class TemplateControl Inherits Control Implements INamingContainer, _ IFilterResolutionService, _ IThemeResolutionService</font>
Le classi Page, WebControl e HtmlControl sono rimaste invariate come implementazione e derivazione:
<font size="2">MustInherit Public Class HtmlControl Inherits Control Implements IAttributeAccessor</font>
<font size="2">Public Class WebControl Inherits Control Implements IAttributeAccessor</font>
<font size="2">Public Class Page Inherits TemplateControl Implements IHttpHandler</font>
Un discorso diverso va fatto per la classe UserControl, che tra le altre cose implementa direttamente l'interfaccia INamingContainer (container di denominazione):
Versione 1.1
<font size="2">Public Class UserControl Inherits TemplateControl Implements IAttributeAccessor, _ IUserControlDesignerAccessor</font>
Versione 2.0
<font size="2">Public Class UserControl Inherits TemplateControl Implements IAttributeAccessor, INonBindingContainer, INamingContainer, IUserControlDesignerAccessor</font>
Ecco un po' di immagini della toolbar con i vari controlli disponibili.
C'è davvero da sbizzarrirsi!!! :)
![]() | ![]() | ![]() |














