Frage

Ich baue eine ASP .NET 2.0 (C #) basierte Web-Anwendung, die in erster Linie für den inner net Gebrauch bestimmt ist, das heißt innerhalb einer Organisation Local Area Network verwendet werden.

Im Hinblick auf die Benutzeroberfläche gibt es zwei Ansätze, die ich brauche zur Auswahl.

  1. einen 1 Seite Web-App bauen, mit vielen ASP .NET AJAX 1.0-Steuerelemente (modal Popups) kategorisierten Inhalte zu zeigen, die sonst in eine separate ASPX-Seite gegangen wären.

  2. Mit dem traditionellen Ansatz und baut mehrere Seiten.

Die 1 Seite UI sieht und fühlt sich sehr cool. Ich habe jedoch Zweifel hinsichtlich seiner Skalierbarkeit.

Vereinbart, dass die Anwendung für die Verwendung über ein LAN gedacht ist, aber da es sich um eine Web-App ist, könnte es möglicherweise aus über das Internet verwendet werden, wenn der Kunde wollte.

zum Aufgrund 1 Seite UI gibt es bereits rund 2600 Zeilen Code in der einzigen ASPX-Seite und weiteren 1600 Zeilen Code in dem Code-behind (aspx.cs)

Dies wird wachsen - bis höchstens - 10.000 Zeilen Code (10.000 in aspx und 10.000 in aspx.cs). Also muß ich wissen - wie viel ist zu viel für eine ASP .NET basierte Seite - ist 2600 + 1600 Zeilen Code in Ordnung für Intranet und Internet-Zugang? Wie etwa 10.000 Zeilen Code? Was ist der Flaschenhals? Ist das Einzelseiten-Ansatz in Ordnung oder muss ich mehrseitigen Ansatz?

zurück zum traditionellen fallen
War es hilfreich?

Lösung

Bevor ich sage, was ich zu sagen beabsichtigen würde ich feststellen, dass ich nicht glaube, dies ist eine gute Idee. Jede Klasse (ASP.NET) oder nicht das ist 5k oder 10k Zeilen lang Bedürfnisse umgestaltet werden. Es gibt viele Kommentare hier, die besagt, Sie daran, dass Ihre Download-Zeiten zu lang sein wird. Nur weil Sie eine ASPX-Datei, die 5k Zeilen Code eingebettet oder 5k in einem Code-Behind-Datei (oder beides) hat dies bedeutet nicht, dass Ihre Download-Zeiten von Bedeutung sein werden, nur weil dieser. Diese Codezeilen werden auf dem Server kompiliert und ausgeführt, sie werden nicht an den Kunden weitergegeben. So gibt es keine direkte Beziehung zwischen Anzahl der Codezeilen Größe zum Download bereit.

Sayed Ibrahim Hashimi

My Book: Innerhalb der Microsoft Build Engine: Mit MSBuild und Team Foundation Build

Andere Tipps

Unabhängig von der erhöhten Downloadzeit für eine unglaublich aufgebläht einzelne Seite so, wäre es ein absoluter Alptraum zu halten sein. Ich stimme mit Brad, der einzigen Seite Ansatz ist nicht richtig. Und ich kann nicht von irgendeiner Weise denke 10k + Linien in einem einzigen Code-Behind zu rechtfertigen.

Wenn Sie alle Funktionen in einer einzigen Web-Seite haben müssen, schlage ich vor, den Code in separate ascx Kontrollen zu bewegen und all ascx die in einer aspx Kombination

Sie shoud denken immer über die Menschen, die versuchen, Ihren Code uderstand Ihre App, nachdem Sie zu ändern. Auf jeden Fall denke ich, eine Seite - das ist auf jeden Fall nicht akzeptabel ist. Es gibt keine keinen „traditionellen mehrseitigen Ansatz“. Wenn Ihre Anwendung verschiedene Aktionen enthält, sollte es „multiple-Seite“ sein

Nicht in Ordnung, geteilt Dinge in verschiedene Dateien durch Funktionalität oder Bereich aufgerufen.

Dies ist, wo Bedienelemente in sehr nützlich sind. Wenn diese Seite hat dieses Geschäftslogik in einem BLL. Das Gleiche gilt für DAL.

Nachdem Sie alles oben mit DAL, BLL und Benutzern geteilt haben steuert alles viel besser verwaltbar sein sollte.

Auf den ersten Blick klingt es wie ein Horror Lösung für mich (Ich werde Ihre DAO Wette in der Ansicht eingebettet), aber es ist unmöglich zu sagen, ohne den eigentlichen Code zu überprüfen.

Und atleast hatte man das Gefühl eine andere Meinung zu suchen, und andere Optionen ... Ihre Bedenken in Bezug auf Skalierbarkeit sind gültig.

Denken Sie sorgfältig über Ihre Anwendung Schichtung approriately ... Wie würden Sie Ihre monolithische Lösung auf eine „richtig geschichtet“ Lösung stapeln sich in Bezug auch eine WML Ansicht unterstützen?

Wie viel, das zu viel ist unmöglich zu beantworten. Es geht nicht nur um die Menge, die Qualität des Codes als auch ankommt. Das einzige, was mit Sicherheit gesagt werden kann, ist, dass, wenn Sie große Mengen von Code in eine einzelne Seite setzen, werden Sie Fragen Sie den Code beibehalten haben. Wenn Sie mehr als ein Entwickler arbeitet an der Anwendung sind, werden Sie zum Beispiel müssen Änderungen in dem Quellkontrollsystem verschmelzen sehr häufig, statt einfaches Updates von separaten Dateien ausführen kann.

Auch wenn Sie die Anwendung als eine einzelne Seite implementieren würde ich Sie ermutigen getrennte Verhaltensweisen auf den Code hinter in getrennte Klassen zu kapseln, die ein verwendet erstellt und werden von der Seite benötigt. Aber ich persönlich würde die Anwendung so gestalten, dass getrenntes Verhalten in getrennte Seiten ging auch.

Ich bin überrascht, niemand erwähnt Viewstate. Ich denke, wenn man die Größe des Viewstate (mit ascx Kontrollen und sie dynamisch geladen) minimieren, dann eine gut gestaltete „einer Seite Lösung“ ist in Ordnung.

10k Code auf einer einzigen Seite es zu viel (es könnte gut laufen), aber können Sie diesen Code halten ?? ich sicher bin nicht jemand kann:)

Ihre Zahlen sind WAY FAR von "OK". In der Tat sind sie bei Ihnen sein katastrophal ehrlich ...

Starten Sie durch so viel wie möglich von Ihren verschiedenen Konzepten in den Benutzersteuerelemente zu stopfen. Dann erstellen Sie eine Stateful-Lösung, um es möglich zu machen, um dynamisch Benutzersteuerelemente in Bereiche Ihrer Seite zu laden.

Ich habe einige Seiten mit 2K-Linien auf dem ASPX und 10.000+ in der Code-behind-Datei. Ich habe viele Funktion, die nirgendwo sonst auf der Website verwendet werden und sich auf einige Ansichtszustand info. In meinem Kopf, und diese Situation, ich denke, das ein Performace-Boost ist, anstatt die Server fragen Funktionen suchen auf einer anderen Seite usw. Manchmal denke ich, man muss nur das tun, was Sie tun müssen, und es ist, was es ist. Versuchen Sie einfach, Ihren Code so effizient wie möglich zu machen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top