Practical ASP.NET
2010: The Year in ASP.NET
So what happened this year? Not a lot on the server-side for ASP.NET developers, a ton of interesting stuff on the client-side (including a surprising change of direction from Microsoft), a reminder that it's a dangerous world out there, and more progress with ASP.NET MVC. As usual, there's more going on than any one developer can keep up with -- you have to pick and choose. And, of course, you don't
have to learn anything new at all. You don't
have to keep your job, either.
Through the year, I've been looking at solutions for the "standard" problems in ASP.NET, but I've also tried to keep readers up-to-date with the changes that matter. So, sitting in the wreckage of wrapping paper, recovering from the celebration, here's a review of what happened and some cherry-picked columns and articles featuring the new stuff.
The new version of ASP.NET came out and, to be honest, there wasn't much there for the server-side ASP.NET developer. The QueryExtender is nice, as is preloading applications. There is also the latest solution for managing the web.config file between test and production, and enhanced support for generating meaningful URLs. Finally we saw lots of "under the hood" improvements, including generating better formed HTML and shrinking the site's web.config file.
There were more opportunities for customization but in areas where most developers won't be interested in writing code for (e.g. custom caching, managing session state). I'm not saying these are bad things, but they were either features that took care of themselves (web.config shrinkage) or aimed at niche problems. And that's also not to say that the new features in the .NET Framework 4 aren't terrifically helpful but, for the grunt server-side programmer generating ASP.NET line-of-business applications, there wasn't that much in the ASP.NET basket.
On the client side, though, there was more under the tree. Just being able to specify a control's Id attribute made developer's lives easier. The new Content Delivery Network and extensions to the sys object simplified ensuring that you had the right script libraries loaded (including swapping debug libraries in and out). And, of course, there were a lot more goodies in the AJAX tab of Visual Studio toolbox. But the real story here is probably how much easier it is to integrate WCF with client-side code to get data from the server to the client (thank you OData and WCF Data Services).
Microsoft also embraced jQuery (and did it in a nice way) -- which meant some confusion in the ranks. Microsoft had built a whole databinding/templating framework, which it was willing to walk away from as part of its commitment to jQuery. Instead, Microsoft prepared a set of submissions to the jQuery group for databinding, templating and localization. Those were adopted in October as a set of extensions to jQuery. I'm going to start looking at how to use these technologies in the first columns in 2011.
The problem is that support for developing client-side JavaScript code still lags behind what we take for granted in the server-side environment. There's been some progress here in, for instance, supporting Test Driven Development, but programmers still have to watch out for landmines that are caught automatically by the development environment in other environments.
Microsoft's apparent repositioning of Silverlight also restored ASP.NET and ASP.NET MVC to being the favored children for delivering "apps-that-run-in-browsers." Speaking of ASP.NET MVC, it continued to develop. I still don't think that it's as productive a platform as ASP.NET, but for people who want to manage their HTML, it's a far better choice than ASP.NET. And, if your commitment to Test Driven Development is high (and you have enough code in your aspx.vb files to make testing it worthwhile), you're going to be willing to produce lines of code per hour because TDD will get you to reliable code so much faster. Still it's "next year in Jerusalem" for ASP.NET MVC developers waiting for version 3, which should help speed up generating HTML.
There were some bumps along the way this year. There was a bug in the way that .NET handled certain kinds of encryptions, which opened the door to ASP.NET sites for hackers. The problem was resolved with an out-of-band security patch in September. It's been a long time since there's been a known, embedded vulnerability (i.e. one not caused by bad programming practice) in ASP.NET, so this was a reminder that it's a cold, cruel world out there where developers have to constantly vigilant.
But all the other changes are a reminder that it's also a world where you have to keep on running just to stay where you are. Enjoy, and pass the eggnog.
About the Author
Peter Vogel is a system architect and principal in PH&V Information Services. PH&V provides full-stack consulting from UX design through object modeling to database design. Peter tweets about his VSM columns with the hashtag #vogelarticles. His blog posts on user experience design can be found at http://blog.learningtree.com/tag/ui/.