2009-08-22 6 views
3

Je voudrais entendre quelques raisons pour utiliser un ServerControl opposé à un UserControl. J'ai trouvé que j'utilise probablement UserControls.ServerControl versus UserControl

Ma liste ressemble à ceci:

UserControl Pro

  1. facilement modifié. Besoin d'ajouter un attribut de classe à un élément, le découper en html.
  2. Création rapide et facile de la vue initiale. Tout le monde peut écrire html simple non?

Pro ServerControl

  1. Performance. Pas d'analyse HTML.
  2. Flexibilité. Contrôler le rendu jusqu'à un moucheron derrière.
  3. Réutilisable. Compilez-le et collez-le dans le GAC pour une utilisation ultérieure. Ou, vendez-le.

Tout ce qui me manque?

Répondre

5

Les deux avantages de contrôles serveur suivants viennent à l'esprit:

  • soutien à l'héritage (car le contrôle réel de l'utilisateur lors de l'exécution hérite de votre code derrière, vous ne pouvez pas en hériter plus
  • contrôle détaillé de l'analyse de l'étiquette (les étiquettes imbriquées doivent-elles être traitées comme des contrôles enfants ou des propriétés, etc.)
  • prise en charge des adaptateurs de contrôle (déclarative, par exemple dans a.fichier navigateurs)
  • de soutien pour tag mapping (si vous faites vos propres contrôles qui est souvent très utile si)

Cependant, les contrôles utilisateur ont un avantage supplémentaire, car ils sont basés sur un modèle:

  • support des expressions de liaison de données
1

Performances. Pas d'analyse html

Je ne m'attendrais pas à ce que ce soit une grande différence d'exécution - le .ascx devrait également être compilé lors de la première utilisation. Peut-être y a-t-il une légère économie de temps en ne vérifiant pas le fichier pour les modifications - mais je ne peux pas penser à autre chose.

2

Une autre considération est de savoir si vous voulez un support visuel design studio au moment yo Vous construisez le contrôle ou au moment où vous utilisez le contrôle sur la page. Cela m'ennuie vraiment que vous n'ayez que l'un ou l'autre, mais pas les deux.