Spesso, leggendo i newsgroups vedo che c'è una diffusa confusione sull'argomento UserControls e WebControls, non tanto in merito alla creazione dell'uno o dell'altro, ma soprattutto nell'utilizzo che hanno le due tipologie di controlli.

E' mia abitudine considerare in modo sostanzialmente diverso gli UserControl dai WebControl, e nel distinguerli ho adottato la seguente logica:

1) Lo UserControl è alla stessa stregua di una pagina. Questo non implica esclusivamente che vada "editato" in modo analogo, ma che esso possa fare accessi al database "diretti", ovvero senza dover esporre una proprietà datasource e acquisire i dati da visualizzare dalla pagina che lo contiene. Per questioni di prestazioni poi uso esporre nella pagina un oggetto "ConnectionManager" che mi consente di condividere la medesima connessione tra la pagina e lo UserControl contenuto.

2) Il WebControl, invece è una porzione di codice "completamente riutilizzabile". In soldoni, mentre la "riutilizzabilità" di uno UserControl ha uno scope di Applicazione, quello di un WebControl ha uno scope che esula dal dominio di una singola applicazione e non può essere diversamente perchè il riutilizzo in un'altra applicazione di uno UserControl ne comporta la duplicazione. Quindi i WebControls che sfrutto per mostrare dati adottano il consueto meccanismo di DataSource e DataBind().

Con questo criterio di lavoro mi sono sempre trovato bene e diventa immediatamente chiaro cosa si deve usare quando ci si trova nell'impasse. Si tratta di una mia assunzione e pertanto potrebbe essere soggetta a critiche, ma spero ceh qualcuno ne possa trovare beneficio.

powered by IMHO 1.2

 


Commenti (2) -

# | Simone Chiaretta | 08.03.2005 - 19.39

Il mio principale problema è invece capire di cosa stiamo parlando:

cioè, mi dimentico sempre cosa si riferisce a cosa:

i file ASCX sono gli UserControl o i WebControls?



La mia confusione risiede proprio qui, anche perchè mi viene più facile identificare gli ASCX con i WebControls (associazione di nomi, idee, concetti) invece che agli UserControls.



# | Andrea Boschin | 08.03.2005 - 19.45

in realtà l'associazione è ASCX==UserControls. Nella documentazione comunque si usa spesso riferirsi agli ascx come Web User Controls e agli altri con Web Custom Controls. Credo sia questo che crea confusione.



Io per non sbagliare mi riferisco alla classe da cui derivano: UserControl per gli ASCX e WebControl o Control per gli altri...

Aggiungi Commento