Visual Studio 2010 Makes Good Progress: Review

Microsoft’s Visual Studio development software gains enhancements to its core functionality and its handling of ASP.NET, C#, C++ and VB

There are lots of small, miscellaneous improvements to .NET as well. Several additional classes now support a Parse and TryParse method like we already have in Int32 and others. (Examples include Enum, which will come in handy, and Guid, which may occasionally be useful.) There’s a new generic collection class called SortedSet (which technically speaking in mathematical terms is an oxymoron, but you get the idea).

ASP.NET has many improvements as well. For starters, the caching mechanism has been improved to include cache provider extensions, letting you (or a third party) create, as the documentation says, “more intelligent output-caching strategies for websites.” And if you’ve worked on website development at all, then you know just how important this is for keeping a fast, optimal web server.

Next up with ASP.NET is a possible fix to something that’s been a bit of a gripe of mine for some time. In the past, if an ASP.NET server was sitting idle for a while, after the first request it would take quite a while for the server to wake back up. This can be embarrassing for a business for many reasons: The web server may appear slow to a potential customer, or, worse, if the customer is tech-savvy, he or she may recognise that nobody has been to the site for as little as a few minutes or as much as days or weeks. To help fix this problem, the new version of ASP.NET supports preloading of web applications, provided you’re using IIS (Internet Information Services) 7.5 on at least a Windows Server 2008 R2. (An upgrade may be in your future.)

Additional improvements include permanently redirecting a page, sessions state compression, enhancements to the way CSS is handled and even embedding view state for individual controls, which gives you more power over which controls maintain their view state. Additionally, the HttpBrowserCapabilities class has been updated to recognise several newer browsers, including the iPhone browser, so that you can write code that displays differently based on these browsers.

For LINQ programmers using ASP.NET, there’s also a new QueryExtender control to help you with filters and WHERE clauses. Additionally, MVC is now built in, instead of an extra download.

And here’s an interesting improvement: dynamic data and scaffolding. This isn’t actually new, but was introduced two years ago with the ASP.NET 3.5 Extensions as a separate download. But what is new is that it’s now built into Visual Studio 2010 and ready for you to use. It’s interesting because it allows you to quickly generate an ASP.NET application that features grid controls with direct access to the data. But is this very useful?

Initially, not really. I would hope that an ASP.NET programmer wouldn’t just throw together this default application and deliver it as-is. It’s ugly and not at all user-friendly, and it makes it too easy for the users to destroy the data. So what’s the point? Well, you can go in and modify the templates and add on to the code and build an application from this, which is what I suspect Microsoft actually has in mind; from there you could create a more useful application. I’d be curious to see what kind of applications developers come up with. However, I should note that the whole thing is still very much traditional ASP.NET, in that the grids aren’t AJAX-powered.

But let’s not forget there’s this other language (which I’ve written a few books about) called C++. Now remember: There are two aspects to C++ in Visual Studio. There’s the native C++ that gets compiled to native Intel assembly code (for developing Win32 applications), and there’s the managed C++, which gets compiled to intermediate code for running under the .NET framework.

The C++ compiler now supports many features of the new C++0x language, which should become a standard very soon. For example you can now use lambda functions in your C++ code.