Ist ASP.net Model View Presenter die Zeit wert?
-
03-07-2019 - |
Frage
Ich lese über ASP.net MVP-Muster über das Wochenende und es scheinen, wie auch die einfachste Aufgabe zu viel Mühe, wenn es in MVP-Muster tun off der Lohn scheinen bei größeren Projekt zu sein, aber ich denke mir, wenn ich gehe MVP folgen. Warum nicht einfach das Projekt tut in ASP.net MVC?
Der Grund, dass ich an MVP-Muster suchen, ist, weil ich in meinem ASP.net Webform Projekte bemerkt haben gibt es eine Menge Code in der Code-behind nur für Event-Handling zusammen, wenn ich eine Menge von Server-Kontrolle auf dem Web-Formular Suche ich war so auf die Art und Weise, dass und kommen über das MVP-Muster zu reduzieren.
Ist es der Mühe wert, das MVP-Muster oder schalten Sie in die ASP.net MVC?
folgenLösung
Wenn Sie ein neues Projekt zu starten, dann ist ASP.net MVC eine bessere Wahl. Aber wenn Sie nur ein vorhandenes Projekt Refactoring wollen, wie Sie gerade gesagt, dann MVP ist die Option, weil es keine einfache Möglichkeit ist es, das Web-Formulare Codes zu MVC zu konvertieren.
Andere Tipps
Ich würde empfehlen, die folgenden beiden Links Lesen Sie aufstehen auf MVP und MVC zu beschleunigen:
- ein großer Blog-Beitrag von Gil Fink auf den verschiedenen Vorteile von MVP und MVC
- Eine Frage Stackoverflow auf, was ist der Unterschied zwischen MVP und MVC
Sollten Sie wechseln?
Nach dem, was Sie mir gesagt haben würde ich empfehlen, dass Sie das Passive MVP-Modell in dem Artikel erwähnt verwenden oben.
Meine wichtigsten Annahmen sind:
- Ihr Umgang mit einer bestehenden Code-Basis von WebForms-Anwendungen
- Sie müssen Drittanbieter .NET-Steuerelemente für bestehende Funktionalität verwenden
- Ihre Arbeit an bestehenden Anwendungen und keine Zeit hat, Architekten sie erneut
- Alle ASP.Net Web Apps Sie in Zukunft arbeiten, können Sie schrittweise die passive MVP anwenden und die Vorteile von TDD sofort bekommen
Ihre Ansicht (Code-Behind + aspx) im Wesentlichen stumm geworden und führen nur einfache Aufgaben:
- nehmen Informationen vom Moderator gegeben
- reagiert auf Ereignisse und liefert Informationen an den Moderator
Ich habe dieses Modell in großem Umfang für Web Forms-Entwicklung verwendet, und ich konnte mir nicht vorstellen, um Unit-Test mein Modell und Presenter-Code nicht in der Lage zu sein. Sobald Sie Ihr Basismodell etablieren, die nicht sehr lange dauert und die Macht der Unit Testing gesehen, mit Web Forms arbeiten wird angenehm.
Einige Links zu MVP Sachen, dass das Modell, das ich verwendet habe, basiert auf:
Ich würde auch empfehlen, dass Sie lernen, MVC.
Wenn die Zeit es erlaubt, nehmen Sie eine bestehende App und Portierung auf MVC. Auf diese Weise Ihre einzige Schwerpunkt wird immer MVC wissen, und wenn Sie Logik in das MVC-Muster bewegen, werden Sie Dinge entdecken, die Sie in WebForms umgesetzt und gab nie viel nachgedacht, aber jetzt in einer anderen Art und Weise zu lösen gilt. Große Weise, die Muster zu vergleichen und sehen, was für Sie arbeitet.
Hope, das hilft, fühlen Sie sich frei, Fragen zu stellen.
Meiner Meinung nach ist der ideale Weg für neue Anwendungen zu gehen, ist MVC. Wenn Sie jedoch eine Menge Code haben bereits WebForms, dann ist das MVP-Muster ist der Weg zu gehen.
würde ich Asp.Net MVC gehen, wenn es sich um ein neues Projekt, aber ich zustimmen, MVP könnte ein gutes Muster für Legacy webforms Projekte sein.
Hier ist ein Beispiel aus meinem Blog: http: // www .unit-testing.net / CurrentArticle / How-To-Use-Model-View-Presenter-With-ASPNET-WebForms.html
meine persönliche Meinung ist, dass, wenn es hinter dem Code eine Menge Code ist, gibt es noch auf andere Weise als die Annahme M-V-P, um schlank es nach unten, Refactoring und macht es testbar.
, wenn Ihre Seite umfangreiche Interaktion mit dem Benutzer hat (wie Schaltflächen / Links Aktivieren / Deaktivieren, Panels und Steuerelemente erscheinen / verschwinden) M-V-P die Mühe wert wäre.