Ist MVC der beste Weg, um asp.net-Anwendungen zu programmieren?

8

update: Ich weiß, dass es keinen besten Weg gibt, alles zu tun. Tut mir leid, dass ich das nicht gleich gesagt habe. Wenn Sie im Kontext der Datenzugriffs-Tutorials das Projekt tun sollten, das er in diesem Tutorial gemacht hat, würden Sie tun, was er getan hat oder verwenden würde MVC verwenden, wenn Sie einen von ihnen wählen müssten?

Update: Ist MVC die geeignetere Methode zum Programmieren von ASP.net-Anwendungen anstelle der hier gefundenen Tutorials:

Ссылка

Original:

Ich frage, weil ich zuerst über MVC mit Java-Anwendungen gelernt habe, dann Dinge wie RoR und Django. Diese anderen Projekte und Unternehmen sprachen so, als wäre MVC schon sehr lange da gewesen und von dem, was ich herausgefunden hatte. Dann begann Microsoft, MVC in das .NET-Framework zu integrieren.

Ich frage, weil ich nicht weiß, wie man die Dinge sehr gut gestaltet und dachte, dass es mir gut geht, zu emulieren, was auf der asp.net-Seite mit Scott Mitchells Tutorial ist. Ich dachte, dass das Erstellen von abstrakten Schichten in einer BLL der Weg war, bis ich von MVC und jetzt MVC von asp.net erfuhr.

Ich weiß ehrlich nicht, was der "richtige" Weg ist, Dinge zu tun. Ich erschaffe einfach das, was ich brauche, aber ich kann nicht anders, als wenn ich etwas verpasse.

Ist MVC der richtige Weg, Dinge in großen Projekten zu tun, insbesondere MVC und ASP.NET, könnte aber genauso gut PHP und eines seiner MVC-Frameworks bedeuten.

Ich würde mich gerne auf eine normale Art und Weise, Dinge zu tun, festlegen ... zumindest jetzt.

Und warum hat Microsoft aus Neugier jetzt erst mit MVC angefangen?

UPDATE: Ist MVC besser als das aktuelle Tutorial auf asp.net?

Ich beziehe mich auf die Scott Mitchell Tutorials, wo er den BLL für die Abstraktion erstellt. Oder ist das auch eine linq Frage? Ich hätte sagen sollen, dass ich die Notwendigkeit verstehe, Logik und Präsentation getrennt zu halten, aber nicht sicher bin, wie das am besten funktioniert. Ich benutzte die asp.net Tutorials. Es hat gut funktioniert. Dann fand ich heraus, dass der Rest der Welt, wie ich es gesehen habe, MVC verwendet hat. Dann begann Microsoft, MVC zu entwickeln, also scheint mir die andere Methode veraltet und der falsche Weg, Dinge zu tun.

    
johnny 08.01.2009, 18:24
quelle

8 Antworten

18

Nein, das ist nicht der einzige Weg, Dinge zu tun.

MVC ist nur ein Designmuster. Das Ziel aller Entwurfsmuster ist Einfachheit. Also, solange es dein Design einfacher macht, geh mit ihm. Wenn es für Ihre spezifische Anwendung komplexer wird, versuchen Sie es mit einem anderen Ansatz.

Leider denken einige Leute, wenn sie ein Muster sehen, sollten sie es benutzen. Es ist einfach nicht wahr. Entwurfsmuster machen Ihre Anwendung nicht von Natur aus besser. Sie sind kein Ende. Sie sind ein Mittel zum Zweck (was Einfachheit ist). Du solltest sie also nur verwenden, wenn sie es wert sind.

Meiner Meinung nach ist das Überarbeiten von Dingen ohne guten Grund schlimmer als das Schreiben von Code ohne spezielles Design.

BEARBEITEN: In Bezug auf ASP.NET MVC: Ich habe eine negative persönliche Voreingenommenheit gegenüber ASP.NET-Webformularen. Vor MVC habe ich die meisten dynamischen Aspekte fortgeschrittener Projekte erledigt, indem ich benutzerdefinierte Handler geschrieben habe, um eine feinkörnige Kontrolle über HTML zu haben. Web Forms machen Web-Entwicklung sehr einfach, aber sie haben besonders ein paar Dinge, die gut sind, aber manchmal problematisch sind. Der erste ist ViewState und der zweite ist komplex WebControl Architektur. Versteh mich nicht falsch. Das sind Zeichen der Brillanz von ASP.NET. Ich habe keine einzige Plattform für Web-Entwicklung so einfach wie ASP.NET Web Forms gesehen und dies nur wegen der großen WebControl Unterstützung, die ViewState erfordert. In einigen Projekten möchten Sie jedoch eine präzise Kontrolle über gerenderten HTML-Code haben (insbesondere wenn Sie eine clientseitige Logik haben). Sie möchten auch serverseitigen Code in großen Projekten pflegbar machen. In diesen Bereichen glänzt ASP.NET MVC wirklich. Aber ich denke ASP.NET Web Forms wird eine großartige Technologie bleiben, wo es anwendbarer ist. Wie gesagt, bezüglich Design-Mustern im Allgemeinen sollten Sie Ihr Design sorgfältig bewerten, um zu sehen, welches besser zu Ihren Bedürfnissen passt.

Genauer gesagt benötigt MVC für den Datenzugriff normalerweise mehr Code als Gegenparteien von Web Forms. Für die Darstellung tabellarischer Daten (d. H. Wo GridView anwendbar ist) halte ich ASP.NET Web Forms für den einfacheren Weg, um Dinge zu erreichen. Die meisten datengesteuerten Webanwendungen manipulieren jedoch nicht nur eine Tabelle direkt in einer Datenbank. Sie haben ein komplexes Layout. StackOverflow ist ein gutes Beispiel dafür. Es ist sicherlich datengesteuert, aber ASP.NET MVC passt besser dazu.

    
Mehrdad Afshari 08.01.2009, 18:31
quelle
8

