{"id":490,"date":"2011-02-20T20:09:34","date_gmt":"2011-02-20T18:09:34","guid":{"rendered":"http:\/\/dev.bratched.fr\/fr\/quelles-fonctionnalites-aimeriez-vous-voir-dans-asp-net-mvc-4\/"},"modified":"2011-02-20T20:09:34","modified_gmt":"2011-02-20T18:09:34","slug":"quelles-fonctionnalites-aimeriez-vous-voir-dans-asp-net-mvc-4","status":"publish","type":"post","link":"https:\/\/bratched.com\/fr\/2011\/02\/20\/quelles-fonctionnalites-aimeriez-vous-voir-dans-asp-net-mvc-4\/","title":{"rendered":"Quelles fonctionnalit\u00e9s aimeriez-vous voir dans ASP.NET MVC 4 ?"},"content":{"rendered":"<div class=\"jfdefaulttext\">S&rsquo;il y avait une seule fonction que je voudrais voir dans ASP.NET MVC 4, ce serait de voir supprimer\/d\u00e9pr\u00e9cier les ViewBag et ViewData.<\/div>\n<div class=\"jfdefaulttext\">Ces deux concepts conduisent \u00e0 du code tr\u00e8s laid selon mon point de vue.<\/div>\n<div class=\"jfdefaulttext\"><\/div>\n<div class=\"jfdefaulttext\">Voici ce que je d\u00e9teste le plus\u00a0dans les ViewBag et ViewData\u00a0:<\/div>\n<ul>\n<li>Ils ne sont pas fortement typ\u00e9s et vous devez effectuer un Cast dans vos\u00a0vues afin d&rsquo;obtenir le type r\u00e9el<\/li>\n<li>Ils ne sont pas refactorisables car ils s&rsquo;appuient sur les \u00ab\u00a0magic strings\u00a0\u00bb<\/li>\n<li>Ils\u00a0conduisent \u00e0 des tests unitaires fragiles en raison des \u00ab\u00a0magic strings\u00a0\u00bb<\/li>\n<li>Ils\u00a0conduisent au code spaghetti dans les vues<\/li>\n<\/ul>\n<p>Voici le patch de diff, que je serais ravi de voir appliqu\u00e9 pour la classe ViewDataDictionary.cs dans ASP.NET MVC 4 :<\/p>\n<div id=\"scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:045d431a-8990-4560-9a19-031dafa24fee\" class=\"wlWriterEditableSmartContent\" style=\"margin: 0px;padding: 0px;float: none\">\n<pre>diff --git ViewDataDictionary.cs ViewDataDictionary.cs\nindex 4c6299f..1965e3e 100644\n--- ViewDataDictionary.cs\n+++ ViewDataDictionary.cs\n@@ -95,12 +95,10 @@ namespace System.Web.Mvc {\n \n         public object this[string key] {\n             get {\n-                object value;\n-                _innerDictionary.TryGetValue(key, out value);\n-                return value;\n+                throw new Expcetion(\"Don't use ViewData\");\n             }\n             set {\n-                _innerDictionary[key] = value;\n+                throw new Expcetion(\"Don't use ViewData\");\n             }\n         }\n \n<\/pre>\n<\/div>\n<div class=\"clearfix\">Et vous qu&rsquo;en pensez-vous ?<\/div>\n","protected":false},"excerpt":{"rendered":"<p>S&rsquo;il y avait une seule fonction que je voudrais voir dans ASP.NET MVC 4, ce serait de voir supprimer\/d\u00e9pr\u00e9cier les ViewBag et ViewData. Ces deux concepts conduisent \u00e0 du code tr\u00e8s laid selon mon point de vue. Voici ce que je d\u00e9teste le plus\u00a0dans les ViewBag et ViewData\u00a0: Ils ne sont pas fortement typ\u00e9s et [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25],"tags":[26,27,28],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/bratched.com\/fr\/wp-json\/wp\/v2\/posts\/490"}],"collection":[{"href":"https:\/\/bratched.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bratched.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bratched.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bratched.com\/fr\/wp-json\/wp\/v2\/comments?post=490"}],"version-history":[{"count":0,"href":"https:\/\/bratched.com\/fr\/wp-json\/wp\/v2\/posts\/490\/revisions"}],"wp:attachment":[{"href":"https:\/\/bratched.com\/fr\/wp-json\/wp\/v2\/media?parent=490"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bratched.com\/fr\/wp-json\/wp\/v2\/categories?post=490"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bratched.com\/fr\/wp-json\/wp\/v2\/tags?post=490"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}