2008-12-10 9 views
8

Ich versuche, ASP.NET MVC Studenten (Undergrads) zu lehren, 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, Quizzes, Prüfungen und Wrestles).ASP.NET MVC - Wie es zu erklären?

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

Wenn ich MVC anstelle von ASP würde kommt ??

Ich habe keine wirkliche Erfahrung mit ASP MVC und ich kann nicht jede Art von klarer Antwort im Web 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 ihr Markup im Vergleich zu MVC zu vereinfachen scheinen.

Ich versuche, einen ehrlichen Dreh zu geben, und jedes Feedback würde sehr geschätzt werden! TIA

+1

Diese Frage erscheint Wegthema zu sein, weil es nicht im Rahmen der Diskussion ist, wie in der Hilfe beschrieben. – Will

Antwort

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. Testen Sie Ihre Ansichten
  2. Mock Http-Objekte.
  3. Viewstate Reduktion (durch Design) (
  4. Ersatz leichte Viewengine für aspx.
  5. gründliche Trennung von Bedenken.
  6. Saubere HTML
  7. usw. etc ..

Jetzt asp erklären .net mvc im obigen Kontext. Es kann mehr sein. Atleast denke ich, dass sie den Punkt bekommen werden, dachte, dass das nicht auf alle Projekte anwendbar sein kann, aber was ist der Schaden, wenn wir nur davon gewinnen.

4

Für mich ist der MVC-Ansatz ein sehr unterschiedliches Paradigma von der 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 gibt. 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 sind die Gestaltung, die eine Menge von Javascript, die Kontrolle, die Sie über den Ausgang gewinnen in der MVC-Framework kann sehr hilfreich sein, weil Sie so viel nicht, wie IDs und anderen Markup kümmern müssen kann gerendert werden, wie Sie es normalerweise im ASP Forms-Framework tun.

Das MVC-Framework ist wirklich eine völlig andere Art, Websites zu entwerfen. 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.

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 Server-Seite eine einfache Möglichkeit bietet, das Formular als Ganzes zu betrachten, 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.

4

Ich dachte immer das ASP.NET MVC Framework war ein schlechter Name, da es ein Design Pattern ist. sein

sollte die Frage:

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

Die Developer Experience

a) ASP.NET Web Forms zu abstrahieren von dem Entwickler der staatenlos Natur von HTTP versucht. Der Status von GUI Elements und/oder Daten wird in Viewstate/Session gespeichert. Jede Form macht ein Postback für sich selbst 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. Grundsätzlich ähnlich wie Sie VB/WinForms entwickeln würden

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

d) Entwickeln mit WebForms Sie ändern im Allgemeinen die 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

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

Hinweis: Ich habe dies auf die Tatsache gestützt, dass ASP.NET MVC wird höchstwahrscheinlich durch einfache HTML angetrieben + Ajax

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

1) Wenn ich ein reines statusloses Frontend mit Ajax, Jquery, EXT JS-Typ-Bibliotheken ASP.NET MVC würde die bessere Passform scheinen. 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 wurde, ein Web 2 zu erstellen.0 (hasse diesen Begriff), um eine Benutzererfahrung der nächsten Generation zu haben, würde ich wahrscheinlich mit ASP.NET MVC gehen und JQuery/ASP.NET Ajax Client-Steuerelemente verwenden.

4) Viele Unternehmen haben einen festen Satz von WebForm-Steuerelementen zur Verwendung erstellt. Es wäre kostspielig, sie alle in einer reinen zustandslosen Ajaxy-Art wieder aufzubauen :)

1

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

Wenn Sie eine HTML-Tabelle von Daten mögen, setzen Sie ein „Gridview“ Steuerelement auf einer Seite - was Sie mit ist „gridview“ html enden, und möglicherweise nicht genau, was nach waren.

Der Schuh passt 90% der Zeit, aber eine Menge Zeit, vor allem, wenn Dinge über eine grundlegende Website hinausgehen, dass die Steuerelemente nicht passen. Die Verwendung von Webforms bedeutet häufig, 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 erweitern oder schreiben Sie Ihr eigenes Gitter-Steuerelement. Aber würdest du nicht lieber das HTML schreiben, das du willst?

Es ist meine Erfahrung, dass die Projekte komplexer werden, und UI's werden immer komplizierter, dass Sie Webforms mehr und mehr bekämpfen.

Verwandte Themen