ASP.NET MVC + jQuery - can things get any better for web developers?
Posted at 07:00 on 01 October 2008
Microsoft's recent decision to include jQuery in the ASP.NET development stack is pretty exciting news. I've been using jQuery for a while now, and all I can say about it is that it makes JavaScript fun. You can use it to add some pretty impressive effects to your web pages with only a couple of lines of code, and you have less to worry about as far as the idiosyncrasies of cross-browser detection are concerned. In the past year or so it's become pretty popular and even something of a de facto standard in many ways, probably best described as JavaScript's answer to Linq. If you're a web developer and you haven't yet come across it, I really would encourage you to check it out -- you'll love it, even if you hate JavaScript.
Hopefully this will attract some more talent back to the .NET platform. It's been the case for a while now that the best, most passionate web developers -- the ones who come up with the all-singing, all-dancing Ajax-y websites and eye candy -- have generally been shunning the Microsoft stack in favour of PHP, Django and Ruby on Rails. You can easily understand why -- the web forms postback model may be good for simple, fairly generic things, but if you really want to make your website sing, it has restrictions and leaky abstractions that get in the way a lot, such as the limitation of one server-side form per page, or the convoluted id attributes that it sticks in all over the place making CSS and DOM manipulation a major headache, or the monster that is view state.
However, with the ASP.NET MVC framework on the go, we have finally got back the control over our HTML that we need, and now with jQuery forming an official part of it, ASP.NET is becoming an even more exciting prospect again. It's especially so since in many ways you can really push the boundaries with .NET a lot further than with most other frameworks. Languages such as PHP or Ruby are good in themselves, but they do have their limitations, and it's not a good idea to try to use them for image manipulation, or genetic algorithms, or Bayesian spam filtering, for instance -- they are just too slow for computationally intensive stuff such as that, and in those cases you would need to drop down to C++. On the other hand, in C#, you can do it all in one integrated end-to-end framework, and with Visual Studio, you have what is probably the best IDE on the market to help you on your way.
I'm looking forward to seeing a lot more all-singing, all-dancing websites written in ASP.NET.