2013-04-07 13 views
5

Ich habe eine große asp.net-mvc-Website. Ich habe vor kurzem zu MVC 4 aufgerüstet, aber eine Sache, über die ich debattiere, ist es wert, auf die Rasiermaschinen-Engine zu migrieren. Ich see there are tools zu "auto" upgrade, aber ich versuche herauszufinden, ob es die Migration Schmerzen wert ist. Ich habe ungefähr 100 Gesamtsicht (sowohl normale als auch teilweise). Wenn es eine Code-Basis ist, mit der ich eine Weile leben muss, ist es die Mühe wert?Lohnt es sich, ein bestehendes asp.net-mvc-Projekt mit webform view engine auf rasiermesser zu migrieren?

Ich weiß, dass dies ein wenig subjektiv erscheinen mag, aber die Größe meines Projektes suche ich nach den erwartet Kosten für diesen Migrationsaufwand im Vergleich zu dem erwarteten Nutzen gegeben.

+0

Es ist wirklich nicht wert. Wenn Sie eine bestehende Anwendung haben, führen Sie neue Fehler und Probleme ein. Vor allem, wenn es um Teiltöne geht. Das ist nicht leicht für mich zu schreiben. Ich hasse aspx Ansichten. Vor einem ähnlichen Dilemma vor ein paar Jahren haben wir uns entschieden, alle neuen Ansichten RAZOR zu machen und manchmal Views umzugestalten, die stark überarbeitet werden mussten. Ansonsten werden Sie feststellen, dass dies ein langer und schmerzhafter Weg ist, der die unerklärlichen Kosten (eingeführte Käfer) NICHT wert ist. –

Antwort

5

Sofern Sie nicht einen bestimmten Grund haben, dann IMHO nein. Razor ist ein kleines, kleines Bit (~ 5% nach den meisten Quellen) langsamer als WebForms Ansichten jedoch kann dies alte Informationen sein. Im besten Fall werden sie genau die gleiche Geschwindigkeit wiedergeben. Ich habe nichts gesehen, das darauf hindeutet, dass Rasierer beim Rendern schneller ist als webforms (ASP.NET MVC 3 Razor performance) und bietet absolut nichts Zusätzliches, was man mit dem WebForms-Markup nicht machen kann.

Im Grunde ist es eine prägnante Markup-Sprache und kann ein schneller zu schreiben und sieht besser aus als WebForms Syntax sein. Zu guter Letzt, wenn Ihre Organisation das Schreiben von WebForms-Code von heute zurück hat, sind alle Entwickler bereits mit der WebForms-Syntax vertraut. Keine Lernkurve.

Also - sollten Sie eine gesamte Anwendung neu schreiben? Nein - du gewinnst nichts. In Zukunft, sollten Sie Razor verwenden? Hängt davon ab, die meisten scheinen sich so zu bewegen, es sieht schöner aus und hält die Ansichten ein wenig sauberer.

Wenn jedoch Sie sich entschließen, zu beginnen, Ihre Ansichten zu Rasierer zu aktualisieren, erinnern Sie sich dies in den Schritten tun können. Die ViewEngine sucht bei der Bestimmung der zu rendernden Ansicht nach beiden Sichtenarten. Dies muss nicht auf einen Schlag geschehen, sondern könnte im Laufe der Zeit schrittweise erfolgen.

PS - Dies wird wahrscheinlich als eine subjektive Frage bald geschlossen werden.

0

Nein, es sei denn, Sie haben einen wirklich zwingenden Grund dafür. Der einzige wirkliche Unterschied ist die Syntax auf den Ansichten ist ein bisschen sauberer und es gibt einen inhärenten "coolen" Faktor, der mit einer anderen Ansichtsmaschine arbeitet.

Als der Rasierer das erste Mal kam, haben wir ein bisschen gemischt, und deshalb betreiben wir derzeit eine Website mit Rasierer- und Webforms-Ansichten (dies wurde implementiert, bevor der Rasierer zur Standard-Ansichtsmaus wurde).

