2009-04-30 3 views
1

Ich habe versucht, RoR oder ASP.NET MVC zu verwenden, aber bei meinem ersten Eindruck scheint mir, dass MVC eine drastische Möglichkeit ist, das Programmierparadigma zu ändern. Ist das nur mein Widerstand gegen Veränderungen oder ist es wirklich seltsam? Manchmal fühle ich mich wirklich verloren! Irgendwelche Vorschläge oder ich muss einfach zurück und programmieren auf die alte Art und Weise?Ist das MVC (Model View Controller) -Paradigma ein besserer Weg zur Entwicklung oder nur ein neuer komplexer?

Antwort

2

Was ist Ihre Grundlage für einen Vergleich? Wenn Sie an Perl/CGI gewöhnt sind, dann ist es vielleicht ein bisschen komplexer!

In Webausdrücken neigt MVC (oder Model-Template-View, wie von Django bevorzugt, vom ursprünglichen Smalltalk MVC zu trennen) dazu, eine bessere Trennung von Bedenken in Ihrer Anwendung zu ermöglichen. In meiner (und vielen anderen) Erfahrungen führt dies zu erweiterbarem, gut getestetem Code, der leichter zu pflegen ist.

Einige Vorschläge für die Zukunft. Es ist schwer, spezifische Empfehlungen zu geben, ohne etwas mehr über deinen Hintergrund zu wissen, und das Lernen kann so eine persönliche Sache sein:

  • RoR - Sam Ruby hat ein neues Buch herausgebracht. Es gibt verschiedene Screen-Casts.
  • Django - Ich würde das auch empfehlen, da dies die beiden Webframeworks sind, die die geringste Reibung von denen haben, die ich benutzt habe.
  • Entschuldigung, ich bin seit ein paar Jahren von der MS-Plattform entfernt, daher kann ich keine Beratung zu ASP.NET anbieten.

    2

    MVC ist nicht besonders neu. Es stammt aus dem Jahr 1979 (reference), also ist es alt genug zu trinken.

    Im Allgemeinen, MVC Kräfte eine Form der Kapselung auf Sie; Das bedeutet, dass Ihre Ansicht weitgehend unabhängig von Ihrem Modell sein muss. Sobald Sie sich daran gewöhnt haben, werden Sie es nützlich finden; Das heißt, für Ihre individuellen Bedürfnisse könnten andere Paradigmen angemessener sein. MVC ist nicht das A und O; aber es ist ein nützlicher Weg, um einige Probleme zu betrachten.

    0

    MVC ist weder neu noch besonders komplex. MVC ist ein Standardparadigma, das es schon lange gibt. Ich erinnere mich, dass es eines der hervorgehobenen Muster in meinen Software Engineering-Klassen vor ungefähr 10 Jahren war. MVC bietet, sobald Sie es verstanden haben, eine sehr saubere, testbare Implementierung für Ihr Projekt. Es ist sicherlich anders als WebForms - und zu wissen, dass WebForms wirklich ein Hindernis beim Lernen von ASP.NET MVC sein kann - aber ich habe nicht vor zurückzugehen. Ich erwarte nur, dass ASP.NET MVC besser und besser wird, da wir die gleiche Art von Steuerelementen sehen, die für WebForms erstellt wurden.

    0

    Es fühlt sich nur drastisch an, weil es neu ist. Es ist eigentlich nicht so schlimm.

    Ein Blick auf eine reale Anwendung kann helfen.

    Auschecken http://www.nerddinner.com/ für ein anständiges Beispiel, sowie ein freies Kapitel in der Professional ASP.NET MVC 1.0 Buch, das den Code abdeckt.

    2

    Veränderung ist hart, für uns alle. In den DOS Tagen haben wir das MTF Menu-Table-Form Muster benutzt.

    MVC gibt es schon lange, und es gibt einen Geschmack für alle wichtigen Sprachen, die in der Internetprogrammierung verwendet werden.

    Sobald Sie MVC für eine Weile verwenden, werden Sie wahrscheinlich nicht zurückgehen wollen. Es bietet Code-Trennung und Wiederverwendung. Ich habe RoR, Django und ASP benutzt.NET MVC und das MVC-Muster haben meine Entwicklung gemacht.

    Ich würde Sie ermutigen, dran zu bleiben! Kaufe ein Buch oder finde einen Mentor.

    0

    Ein stärker faktorisiertes/geschichtetes Design ist immer schwieriger, den Kopf zuerst zu wickeln - die Auszahlung kommt nur einmal, wenn das passiert. Der Vorteil ist, dass Sie jetzt klar definierte Orte haben, wo Sie was hinstellen können; Während es zunächst lästig ist, sich an eine vorherbestimmte Trennung von Bedenken zu halten, scheint die Vorhersagbarkeit der Codestruktur es später viel einfacher zu halten.

    2

    Nun, es ist sicherlich beliebt. Wenn Sie RoR tun, kämpfen Sie nicht gegen das Paradigma, gehen Sie damit, das ist der ganze Sinn von RoR.

    Wenn Sie in der Lage sind, Ihr Paradigma zu definieren, ist die Tatsache der Fall, dass MVC dazu neigt, nur MV zu sein. Ein Controller nach einigen Befürwortern des Musters ist eher für mehrere Ansichten gedacht, was in einem gegebenen Projekt fast immer nicht der Fall ist (obwohl die Daten letztendlich in einem anderen Kontext innerhalb des Unternehmens sehr unterschiedlich betrachtet werden können). . Abhängig von der GUI kann jedoch ein separater Controller die Testbarkeit des Codes unterstützen (wenn der Controller als die zu testende Klasse fungiert und die GUI-Komponente die zu testenden Methoden nur so minimal wie möglich trifft).

    MVC entstand mit der SmallTalk-Crowd, die in jüngerer Zeit in ein Morphic-Muster gelangte (wo das Objekt sich über eine innere Klasse anzeigt, die die relevanten GUI-Komponenten unterklassifiziert). Das ist kein schwieriger Weg, um HTML-Dateien sicher zu machen, da der HTML-Code nicht effektiv an Designer übergeben werden kann.

    Persönlich, wenn ich wirklich von Grund auf neu bin, bevorzuge ich ein Präsentationsmuster (ich habe es so genannt, aber ich kann die Referenz jetzt nicht finden), wo die Ansicht und Datenbindung in eine Präsentationsklasse gelegt wird. Die Stärke des Musters ergibt sich, wenn die Darstellung des gesamten Bildschirms aus verschiedenen Darstellungen von Teilen der Daten besteht. In einfach langweiligen Business-Apps (die Art, die ich schreibe) werden Daten (zB eine Adresse) auf vielen Bildschirmen angezeigt, so dass es hilft, die GUI-Präsentationskomponenten aufzuteilen und wiederzuverwenden.

    Aber in diesen Tagen müssen Sie wirklich sorgfältig überlegen, ob Sie es von Grund auf neu machen müssen, zumindest in guten alten langweiligen Datenanzeige- und Manipulationsanwendungen. Es gibt eine Menge da draußen, und wenn Sie ein Werkzeug verwenden, sollten Sie mit seinem Muster gehen. Das Werkzeug zu bekämpfen ist kontraproduktiv.

    Verwandte Themen