I only began to enjoy web development with you once MVC came along. Thank you for getting me into the wonderful world of the web. However, the more I develop rich web applications, the more I see gaps in your tooling and libraries. Your server-side development story is excellent, but client-side (in browser) is weak.
Client-side web applications require HTML templating. jQuery.tmpl is very nice and works well with Steve Sanderson’s KnockoutJS. However, the current approach of “stuff a bunch of template containing script tags into the page” does not scale well with projects having hundreds of templates.
The key to solving this problem is Razor.
Razor totally nails HTML templating. We should be using it for both server and client-side templates. The same templates could even be reusable on both sides.
Server-side, the Razor views run on the DLR and work just like any other MVC view.
Client-side Asset Management
Scripts, style sheets, images and HTML templates are the client-side assets of a web application. The current ASP.NET story for these is “stuff them into folders and deploy”. This is not good enough!
Combining, minification, versioning, compression and caching, all matter for production deployment. We need a solution that handles all that, whilst still maintaining an excellent debug-time experience. Stepping into a 10,000 line, minified, script is no fun at all!
I just want a solution. I need to get back to writing web applications with .NET. Creating tools, frameworks and build processes is your job.
- a passionate .NET open source developer -
P.P.S. While this is an open letter to ASP.NET, I really would love to hear the entire community's thoughts on the issues raised here.
Either comment here, or heckle me on Twitter @andrewdavey.