Wir haben alle neuen Ansichten in Rasierapparat geschrieben, und links die älteren Ansichten in Webformulare, die wir über langsam wandernde sind. Aber es ist zu unserem Vorteil, nicht die Kunden oder Endnutzer. So zu migrieren, nur die Ansichten über ist eine kostspielige, zeitnahe Angelegenheit, die keinen wirklichen Zweck dient ...

Wenn Sie Ihre App richtig geschichtet haben, was ich vorschlagen würde (ernsthaft), wenn Sie dies unternehmen würde, ist um Ihre bestehende Website in Ruhe zu lassen und eine separate Stand-Alone-Site zu erstellen, die die neue mvc-Infrastruktur nutzt. Es gibt deutliche Vorteile durch die Aktualisierung der Website von einer MVC 1 oder 2 App auf eine neue MVC 5 App.

Wir tun dies zur Zeit an meinem Arbeitsplatz, als unsere Modelle und Logik sind alle im Stand-Alone-DLL‘und wir haben sehr dünne Controller. Wir bemerken viele Änderungen und Updates von den neuen mvc5-Funktionen, die jetzt eingebaut sind. Dinge wie Bündelung, Twitter-Bootstrap usw. sind alles Dinge, die wir verwenden können, um Vorteile zu gewährleisten, die der Kunde bemerkt.

Es ist die gleiche alte Back-End, aber ein glänzendes neues Gesicht und das ist, lohnt sich.

0

denke ich, Ihre Frage in Vergangenheit beantwortet wird, wenn Sie Ihre Ziele mit neuen Funktionen entsprechen sollten Sie für ein Upgrade entscheiden, wie mobile Site-Support und mehr ..

Old Post

Dieser Beitrag gibt Details MVC4 Veröffentlichung Notizen und Unterschiede s/w MVC3 und MVC4 diese beide Antwort in diesem Beitrag wird Ihnen helfen, zu entscheiden.

Die 4 MVC diese Funktionen (Hauptpunkte) verbessern:

  • Erfrischen und modernisierte Standardprojektvorlagen
  • Neue mobile Projektvorlage
  • Viele neue Features mobile Anwendungen
  • Rezepte zur Unterstützung anpassen Codegenerierung
  • Erweiterte Unterstützung für asynchrone Methoden

Weitere Einzelheiten zu MVC4, können Sie verweisen: http://www.asp.net/mvc/mvc4

Edit: als die Frage anzeigen spezifisch ist,

Die Ansichten in beiden Versionen ohne Änderung auf die gleiche Weise funktioniert,

können Sie versuchen, unerwünschte Ansicht Motoren Entfernen

protected void Application_Start() 
{ 
    ViewEngines.Engines.Clear(); 
    ViewEngines.Engines.Add(new RazorViewEngine()); 
} 

Wenn Sie Verbesserung machen wollen, müssen Sie die Partial View

verwenden
<div class="news"> 
    <h3>News</h3> 
    @Html.Partila("NewControl", Model.NewsItems) 
</div> 

-Code-Teil:

public ActionResult News(){ 
    NewItemViewModel vm = new NewItemViewModel(); 
    vm.Items = repository.GetNews(); 
    return PartialView("NewsControl",vm); 
} 

Dies wird den normalen Geschwindigkeit geht Anstieg von 10x

machen sicherstellen, dass die Ansichten nicht kombiniert und keine Null-Modelle im Hinblick vorbei.

Dies sollte im Leistungsproblem helfen.

+0

Ich benutze bereits asp.net MVC 4, so ist die Frage nicht "sollte ich auf MVC 4 Upgrade", sondern nur um die View-Engine – leora

0

Wenn Sie mich fragen, seit ich Razor benutze, würde ich nie wieder auf die normale ASPX View Engine zurückblicken. Wenn Sie Ihrer Anwendung frischen Geschmack verleihen möchten und es den Entwicklern nichts ausmacht, die neue Razor-Syntax zu verwenden (die einfacher und sauberer ist), sollten Sie es tun. Wenn alle skeptisch sind und die Anwendung gut läuft, migrieren Sie nicht. Da diese Frage einen persönlichen Kommentar einlädt, geht meine Meinung mit this einher, die (trotz der Tatsache, dass Razor nun negligibly slower als der entsprechende ASPX zu sein scheint) offensichtlich heißt - migrate mich, jetzt.

Verwandte Themen