Archives mensuelles: février 2011

1 article

Quelles fonctionnalités aimeriez-vous voir dans ASP.NET MVC 4 ?

S’il y avait une seule fonction que je voudrais voir dans ASP.NET MVC 4, ce serait de voir supprimer/déprécier les ViewBag et ViewData.
Ces deux concepts conduisent à du code très laid selon mon point de vue.
Voici ce que je déteste le plus dans les ViewBag et ViewData :
  • Ils ne sont pas fortement typés et vous devez effectuer un Cast dans vos vues afin d’obtenir le type réel
  • Ils ne sont pas refactorisables car ils s’appuient sur les « magic strings »
  • Ils conduisent à des tests unitaires fragiles en raison des « magic strings »
  • Ils conduisent au code spaghetti dans les vues

Voici le patch de diff, que je serais ravi de voir appliqué pour la classe ViewDataDictionary.cs dans ASP.NET MVC 4 :

diff --git ViewDataDictionary.cs ViewDataDictionary.cs
index 4c6299f..1965e3e 100644
--- ViewDataDictionary.cs
+++ ViewDataDictionary.cs
@@ -95,12 +95,10 @@ namespace System.Web.Mvc {
 
         public object this[string key] {
             get {
-                object value;
-                _innerDictionary.TryGetValue(key, out value);
-                return value;
+                throw new Expcetion("Don't use ViewData");
             }
             set {
-                _innerDictionary[key] = value;
+                throw new Expcetion("Don't use ViewData");
             }
         }
 
Et vous qu’en pensez-vous ?