ASP.NET MVC Controller template-ek testreszabása

Ha egy ASP.NET MVC projektben új controllert generálok, annak valami ehhez hasonló lesz az eredménye:

public class DemoController : Controller
{
  // 
  // GET: /Demo/

  public ActionResult Index()
  {
    return View();
  }
}

Biztos nem én vagyok az egyetlen (vagy igen?), akinek több dolog is bántja a szemét a kommenttel kapcsolatban:

  • A teljesen felesleges // komment sor.
  • A semmitmondó komment.
  • A komment utáni üres sor.

Egyébként rendben is van Mosolygó arc

Szerencsére az MVC csapat már dolgozik azon, hogy a következő verzióban a generált kód “normálisabb” legyen. Nem lesz felesleges komment sor és üres sor sem, sőt talán a generált komment is tartalmasabb lesz. ASPInsiderként javasoltam, hogy legyen XML komment, de az volt a válasz, hogy mivel controller metódusról van szó, azt vagy az MVC runtime hívja meg, vagy egy unit test és egyik helyen sem segítene az IntelliSense, ezért nem lesz XML komment. Végülis ebben van logika, egyébként meg az a fő cél, hogy kevesebb legyen a kód.

Szerencsére nem kell megvárnunk a következő MVC verziót, hogy javítsunk a generátoron, megtehetjük magunk. A generáláshoz használt T4 sablon itt található: C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\CSharp\Web\MVC 3\CodeTemplates\AddController\Controller.tt

Ha ezt a fájlt átírjuk, akkor a gépünkön lévő összes MVC projekt az átírt változatot fogja használni.

Ha csak egy projektben szeretnénk más sablont használni, akkor a következő a teendő:

  1. A projektben létre kell hozni egy CodeTemplates és azon belül egy AddController mappát.
  2. Ide be kell másolni az előbb említett mappában található Controller.tt fájlt.
  3. A Solution Explorer ablakban be kell rá állítani, hogy Build Action = None.
  4. Át lehet írni a Controller.tt fájlt, ahogy jólesik.

Így végül csak lett XML kommentem és még source controlba is bekerült a sablon Mosolygó arc

 

Technorati-címkék: ,,,
Advertisements

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s