ASP.Net übermäßige Verwendung von User Controls

Ich bin untersucht eine asp.net web-Anwendung, die ausgiebig verwendet User Controls auf jeder Seite. Die meisten Seiten enthalten etwa 10 bis 20 Benutzer-Steuerelemente. Der Benutzer steuert, scheinen die visuelle Darstellung der business Objekte (wenn das Sinn macht), obwohl eine feinere Granularität wie jeder tab ein tab-control, das seinen Inhalt in einem Steuerelement. Das Projekt selbst hat über 200 Benutzersteuerelemente (ascx-Dateien).

Die performance der Anwendung ist sehr schlecht (und der Grund, warum ich mich untersuchen). Jedes Ereignis (wie einen Klick oder dropdown-Auswahl etc) benötigt etwa 5 Sekunden, die Seite zu laden (10 Sekunden, während in visual studio). Die Anwendung hat keine Verwendung von Ajax.

Tracing schmerzhaft ist, wie die aspx-Seiten, die selbst keinen code in der code-behind als der Benutzer steuert sich nach all dies, so dass die Verfolgung einer einzigen Seite benötigt trace-Anweisungen in allen user-controls, die sich auf dieser Seite.

Ich glaube tatsächlich, dass jeder Benutzer die Kontrolle sich nach deren Geschäfts-code und re-nutzbar, ist eine kluge Idee, aber eine übermäßige Verwendung von Benutzer-Steuerelementen werde, fällt eine performance-hit? Scheint dies, wie die Struktur einer asp.net Anwendung, die geschrieben wurde von jemandem mit einem starken WinForms hintergrund?

BEARBEITEN

dachte, ich sollte hinzufügen, dass ich bin nicht in Frage die Verwendung von user controls (oder auch der Betrag), sondern nur, ob dass so viele auf eine Seite, die alle vollbringen (jeder Benutzer-Steuerelement mit der Datenbank zum Beispiel) wird in der Regel dazu führen, dass performance-Probleme...Zum Beispiel, wenn nur ein Benutzer die Kontrolle postsback, etwas zu tun, was über die Verarbeitung all der anderen, einige sind sichtbar, und einige sind't...@David McEwing erwähnt, dass er 40 optimierte Benutzer-Steuerelemente ausführen usw. aber wenn der Entwickler war WinForms-basierten oder "nicht vertraut mit asp.net", dann wie werden Sie sicherstellen, dass jeder ist optimiert...

EDIT2

Nachdem Sie eine sql-Anweisung trace, die gleichen Aufrufe für Daten ausgeführt werden 5-6 mal pro Seite rufen Sie für jede Veranstaltung, wie die verschiedenen Benutzer-Steuerelemente erfordern Daten, die nicht gespeichert wird, Häufig z.B. jedes Steuerelement in der Registerkarte (oben erwähnt) macht das gleiche Aufruf zum füllen eines Objekts aus der Datenbank...ich bin wirklich nicht hier, um anzuklagen, user-controls für das problem (soll ich löschen der Frage?) so klar das problem ist NICHT user-controls aber mit der Verwendung von in diesem besonderen Fall...das glaube ich ist übertrieben!

  • Die Leistung ist nicht relevant, da effektiv es ist einfach so, dass die Steuerelemente alle auf der Seite. Das eigentliche problem ist nur, wie viel Arbeit, die Seite nicht; das ist die einzige Gegenleistung. Nicht, wenn es in ein Benutzersteuerelement oder nicht.
  • Wenn es nichts ist, was man tun kann, über die Bedienelemente, vielleicht können Sie konvertieren einige von Ihnen in custom web controls? Nicht wirklich sicher, ob Vorkompilierung wird helfen, ist aber nur ein Gedanke.
InformationsquelleAutor davidsleeps | 2009-08-17
Schreibe einen Kommentar