On le dit depuis le début, un des points forts du framework ASP.NET MVC par rapport à d’autres produits Microsoft c’est qu’il y a une forte implication de la communauté dans le processus de développement. Pour la V1, la première preview a été présenté 1 an et demi avant la version finale et entre les deux une dizaine de versions intermédiaires avec à chaque fois le source.
C’est en grande partie pourquoi le produit était déjà grandement mature en v1.0.
C’est d’autant plus le cas avec la V2 qui continue avec sa présentation à la communauté des sources + binaires.
Celle-ci apporte quelques bugfixes bien sur, mais surtout elle se veut “Enterprise Ready”. Le but étant d’apporter àu framework tous les éléments nécessaires aux applications d’entreprise. Ceci est à mettre en comparaison de la V1 qui un peu vue comme “Geek friendly” par certains mais n’apportant pas assez d’outillage pour les besoins usuelles des applications d’entreprise.
Je vous rassure, pas de gros changements…
Les principaux objectifs sont:
- d’apporter plus d’aide au développement par de nouveaux helpers, templates, génération de code (Templated helpers, actions partielles)
- apporter plus de fiabilité aux données et simplifier leur validation et description (Data Anotations, Validation)
- Permettre d’isoler plus simplement des blocs applicatifs et éventuellement leur réutilisation entre plusieurs projets (Areas)
- Apporter le support des longs traitements (Async controllers)
Ok, je veux essayer?
oui, le dernier binaire d’installation de la RC sous Visual Studio 2010 est disponible depuis le 16 décembre sur le site de Microsoft et les sources sur CodePlex.
Attention cependant avec Visual Studio 2010.
Aujourd’hui les beta/rc de Visual Studio 2010 et ASP.NET MVC ne sont pas en phase car MVC intègre des features en avance par rapport à ce qui est supporté dans Visual Studio. Il s’agit principalement de problématiques du designer et non du Framework .Net 4. les Versions finales RTM de ASP.NET MVC 2 et de Visual Studio 2010 seront par contre bien sur en phase et livrées en même temps.
En attendant la version finale, il faut de préférence utiliser l’installeur pour Visual Studio 2008 pour profiter de toutes les features du designer.
Pour travailler sous Visual Studio 2010 et ASP.NET 4, il faut soit changer la référence par défaut de System.Web.Mvc.dll créée par le projet soit ouvrir un projet créé sous 2008 et changer le target.
Dans tous les cas, il s’agit d’une pratique temporaire, la version finale de Visual Studio 2010 devrait arriver mi-avril ou un peut avant pour le MIX 2010.
Et si on travaillais avec les sources pour bien comprendre?
Puisqu’on a vanté les mérites d’avoir accès aux sources, pourquoi ne pas les utiliser directement comme projet de référence pour travailler au lieu de prendre la dll System.Web.Mvc.dll intégrée par défaut à votre projet?
Cela vous permettra de descendre plus loin dans le débug aussi bien pour comprendre pourquoi quelque chose ne fonctionne pas mais aussi pour comprendre pourquoi et comment cela fonctionne.
1) tout d’abord récupérez les sources citées plus haut.
2) créez une solution avec un “Empty ASP.NET MVC 2.0 Web Application” (ou tout autre projet de votre choix)
3) pour plus de simplicité collez le répertoire src des sources ASP.NET MVC dans le même répertoire que celui de la solution de votre projet puis ajoutez le projet \src\SystemWebMvc\System.Web.Mvc.csproj j à votre solution.
4) Supprimez dans votre projet les références à System.Web.Mvc (et éventuellement à Microsoft.Web.Mvc si il s’agit d’un autre projet et que vous l’utilisiez, dans ce cas il faudra aussi charger ses sources \src\MvcFutures\MvcFutures.csproj ).
5) Ajoutez dans votre projet une référence au projet System.Web.Mvc(csproj). De même pour MvcFutures si vous désirez l’utiliser
6) Supprimez toutes les références fortes à la librairie System.Web.Mvc qui se trouve dans le GAC de votre web.config:
- commentez la ligne content “add assembly=”System.Web.Mvc…” dans system.web/compilation/assemblies
- Mettez à jour le PublicToken de toutes les autres références à System.Web.Mvc à Null comme ceci:
- pareil pour le MvcHttpHandler qui se trouve dans system.webserver/handlers/
- ouvrez maintenant le web.config qui se trouve de votre/vos répertoire(s) Views puis effectuez le même remplacement du Token comment dans le web.config principal. par exemple:
Le principe est juste de lui enlever les références fortes basées sur le PublickKeyToken qui est celui du GAC pour le forcer à prendre la référence qui se trouve dans votre projet.
Lancez votre projet et vous pourrez débugger complètement votre application sans avoir un message qui vous explique qu’il ne peut rien vous dire car l’appel vient d’un process externe. Ceci arrive souvent car c’est la tuyauterie MVC qui active les classes et invoque les méthodes toute seule la plupart du temps (comme l’exécution d’une action ou la récupération des données d’un formulaire par le DefaultModelBinder…)
Pour Finir
Je vous invite à venir me rejoindre mardi 9 février aux Techdays pour une session de présentation sur ASP.NET MVC 2 à 17h30 que je co-animerai avec Daniel Tizon.
Bon débug et bon démarrage!