2009-02-11 15 views
10

Ich mache eine Wartung für eine klassische ASP-Anwendung für meinen Client, und während ich durch den ASP schaue, kommt mir die folgende Frage in den Sinn - wäre es einfacher, eine klassische ASP-Anwendung in ASP.NET MVC oder zu konvertieren ASP.NET-WebForms?Migration von klassischem ASP - Webforms oder ASP.NET MVC?

In vielerlei Hinsicht scheint es zumindest einfacher zu sein, den HTML-Code von ASP in MVC zu konvertieren, als HTML-Chunks in ASP.NET-Steuerelemente, Repeater, Datagrids usw. umzuwandeln Hinzufügen von Handhabung und Logik für ViewState, etc. könnte Arbeit hinzugefügt werden.

Ich glaube nicht, dass mein Client eine solche Aktualisierung anfordert, also ist dies nur theoretisch. Nehmen wir an, dass dieser ASP-Code sehr gut geschrieben ist (was natürlich nicht immer richtig ist), also ist die Frage wirklich, ob eine bestplatzierte ASP-Site besser zu MVC migriert als WebForms?

(Beachten Sie, dass ich sehr neu in ASP.NET MVC bin, damit ich hier etwas Entscheidendes vermisse).

Antwort

7

Es hängt viel davon ab, wie die klassische ASP App strukturiert ist.

Das Server-Tag mit HTML gemischt ist ähnlich wie asp.net MVC aber MVC ist nicht so chaotisch (oder nicht zu sein). Sie können den klassischen ASP-Präsentationscode möglicherweise einfacher in eine MVC-Ansicht verschieben als in ein Webformular. Auch klassische ASP-Apps wurden meist mit Blick auf die Staatenlosigkeit des Internets entwickelt. Es gibt wahrscheinlich nichts in Ihrem klassischen Asp, das postabacks oder Viewstate entspricht. Klassisches ASP verwendet auch normale HTML-Elemente im Gegensatz zu ASP.net-Webformular-Steuerelementen. In dieser Hinsicht entspricht MVC viel näher als Webforms.

Wenn Sie nicht wissen, asp.net Webforms oder asp.net MVC Ich würde sagen, MVC ist der Weg zu gehen.

Wenn Sie Webforms sehr gut kennen und nicht viel über MVC wissen, würde ich sagen, Webforms ist der Weg zu gehen.

Aber, wenn Ihr Kunde aus irgendeinem Grund eine Neuentwicklung der Website will, würde ich sagen, gehen Sie mit MVC. Es ist immer schön, wenn ein Kunde einen Teil seiner Erfahrungsentwicklung bezahlt, solange Sie liefern können.

Auf einem anderen Hinweis bin ich immer verblüfft, wenn ich auf einen Kunden stoße, der möchte, dass ich auf seiner klassischen ASP-Seite arbeite. In jedem einzelnen Fall ist die Website ein Durcheinander. Der schlimmste Teil ist, dass sie normalerweise mit riesigen Sicherheitslücken gefüllt sind.

2

Es gibt mehr zu ASP.NET-MVC als die offensichtlichen Ähnlichkeiten zwischen Ansichtscode und ASP-Inline-Code. Es gibt alle zu betrachtenden Modell- und Controller-Teile, die sich sehr von den meisten ASPs unterscheiden.

Das sagte ich würde sagen, dass MVC der beste Ort zum Starten wäre.

1

IMO WebForms versuchen, HTML für meinen Geschmack zu verstecken und können dazu führen, dass Ihr Projekt länger dauert, als Sie möchten, weil Sie eine Menge HTML in die Webforms-Steuerelemente konvertieren.

Auf der anderen Seite MVC können Sie einige dieser Logik wiederverwenden, während Ihre Anwendung viel wartbarer und mit dem entsprechenden Architekturmuster Ihre Anwendung kann viel schneller entwickelt und refaktoriert als jedes WebForms-Projekt.

Ich sage MVC den ganzen Weg!

4

Ich denke in vielen Fällen könnte es einfacher sein, zu MVC als Webforms zu konvertieren. Die meisten klassischen ASP-Apps weisen eine sehr geringe Trennung von Problemen auf, so dass die größte Aufgabe wahrscheinlich genau darin besteht, die Logik in Datenzugriff, Geschäftslogik, Geschäftsentitäten und UI-Komponenten aufzuteilen. Dabei könnte es einfacher sein, den Inline-ASP-Code in eine View, die Business-Logik in Controller und die Business-Entities in das Modell zu konvertieren.

4

Ich glaube nicht, dass einer einfacher zu konvertieren wäre als der andere.

Sie können ASP.NET fast das gleiche wie Sie ASP codieren, wenn Sie ein paar entscheidende Elemente in die Codebehind setzen möchten, die Sie in der aspx zugreifen könnten. Keine Datenbindung, keine Gitteransicht und kein Repeater. Der Ansichtsstatus ist da, um Ihnen zu helfen, ist leicht herauszufinden, es ist nicht notwendig, es zu verwenden, wenn Sie nicht möchten und kann in der web.config ausgeschaltet werden und mit einem Seitenattribut aktiviert werden. Web Forms haben auch einen AspCompat Modus, der Zugriff auf Request und Response-Objekte oder ASP ermöglicht, die Seite für Seite Umwandlung ermöglichen, falls gewünscht.

Wie für MVC.net ist die Methode zum Anzeigen des HTML ziemlich ähnlich. Das ist meiner Meinung nach, wo die Gemeinsamkeiten enden. Sie müssten immer noch alle Ihre Logik in das MVC-Modell trennen.

