Migration d'application MVC 3 en MVC 4

Avec Visual Studio 2010 SP1 Rel, j'ai installé MVC 3 puis MVC 4 mais Visual Studio ne me propose pas de créer des application MVC 3. Qu'à cela ne tienne, je me propose d'étudier la migration d'application MVC 3 vers MVC 4.

Je viens de télécharger une application du CodePlex :
http://advsampleapp.codeplex.com/
Sample app for Adventureworks database

Et il se trouve qu'à la page suivante :
http://www.mztools.com/Articles/2008/MZ2008017.aspx
On me dit que c'est une application MVC 3.

Lorsque je charge cette solution dans mon Visual Studio, j'obtiens l'erreur suivante :

AdventureWorks.Web.csproj is not supported by this installation
C'est assez curieux car je pensais que VS me proposerait de traduire cette application de MVC 3 vers MVC 4 mais il n'en est rien. Puis-je le faire à la main ?

Je regarde la ligne d'une application MVC 4 standard :
<ProjectTypeGuids>{E3E379DF-F4C6-4180-9B81-6769533ABE47};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>

Et je copie cette ligne directement dans le fichier :
\\advsampleapp-15464\Adventureworks\Adventureworks.Web\Adventureworks.Web.csproj

Que se passe t-il ?

Adventureworks.Web.csproj - Reload Project
J'obtiens un résultat encourageant :

Adventureworks.Web.csproj - Install de ASP.NET Web pages with Razor syntax 1.0
Le Web Platform Installer me propose d'installer Razor 1.0 ... Ce que je ne fais pas. Je reload simplement mon projet mais au moment de builder l'application, j'obtiens une "Erreur non spécifiée". Par expérience je me doute qu'il s'agit des "Services Références". Au moment de faire un Update des Services Référence :



J'obtiens l'erreur suivante :

Service Reference is invalid
Mais une fois mon service reference "PurchasingService" reconstruit l'application ne compile toujours pas. Je décide d'installer ce qui était préconiser le :

Web Platform Installer : Visual Studio 2010 SP1 Tool pour ASP.NET WebPages 1.0
En cliquant sur "Installer" :

Version de NuGet installés incompatible avec ASP.NET MVC 3 Tools Update
Consultez le lien :

En consultant ce lien, on tombe sur un Getting Started with MVC. On y verra également un getting started with MVC 5. Ce n'est pas très cool !

Conclusion MVC 3 vers MVC 4

La migration d'application MVC 3 en MVC 4 ce n'est pas gagné !

Pour aller plus loin :
Donc la version de Razor utilisée pour MVC 3 est 1.0 tandis que MVC 4 utilise Razor 2.0

Références du projet AdventureWorks Sample
DLLs qui utilisent ASP.NET Web Pages\v2.0 :
System.Web.Helpers.dll
System.Web.WebPages.dll

Et si on les fait pointer ces références vers la version v1.0 que se passe t-il ?

L'application Build mais à l'exécution en mode DEBUG :

Windows authentication is not enabled
Mais cela c'est du classique, il s'agit de la gestion des droits d'accès au répertoire virtuel, aux BD ASPNETDB et AdventureWorks, de chaines de connexion dans le Web.config ...

Outil de traduction automatique MVC3 vers MVC4

Et sinon vous avez un outils NuGet qui traduit automatiquement une solution MVC3 en MVC4 :

Auto Upgrade MVC 3 To MVC 4 1.0.1

Mais il était important de découvrir ce que cet outil doit faire pour traduire une solution.



Aucun commentaire:

Publier un commentaire

Pour plus d'interactivité, n'hésitez pas à laisser votre commentaire.