Wir hatten vor kurzem eine Umstellung einer ASP.NET MVC 1.0 Anwendung, welche unter .NET 3.5 lief, auf ASP.NET MVC 2 mit .NET 4.0 vollzogen. Hier ein paar kleine Anmerkungen dazu.
Sobald mit mit VS2010 eine Solution öffnet, welche mit VS2008 erstellt wurde und unter .NET 3.5 oder älter läuft, kommt sofort der Konvertierungswizard und fragt ob man auch die .NET Framework Version 4.0 haben möchte.
Nach der Konvertierung wurden auch automatisch die MVC 2 dlls hinzugefügt. Für VS 2008 gibt es auch einen Konverter, weil man diverse Änderungen in den web.configs machen muss.
MvcHtmlString
Die Helper im MVC 2 geben nun ein MvcHtmlString anstatt eines einfachen Strings zurück. Das kann z.B. beim ActionLink Helper zu Problemen führen, da der MvcHtmlString nicht die Methoden eines normalen Strings enthält (z.B. Substring)
ValueProvider
Der Zugriff auf die ValueProvider ist jetzt anders geregelt. War vorher der Zugriff so:
ViewContext.Controller.ValueProvider["Bla"].AttemptedValue
So ist er nun so:
ViewContext.Controller.ValueProvider.GetValue("Bla").AttemptedValue
Render View To String
In einem HowTo ging es darum, wie man das Ergebnis eines Views als String zurückbekommt um dies z.B. für Email-Templates zu verwenden.
In diesem Stackoverflow Thread gibts auch eine MVC 2 kompatible Lösung.
RedirectToAction<>
Auch im neuen MVC 2 Framework gibt es kein streng typisiertes RedirectToAction. Dies befindet sich wieder in den Futures.
Für das Deployment
Wichtig ist natürlich auch, dass im IIS alles richtig konfiguriert ist.
Mehr Schwierigkeiten sind uns jedenfalls nicht aufgetreten - happy upgrading :)