2008-08-17 14 views
5

ASP.NET MVC wurde discussed in diesem Forum ein paar Mal. Ich bin dabei, eine große Migration von mehreren Websites von klassischen ASP/ASP.NET WebForms zu ASP.NET MVC zu machen und fragte mich, welche Art von Ratschläge diejenigen von Ihnen mit Erfahrung in beiden Technologien haben.Vorschläge für die Migration von ASP.NET-WebForms zu ASP.NET MVC?

Was ich habe: eine typische ASP.NET-App mit stark gekoppelten Präsentation/Business-Logik, alle Arten von unordentlichen ASP.NET-generierten Javascript cruft, und so weiter.

Was ich will: sauber ASP.NET MVC-generierte agnostic Markup. Sagte Nuff.

Irgendwelche Hinweise, Tipps, Tricks oder Fehler?

Danke!

Antwort

2

Haben Sie irgendwelche Hinweise, Tipps, Tricks oder Fragen zu beachten?

Nun, ich glaube, Sie wahrscheinlich ein kleines Stück davon entfernt über Tricks vom Denken & gotchas :) Da ich sicher bin, sind Sie sich bewusst, ASP.NET MVC ist nicht irgendeine neue Version von ASP.NET, aber ein völlig anderes Paradigma als ASP.NET, Sie werden nicht migrieren, Sie werden eine brandneue Entwicklungsanstrengung initiieren, um ein bestehendes System zu ersetzen. Vielleicht können Sie also bei der Bestimmung der Anforderungen für die App einen Schritt weiter gehen, aber der Rest wird wahrscheinlich von Grund auf neu erstellt.

Basierend auf den (sehr häufigen) Problemen, die Sie in Ihrer bestehenden Codebasis beschrieben haben, sollten Sie diese Gelegenheit nutzen, um einige der aktuellen Best Practices beim Entwurf von lose gekoppelten Systemen zu erlernen. Dies ist leicht zu bewerkstelligen, da moderne "Best Practices" einfach zu verstehen und zu praktizieren sind, und es gibt eine enorme Community-Unterstützung und hochwertige Open-Source-Tools, die dabei helfen.

Wir verschieben derzeit eine ASP/ASP.NET-Anwendung auf ASP.NET MVC, und das ist die Schlussfolgerung, zu der meine vorbereitenden Untersuchungen ohnehin geführt haben.

Here is a post to links on using ASP.NET MVC, aber ich würde von reading this post starten. Der Beitrag handelt von NHibernate (einem ORM-Tool) auf seiner Oberfläche, aber die Diskussion und die Links betreffen die Grundlagen und sind das Ergebnis der Vorbereitung, eine ASP.NET-Site auf MVC zu portieren. Einige der Referenzarchitekturen, auf die in diesem Beitrag Bezug genommen wird, basieren auf ASP.NET MVC. Here is another post about NHibernate, aber im Abschnitt "Best Practices & Referenzanwendungen" sind die meisten, wenn nicht alle der aufgeführten Referenzanwendungen auch ASP.NET MVC-Anwendungen. Referenzarchitekturen können sehr nützlich sein, um schnell ein Gefühl dafür zu bekommen, wie eine optimale, wartbare ASP.NET MVC-Site entworfen werden könnte.

3

Wow, ich bin mir nicht sicher, ob wir hier über Migration reden - der Unterschied ist mehr wie ein Neuschreiben!


Wie andere auch gesagt haben, ist MVC eine ganz neue Art und Weise Web-Anwendungen zu bauen - die meisten Ihrer Präsentation Code nicht über tragen.

Wenn Sie jedoch in MVC neu schreiben, was Sie bereits haben, ist ein guter Prototyp. Ihr Problem wird wahrscheinlich darin bestehen, dass es nach und nach schwierig wäre, etwas zu tun - MVC verwendet zum Beispiel eine URL-Umbenennung von vornherein, wodurch das Hin- und Herverknüpfen ziemlich unordentlich wird.

Eine andere Frage wäre warum? Viele von uns haben umfangreiche Legacy-Anwendungen, die wir gerne in den neuesten Technologien einsetzen würden, aber wenn Ihre Anwendung bereits funktioniert, warum?

Wenn ich jetzt eine neue Anwendung betrachte, wäre MVC ein sehr starker Kandidat, aber es gibt keinen Gewinn, der groß genug wäre, um spät in ein Projekt zu wechseln.

0

Meine Meinung ist, dass die beiden Technologien so unterschiedlich sind, dass wenn Sie eng gekoppelten Code in den ursprünglichen Web Form-Anwendungen haben, der beste Ansatz ist, einen von ihnen auszuwählen und durch Erstellen eines neuen ASP.NET MVC zu konvertieren Anwendung und Ripping-Code in ihre jeweiligen Schichten. Damit sind Sie auf der Spur der Wiederverwendung für die Portierung der anderen Anwendungen.

1

WebForms können mit MVC-Controllern in derselben App leben. Standardmäßig leitet das Routing keine Anforderungen für Dateien auf der Festplatte weiter. So können Sie beginnen, kleine Teile Ihrer Website gleichzeitig neu zu schreiben, um das MVC-Muster zu verwenden, und den Rest über WebForms zu belassen.