3 Stimmen

ServerControl versus UserControl

Ich würde gerne einige Gründe dafür hören, warum man ein ServerControl anstelle eines UserControl verwenden sollte. Ich habe festgestellt, dass ich UserControl wahrscheinlich übermäßig verwende.

Meine Liste sieht ungefähr so aus:

Pro UserControl

  1. Leicht modifizierbar. Wenn Sie ein class-Attribut zu einem Element hinzufügen müssen, hacken Sie es im HTML heraus.
  2. Schnell und einfach zu erstellen. Kann nicht jeder einfaches HTML schreiben?

Pro ServerControl

  1. Leistung. Kein HTML-Parser.
  2. Flexibilität. Kontrolle über das Rendern bis ins kleinste Detail.
  3. Wiederverwendbarkeit. Kompilieren Sie es und stecken Sie es zum späteren Gebrauch in den GAC. Oder verkaufen Sie es.

Gibt es noch etwas, das ich übersehe?

5voto

Ruben Punkte 14679

Die folgenden zwei Vorteile von Serversteuerelementen kommen in den Sinn:

  • Unterstützung für Vererbung (weil das tatsächliche Benutzersteuerelement zur Laufzeit von ihrem Code hinter erbt, können Sie nicht mehr von ihm erben)
  • detaillierte Kontrolle über die Analyse des Tags (sollten verschachtelte Tags als untergeordnete Steuerelemente oder Eigenschaften behandelt werden usw.)
  • Unterstützung für Steuerelementadapter (deklarativ, z.B. in einer .browsers Datei)
  • Unterstützung für Tag-Zuordnung (wenn Sie Ihre eigenen Steuerelemente erstellen, ist das oft sehr nützlich)

Allerdings haben Benutzersteuerelemente einen zusätzlichen Vorteil, weil sie vordefiniert sind:

  • Unterstützung für Datenbindungs-Ausdrücke

2voto

Joel Coehoorn Punkte 377088

Eine andere Überlegung ist, ob Sie Unterstützung vom Visual Studio Designer haben möchten, wenn Sie das Steuerelement erstellen oder wenn Sie das Steuerelement auf der Seite verwenden. Es ärgert mich wirklich, dass man entweder das eine oder das andere bekommt, aber nicht beides.

1voto

Mark Brackett Punkte 83046

Leistung. Kein HTML-Parsing

Ich würde nicht erwarten, dass es einen großen Unterschied in der Laufzeit gibt - die .ascx sollte auch beim ersten Gebrauch kompiliert werden. Vielleicht wird durch das Nicht-Überprüfen der Datei auf Änderungen etwas geringfügiger Overhead gespart - aber mir fällt nicht viel anderes ein.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X