ASP.NET 4.0 Awesomeness
By Jonathan Goodyear
I love springtime. The newness of everything gets you motivated to do great things. Speaking of new, Visual Studio 10 Beta 1 has been released to us folks who have signed NDAs; by the time you read this, you may even be able to download it yourself. I must say I am pretty impressed with everything that it has to offer. As per usual with betas of Visual Studio, it is a bit sluggish (especially with the new WPF UI), but that will improve as RTM approaches.
In this column, I m going to focus on the first batch of new ASP.NET 4.0 features that struck me as interesting and relevant. And no, this information doesn t violate my NDA. Silly reader.
One of the most commonly used ASP.NET features is output caching. It is an ideal way to avoid taking the hit for expensive operations on commonly viewed web pages. Unfortunately, high-volume websites that have a lot of content can quickly run out of memory, even with servers that have considerable resources. ASP.NET 4.0 introduces an extensible caching model that allows you to create your own caching provider to store cached pages in any location or fashion you prefer. Not only that, different pages can be cached in different ways, so you could (for instance) cache the most commonly used pages in memory, while caching other content on an external disk (so that web farms can share cached content).
Speaking of memory, another commonly used aspect of ASP.NET that can consume a lot of resources is Session State. ASP.NET 4.0 combats this by introducing a feature that allows you to compress your Session State using the System.IO.Compression.GZipStream .NET Framework library, dramatically reducing the amount of space required to store each session. This may help you stave off having to store Session in SQL Server, which would introduce a performance hit.
A new little feature that is bigger than it first appears is Permanent Redirection. A call to Response.RedirectPermanent redirects a web request at the server. This saves an extra hop that is usually required with normal calls to Response.Redirect that require a round trip to the client. The nicest part about this, however, is that Response.RedirectPermanent returns a 301 Moved Permanently response to the client instead of the 302 Found response that is normally returned. This will help search engines and other websites that link to your websites update their links more quickly and efficiently.
Routing for Web Forms is another great feature to help your users get where they need to go. Introduced alongside the ASP.NET MVC Framework when .NET 3.5 SP1 was released, Routing enables you to create friendly URLs that don t map to physical files on the server. The Routing engine maps the friendly URLs to their physical counterparts. For instance:
would map to a page like this:
You currently can make Routing work with Web Forms, but ASP.NET 4.0 makes the process much easier. You also now get access to the route data in the code-behind, markup, and DataSource Control parameters via the Page.RouteData.Values collection.
There are some interesting new features for the client, as well. For instance, the Page class now has Keywords and Description properties that allow you to set their respective meta tags on the page. You also can set them in the @Page directive. You also can take more granular control over ViewState for controls, allowing you to set their status to Enabled, Disabled, or Inherit (which will grab its ViewState settings from its containing control).
Jonathan Goodyear ([email protected]) is president of ASPSOFT, an Internet consulting firm in Orlando, FL. Jonathan is Microsoft Regional Director for Florida, an ASP.NET MVP, a Microsoft Certified Solution Developer, and a contributing editor for asp.netPRO.