Kommen von ASP und gehen zu Web.Form und jetzt MVC.Net Ich kann Ihnen sagen, dass WebForms ein wenig nervig/frustrierend zu lernen waren, mit 90% der MS-Tutorials lernen Sie die schlimmsten Gewohnheiten IE (SQL-Verbindungen auf der Seite, ziehen Datensätze in Designer herum). Sobald man jedoch hinter sich hat, dass man vieles schneller machen kann als asp (Seitenumbruch oder einfach eine Datentabelle mit Editieren), habe ich jedoch noch nie ein großes Webforms-Projekt mit einem n-Tier gesehen Design, von dem ich dachte, dass es einfach zu folgen, zu implementieren und zu verwenden war.

MVC.NET ist wie ein Geschenk des Himmels. Es zwingt Muster und Praktiken in den Hals, es hat strenge Regeln, die von den meisten eingehalten werden. Es ermöglicht eine einfache Codeabdeckung und Trennung von Problemen. Nachdem ich jahrelang mit Webformularen frustriert war, habe ich das Gefühl, dass ich nicht mehr zusammenhacke, wenn ich versuche, etwas zu tun, das ich nicht von der Symbolleiste ziehen kann.

Ich persönlich würde versuchen, Webforms, so dass Sie wissen, wie viel besser MVC ist, wenn Sie es verwenden.

1

Wie auch immer, es ist immer am besten, bei Null anzufangen und nur die Logik zu implementieren.

Ich begann ASP vor langer Zeit (vor mehr als 12 Jahren) und nur im Jahr 2006 zog ich nach ASP.NET 2.0, nicht einmal heute weiß ich alles, aber ich weiß ziemlich viel, was ich jeden Tag bei der Arbeit tun.

Meiner Meinung nach, und im Rückblick auf mein Wissen über ASP würde ich zu Web Forms anstelle von MVC gehen, erstens ist es eine Sprache, die es auf dem "Markt" einige yeras jetzt und sehr auf der ganzen Welt verwendet, während MVC noch in der Beta ist, also nicht für die Produktionsumgebung geeignet (sagt Microsoft - auch wenn diese Seite in MVC geschrieben ist).

Ich neige dazu, Verwirrung mit MVC-Diagramm immer noch zu machen, und es gibt mehr Tricks als ich lernen will, wenn ich eine schnelle Änderung eines ASP-Projekts machen muss.

1

Kommt drauf an. Der ASP.NET MVC ist keine Wunderwaffe und macht in vielerlei Hinsicht einige Rückschritte hinsichtlich der Entwicklerproduktivität.

Wenn Sie ein knappes Budget haben und dies schnell erledigen müssen, dann ist ASP.Net der richtige Weg, da es zahlreiche Steuerelemente wie Raster, Paging, Validierung usw. bietet, die Sie sofort verwenden können . Die Verwendung dieser Steuerelemente wird zweifellos eine Menge Entwicklungszeit sparen.Alle diese Steuerelemente, die in ASP.NET derzeit als Fußgänger gelten, müssen bei der Verwendung des ASP.NET MVC-Projekts alle neu erstellt oder aus dem Internet entnommen werden.

Auf der anderen Seite, wenn Sie die Zeit und das Budget jetzt und vorwärts haben, und Sie eine Lösung haben wollen, die solide ist, und sich einfacher zur testgetriebenen Entwicklung eignet, ist die ASP.NET MVC wahrscheinlich die beste Wahl.

1

Definitiv ASP.NET MVC ist in Bezug auf Stil besser. (Das heißt, Sie tun nicht haben Wiederholer und andere dumme Kontrollen in einer WebForms Anwendung zu verwenden, Sie können einfach Inline-Code verwenden, wie würden Sie in MVC.)

MVC im Allgemeinen wäre allerdings eine sein einfacher Port, geben Sie eine bessere Struktur und eine angenehmere Erfahrung.

-1

ASP.NET MVC ist besser als Web Forms für automatisierte Unit-Tests der Benutzeroberfläche. Das Testen von automatisierten Einheiten ist jedoch im Allgemeinen eine schlechte Übung und für die Benutzeroberfläche sogar noch schlimmer. Manuelles Testen ist der beste Weg, um eine Qualitätsanwendung zu erstellen und die Entwicklungszeit optimal zu nutzen. Das Erstellen von automatisierten Komponententests ist eine Verschwendung von Zeit und Sie erhalten Junk-Code, den Sie mit dem Hauptcode pflegen müssen. Viele Entwickler mögen automatisierte Komponententests, weil sie denken, sie seien der Beweis, dass ihre Anwendung funktioniert, was falsch ist. Sie versuchen auch, das Entwickeln von Anwendungen mit UML zu vermeiden, sodass sie testgetriebene Entwicklung verwenden, um Code zu entwickeln, der für schlecht entworfene Anwendungen verantwortlich ist. Mit TDD refaktorieren Sie Code, den Sie schlecht geschrieben haben, ohne an das große Ganze zu denken.

Also MVC ist nutzlos. Web Forms verwendet ein besseres objektorientiertes Modell, während MVC mehr dem alten klassischen ASP und anderen älteren Entwurfsmustern ähnelt. Das ist 2010 und MVC ist tot. Web Forms ist wie ORM für die Benutzeroberfläche.

1

Web Forms ist eher objektorientiert, während MVC wie klassischer ASP auf .NET-Code basiert. Der Modellentwurf sollte mit Web Forms oder MVC identisch sein. Der einzige Unterschied besteht darin, dass Web Forms eine objektorientierte Abstraktion für die Benutzeroberfläche aufweist und MVC Funktionen und Code-Snippets anstelle von Klassen zum Organisieren von Benutzeroberflächencode verwendet.

Verwandte Themen