AiNoTame

Dio è nella pioggia.
posts - 17, comments - 79, trackbacks - 0

Remove Magic strings with T4MVC

T4MVC è un progetto opensource sviluppato da @davidebbo ospitato su codeplex, precedentemente parte di MvcContrib, ora standalone.
Cosa pemette di fare? rimuovere, grazie ad un template T4, l'uso delle "stringhe" da un progetto MVC (riferimenti a controller, action, le area, i file statici ...), il tutto con una curva di apprendimento minima (anzi, direi che non vi è curva di apprendimento e che i vari extension method di HtmlHelper sono più "complicati" da scrivere e da leggere).

Alcuni esempi di utilizzo:
  • return RedirectToAction("Index"); return MVC.People.Index();
  • @Html.ActionLink("Edit""Edit"new { id=Model.Id }) @Html.ActionLink("Edit"MVC.People.Edit(Model.Id)) 
  • @using (Html.BeginForm("Create""People")) @using (Html.BeginForm(MVC.People.Create()))
  • href="@Url.Content("~/Content/Site.css")" href="@Links.Content.Site_css" 
  • @Html.Partial("_LogOnPartial") @Html.Partial(MVC.Shared.Views._LogOnPartial) 

In package nuget contiene due template T4:
  • T4MVC.tt: il template che si occupa di generare classi e metodi da utilizzare degli esempi sopra elencati. In particolare si occupa di creare
    • classi T4MVC_*Name*Controller che ereditano *Name*Controller ed ne effettuano l'ovverride dei metodi. In questo modo il refactoring dei metodi è immediato (ovviamente una build è necessaria)
    • Classi partial *Name*Controller che aggiungono alcune shortcuts direttamente ai nostri controller.
    • Una classe statica MVC che raccoglie istanze statiche di classi T4MVC_*Name*Controller
    • Classi statiche Scripts e Contents che raccolgono i link alle varie risorse statiche
  • T4MVC.tt.settings.t4: raccoglie le convenzioni utilizzate dal precedente template, tra le quali:
    • string HelpersPrefix="MVC": l'entry point per lo sviluppatore
    • string ControllersFolder e ViewsRootFolder: i nomi delle cartelle dove risiedono i controller e le view
    • string[] StaticFilesFolders: una lista di cartelle contenenti file statici dai quali T4MVC.tt genererà i riferimenti

T4MVC permette quindi di eliminare le stringhe, facilitare la scrittura e lettura di codice e rifattorizzare lo stesso (anche se alcuni problemi persistono, soprattutto nei cshtml). Buon coding.

Print | posted on domenica 8 luglio 2012 22:57 | Filed Under [ ASP.NET ]

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET