ASP.NET MVC - Wie erklärt man es? [geschlossen]

8

Ich versuche, ASP.NET MVC Studenten (Undergrads) beizubringen, die ASP.NET für die letzten 8 Wochen studiert haben (Ich weiß, dass das nicht wie viel Zeit klingt, aber die Klasse ist 4 Stunden pro Tag, 5 Tage pro Woche mit Labs, Quiz, Prüfungen und Wrestles).

Ich habe die Frage noch nicht bekommen ... aber ich weiß, dass es kommt ...

  

Wann würde ich MVC anstelle von ASP verwenden?

Ich habe keine wirklichen Erfahrungen mit ASP MVC und kann keine eindeutige Antwort im Internet finden. Argumente wie "... das Web ist zustandslos und ASP MVC ist eine engere Übereinstimmung etc etc" bedeuten ihnen nicht viel. Sie fangen an, zu bemerken, dass ASP viele Kontrollen hat, die scheinen, ihre Markierung im Vergleich zu MVC zu vereinfachen.

Ich versuche, einen ehrlichen Dreh zu geben, und jede Rückmeldung würde sehr geschätzt werden! TIA

    
RAL 10.12.2008, 04:30
quelle

6 Antworten

6

Staatenlosigkeit ist ein gutes Wort zu erklären, wie bereits von den Mitgliedern hervorgehoben. Abgesehen davon stellen Sie den Studenten die folgenden Fragen?

Wenn sie mit ASP.NET (kein MVC) Folgendes tun müssen, wie einfach wird es sein?

  1. Teste deine Ansichten
  2. Mock HTTP-Objekte.
  3. Reduktion des Viewstatus (nach Design) (
  4. Ersetze die Lightweight Viewengine für .aspx.
  5. Sorgfältige Trennung der Bedenken.
  6. Sauberes HTML
  7. usw. usw. ..

Erklären Sie asp.net mvc im obigen Kontext. Es könnte mehr sein. Ich denke, dass sie den Punkt verstehen werden, dachte, dass das nicht auf jedes Projekt anwendbar ist, aber was ist der Schaden, wenn wir nur davon profitieren?

    
rajesh pillai 10.12.2008, 05:45
quelle
4

Für mich ist der MVC-Ansatz ein ganz anderes Paradigma als die ASP Forms API. Ich denke, die Idee, "staatenlos" zu sein, ist eine gute Möglichkeit, ein sehr breites Thema in einem Wort zu erklären.

Einer der wichtigsten Vorteile, die ich gesehen habe, ist, dass das MVC-Framework viel Kontrolle über das Design und die Ausgabe Ihrer Seite bietet. Für kleine Projekte mag dies nicht die beste Verwendung sein, aber für große Projekte skaliert es sehr gut, weil Sie verschiedene architektonische Entscheidungen treffen können, die (persönlich) ich für besser halte, wie die Art, wie das MVC-Framework die Logik trennt aus der Sicht.

Auch wenn Sie eine Website mit viel Javascript erstellen, kann die Kontrolle über die Ausgabe im MVC-Framework sehr hilfreich sein, da Sie sich nicht so viele Gedanken darüber machen müssen, wie IDs und andere Markups aussehen könnten gerendert werden, wie Sie es normalerweise im ASP-Forms-Framework tun.

Das MVC-Framework ist wirklich eine völlig andere Art, Websites zu gestalten. Ich persönlich denke, dass es für große Projekte vorteilhafter ist, aber ich begann auch mit Web-Sprachen, in denen MVC eine beliebte Design-Wahl war.

Das sind nur meine 2 Cent.

    
Dan Herbert 10.12.2008 04:39
quelle
4

Ich hielt das ASP.NET MVC Framework immer für einen schlechten Namen, da es ein Design Pattern ist.

Die Frage sollte lauten:

Wann würde ich ASP.NET MVC Framework über ASP.NET-Webformulare verwenden?

Die Entwicklererfahrung

a) ASP.NET Web Forms versucht, die statusfreie Natur von HTTP vom Entwickler wegzuspulen. Der Status von GUI Elements und / oder Daten wird in Viewstate / Session gespeichert. Jede Form führt ein Postback für sich selbst aus und imitiert im Grunde das Verhalten eines ereignisgesteuerten WinForm-Entwurfs.

b) HTML-GUI-Elemente werden durch Controls weiter abstrahiert, die wiederverwendet und von Drittanbietern gekauft werden können. Dies hilft Entwicklern, eine HTML-App zusammen zu kleben, ohne zu viel JavaScript und HTML / HTTP-Kenntnisse. Im Grunde ähnlich wie Sie VB / WinForms entwickeln würden