Es gibt keinen "richtigen" Weg, Dinge zu tun, ohne zu wissen, was "Dinge" sind. MVC ist ein Design-Muster , das ein spezifisches Problem löst - Trennung von Präsentations- und Domänenlogik. Jedes Entwurfsmuster ist eine allgemein akzeptierte "gute" Lösung für ein spezifisches Problem.

Diese Lösungen, kombiniert mit Wissen und Erfahrung, sind Bausteine ​​für ein gutes Design. Der "richtige" Weg, Dinge zu tun, besteht darin, Ihre Problemdomäne zu studieren, nach möglichen Lösungen zu suchen und die Lösungen anzuwenden, die am besten zur Lösung dieses Problems geeignet sind. Fehler machen ist auch ein Teil des Prozesses, also hab keine Angst davor, zu experimentieren und dann mit Strenge umzugestalten, bis du erreiche die Lösung, die dir am besten dient.

    
Eran Galperin 08.01.2009 18:34
quelle
3

MVC ist der schlechteste Weg, um Anwendungen zu entwickeln, mit Ausnahme aller anderen Möglichkeiten, die ausprobiert wurden. : -)

Spaß beiseite, MVC ist ein Anwendungsdesign, das uns ermutigt, keinen Spaghetti-Code zu schreiben. Es ist eine Richtlinie, die uns daran erinnert, den Geschäftscode vom Präsentationscode zu trennen. Dies ist sehr hilfreich, da die Anwendung komplexer wird.

Es gibt andere Varianten, die denselben Vorteil erzielen, aber nicht genau dieselben wie MVC. Präsentation-Abstraktion-Kontrolle (PAC) ist ein Beispiel.

Warum Microsoft so spät MVC annimmt, bin ich nicht überrascht, dass sie sind. Sie sind (zumindest in den letzten Jahren) ziemlich bekannt dafür, dass sie eher konservativ als innovativ sind. Sie ziehen es vor, andere kleinere Unternehmen in einem unbewiesenen Markt Risiken einzugehen, dann lernen sie aus den Fehlern, stellen eine überentwickelte Konkurrenzlösung her und dominieren durch Marketing.

Beispiel: Microsoft Internet Explorer wurde als Nachzügler für den Browsermarkt angesehen. Netscape ist sehr populär geworden und hat den Weg für die Bereitstellung einer Plattform für HTML-Benutzer geebnet. Sobald die Menge an HTML-Inhalten im Internet auf einem brauchbaren Niveau war, spuckte Microsoft ihr onomatopoetisches "IE" -Produkt auf und eroberte schnell einen überwältigenden Marktanteil.

    
Bill Karwin 08.01.2009 18:40
quelle
1

MVC ist nur eine Möglichkeit, Dinge zu tun. Ich mag es, weil es hilft, die Erweiterbarkeit zu fördern, und es ist so strukturiert, dass es das Testen und die Wiederverwendung von Code ermöglicht. Es gibt keine Wunderwaffe, einen wahren Weg, um alles zu tun, aber ich benutze es ziemlich oft.

Im Hinblick auf Microsoft würde ich sagen, dass sie das Muster als Alternative zur WebForms-Entwicklung aus den oben genannten Gründen übernommen haben. Ich würde empfehlen, Rob Conerys MVC Storefront anzuschauen und mit den Beispielen herumzuspielen um zu sehen, wie es für dich funktioniert.

    
Ryan Lanciaux 08.01.2009 18:31
quelle
1

Es gibt keine "beste" Möglichkeit, Dinge zu codieren. Es hängt von der jeweiligen Anwendung ab; Manchmal ist MVC die richtige Wahl und manchmal nicht. Ein guter Entwickler ist in der Lage, seine / ihre Optionen abzuwägen und diejenige zu wählen, die für eine Aufgabe am besten geeignet ist, anstatt nur mit der Methode du jour

zu gehen     
Wayne Molina 08.01.2009 18:42
quelle
1

Wenn MVC den primären technischen Imperativ für die Verwaltung der Komplexität in Ihrer Anwendung löst, ist es vielleicht eine gute Lösung, aber es ist keineswegs die einzige Lösung.

    
jamesmillerio 08.01.2009 19:23
quelle
1

MVC ist eines von vielen Entwurfsmustern. Ob es technisch am besten oder am einfachsten ist oder für welche Art von Projekten es geeignet ist, sind alle vertretbar (siehe andere SO-Threads). Auf jeden Fall würden wenige gegen den herrschenden Konsens argumentieren, dass es in den meisten Fällen "gut genug" sei.

Aber es hat den unbestreitbaren Vorteil, dass viele Leute es auf vielen verschiedenen Plattformen verwenden.

Wenn Sie also eine Methode verwenden möchten, die wahrscheinlich eine Weile sein wird; oder Sie möchten nicht auf einen Anbieter für Unterstützung und Erweiterung und Verfeinerung angewiesen sein; oder du arbeitest in einer Gruppe, die wachsen möchte, indem du Leute mit verschiedenen Hintergründen anstellst, die schnell eine gemeinsame Methodik entwickeln; Oder Sie möchten Ihre Möglichkeiten, sich weiterzuentwickeln, wenn es nötig ist, maximieren. Dann ist MVC eine der besten Möglichkeiten, diese Ziele zu unterstützen.

    
dkretz 08.01.2009 19:33
quelle
1

MVC ist "Besser" oder "Schlechter" Muster ist relativ zum Projekt.

    
Demian Garcia 08.01.2009 19:43
quelle