Sotva Microsoft uvolnil ASP.NET MVC 2, hned se na Codeplexu objevila roadmapa pro ASP.NET MVC, tedy takový nástřel, na co se bude tým dále soustředit. Vezměme si k ruce assembly ASP.NET MVC 2 Futures a podívejme se na to.
ASP.NET MVC Futures
Začněme s Futures. Assembly je ve své poslední verzi poměrně hubená, dost možná proto, že většina věcí byla přesunuta přímo do core assembly. Tradičně zde nalézáme MVC Controls, tedy kontrolky pro ASP.NET WebForms s prefixem mvc:. Idea to je zajímavá, protože aspx šablony jsou s těmito kontrolkami takové více konzistentní, než když máme kód „rozbitý“ voláním Html helperů apod. Prostě a jednoduše, aspx by mělo obsahovat ideálně žádný „imperativní kód“ (ideálně jen „deklarativní“) a MVC Controls k tomuto cíli vedou. Zůstává jen otázka, proč se za tak dlouhou dobu kontrolky nedostaly do core assembly a ani se nestaly příliš oblíbenými…
Další věci, které najdeme ve Futures, jsou povětšinou jen drobnosti, které sice potěší, ale nepřináší nic převratného.
MVCContrib
Když už zmiňuji Futures, určitě bych se měl zmínit také o MVCContrib – to je komunitní rozšíření pro ASP.NET MVC. Najdeme zde další užitečné maličkosti, ale i jednu poměrně zajímavou věc – T4MVC, která nám umožní generovat odkazy v silně typovém stylu. Ale na můj vkus je použitý způsob zajištění silné typovosti při generování odkazů příliš invazivní a očekávám, že se zapracuje na zvýšení výkonnosti generování odkazů pomocí generik. V současné době je ale T4MVC velmi dobrá (a hlavně výkonná) alternativa.
ASP.NET MVC 3
A teď k oné zmiňované roadmapě. Opět zde najdeme nějaké blbinky, jako např. možnost jedním ajaxovým voláním zupdatovat více DIVů na stránce, a lepší podpora klientského programování vůbec – třeba užší návaznost na jQuery (UI) nebo podpora pro client-side templates, které nám umožní formátovat příchozí json data. Vůbec to vypadá, že propojení server-side a client-side kódu je zajímavý úkol, který by se měl ještě nějak pěkně vyřešit.
Dále se píše o „dependency injection at all levels“, tedy možnosti jednoduše a unifikovaným způsobem nahradit/doplnit nějakou funkcionalitu v ASP.NET MVC. S tím trošku souvisí i užší integrace s MEF.
To nejzajímavější se ale skrývá pod položkou „View Engine Options„, kde se píše o experimentech s „new streamlined view engine syntax“ – měl jsem možnost ho vidět a vypadá opradu skvěle. Dále se tu píše o snadnější integraci ostatních view-enginů, což také potěší. Osobně budu rád, když se zbavím defaultního aspx view-enginu.
Shrnutí
Mně osobně na ASP.NET MVC vadil právě defaultní aspx view-engine, takže jsem rád, že se ledy v této oblasti pohnuly – ať už to je nový view-engine nebo lepší podpora pro alternativní view-enginy. Také lepší podpora pro client-side programování a lepší extensibilita pomocí IoC kontejnerů a MEF jistě potěší.
Co byste rádi viděli v dalších verzích ASP.NET MVC Vy?