c) Sie können die MVC / MVP-Struktur in ASP.NET-Webformularen implementieren. Sehen Sie sich die Softwarefabrik Patterns and Practices an, um zu sehen, wie sie es gemacht haben.

d) Beim Entwickeln mit WebForms ändern Sie im Allgemeinen das HTML (View) basierend auf Benutzerfeedback auf dem Server. Die meisten Ereignisse (Benutzer klickt auf eine Schaltfläche, bearbeitet ein Feld) werden auf dem Server in einer fortlaufenden Postback-Schleife verarbeitet, die den sogenannten ASP.NET Page Lifecycle ausführt.

VS

Browsergesteuerte Ansicht (weiß nicht, was ich sonst noch nennen soll). Alle HTML-Änderungen, die auf Benutzereingaben basieren, werden im Browser gehandhabt. Sie werden das DOM mit Javascript manipulieren.

Hinweis: Ich basiere dies auf der Tatsache, dass ASP.NET MVC höchstwahrscheinlich von Basic HTML + Ajax

gesteuert wird

Wie würde ich persönlich zwischen ihnen wählen (nie MVC verwendet haben, nur lesen)

1) Wenn ich ein reines statusfreies Frontend mit Ajax-, Jquery-, EXT JS-Typ-Bibliotheken erstellen würde, würde ASP.NET MVC besser passen. Obwohl Sie dies in ASP.NET-Webforms erstellen könnten, scheint es sinnlos, da Sie das Postback-Modell und die Serversteuerelemente nicht nutzen.

2) Wenn ich gebeten würde, eine neue grundlegende Webanwendung zu erstellen, würde ich bei ASP.NET-Webforms bleiben, da ich bereits damit vertraut bin und die gesamte Seitenlebensdauer kenne.

3) Wenn ich gebeten würde, ein Web 2.0 (hasse diesen Begriff) zu erstellen, würde ich wahrscheinlich ASP.NET MVC verwenden und JQuery / ASP.NET Ajax-Clientsteuerelemente verwenden.

4) Viele Unternehmen haben eine Reihe fester WebForm-Steuerelemente zur Verwendung eingerichtet. Es wäre kostspielig, sie alle in einer reinen staatenlosen Ajaxy-Art wieder aufzubauen:)

    
Ben Dempsey 10.12.2008 06:29
quelle
1

Für jemanden mit Erfahrung (und Schmerzen) in Winforms - der größte Unterschied ist nicht mehr Viewstate. Der Status der Steuerelemente im Formular wird auf dem Client im Browser gespeichert und für jede Anforderung an den Server gesendet.

Wenn Sie Javascript verwenden, ist es einfacher, Änderungen auf der Seite des Browsers vorzunehmen, während die Serverseite eine einfache Möglichkeit hat, das Formular als Ganzes anzusehen, ohne die Steuerelemente neu erstellen zu müssen.

Neben all den netten Dingen, die MVC bietet - Trennung von Ansicht / Code, Testbarkeit - das war für mich der entscheidende Punkt, um zu MVC zu wechseln.

    
LeJeune 10.12.2008 05:06
quelle
1

Abgesehen von all den anderen ausgezeichneten Antworten bereits aufgeführt. Webforms ist eine Abstraktion weg von HTML.

Wenn Sie eine html-Tabelle mit Daten wünschen, legen Sie ein "gridview" -Steuerelement auf einer Seite - was Sie am Ende ist "gridview" html, und möglicherweise nicht genau , was Sie wollten .

Der Schuh passt 90% der Zeit, aber eine Menge Zeit, vor allem, wenn sich Dinge über eine einfache Seite hinaus bewegen, auf die die Steuerung nicht passt. Die Verwendung von Webforms bedeutet oft, dass Sie nicht die vollständige Kontrolle über die endgültige Ausgabe haben, die für den Browser gerendert wird.

Sie können natürlich Ihre eigenen Grid-Controls erweitern oder schreiben. Aber würdest du nicht lieber den HTML-Code schreiben, den du willst?

Es ist meine Erfahrung, dass die Projekte komplexer werden und die Benutzeroberfläche immer komplizierter wird, so dass Sie Webforms immer öfter bekämpfen.

    
ChadT 10.12.2008 06:59
quelle
1
Vaibhav 10.12.2008 07:17
quelle

Tags und Links