Ich arbeite in einem großen Legacy-Projekt, das mit ASP.NET Web Forms erstellt wurde, und die Idee, die MVC-Bibliotheken zum selben Projekt hinzuzufügen, wurde herumgeworfen. Ich weiß, dass dies möglich ist (es sind viele Artikel verfügbar), aber ich frage mich, ob / warum dies von jemandem empfohlen wird / wird, der etwas Ähnliches getan hat.
Die Idee ist, dass wir neue Bereiche der Anwendung mit dem neueren MVC-Muster erstellen und die Legacy-Seiten wie immer am Laufen halten können.
BEARBEITEN: Zur Verdeutlichung betrachten wir das MVP-Muster nicht, da es bereits in einigen Teilen dieses Projekts verwendet wird, sondern tun etwas Ähnliches wie in diesem Artikel beschrieben: https://www.simple-talk.com/dotnet/ asp.net/mixing-web-forms-and-asp.net-mvc/
Antworten:
Dies ist kein schlechter Weg, um eine Anwendung neu zu schreiben. Dies wäre besonders nützlich für ein langfristiges Umschreiben in Phasen:
Fügen Sie ein "Testprojekt" hinzu, das CodedUI-Tests (oder Watin oder Selenium) verwendet, um die WebForms-Anwendung über den Browser zu testen. Sie können auch SpecFlow verwenden, um Ihre Testfälle zu definieren. Ich habe dies verwendet, um einen großen Einfluss auf eine WebForms-Anwendung zu haben.
Nachdem Sie die WebForms-Anwendung gut getestet haben, können Sie mit der nächsten Phase des Refactorings beginnen: Verschieben gemeinsamer Komponenten in eine separate Klassenbibliothek. Hier können Ihre Modelle und die Datenzugriffsschicht erstellt werden. Sie können Ihren WebForms-Anwendungen einen Verweis auf diese Bibliothek hinzufügen. Die Tests, die Sie in Phase 1 geschrieben haben, stellen sicher, dass Sie nicht gegen bestehende Geschäftsregeln verstoßen
Portieren Sie die Funktionalität auf Ihre MVC-Anwendung und ändern Sie Ihre Tests, um die MVC-App und nicht die WebForms-App zu verwenden.
Die Schritte 1 und 2 könnten gleichzeitig angegangen werden. Sie können sogar mit Schritt 3 beginnen, sobald Sie eine gesamte Funktion getestet haben und die gemeinsamen Komponenten von der WebForms-Anwendung entkoppelt sind.
Teilen Sie die Arbeit in Hauptfunktionen auf. Wenn eine Funktion in der MVC-Anwendung unterstützt wird, fahren Sie sie in der WebForms-Anwendung herunter. Es wird schließlich eine ausgehöhlte Hülle seines früheren Selbst, bis Sie den Code alle zusammen entfernen können.
quelle