LANGUAGES: VB.NET | C#
ASP.NET VERSIONS: 4.0+
Future Features of ASP.NET
Exciting New Capabilities that May Be Coming Soon to Your Visual Studio Toolbox
By Steve C. Orr
Web development has come a long way over the years. We started by learning to hand-code static HTML. When Microsoft released ASP, it enabled us to dynamically generate our HTML. Microsoft followed up this hit with a more object-oriented .NET-based version, which we ve all come to know and love as ASP.NET. Version 3.5 of ASP.NET has enriched our development lives with popular Web 2.0 capabilities such as ASP.NET AJAX, allowing us to harness the power of the client side. Upcoming versions of ASP.NET will focus on improving the client-side AJAX library and Visual Studio support for it.
More specifically, targeted client-side scenarios include improved support for mobile devices, Model View Controller (MVC) support, new controls, and new data binding capabilities.
Recent ASP.NET releases have been deployed in a confusing array of packages. For example, the original release of ASP.NET AJAX (codenamed Atlas ) was deployed separately from ASP.NET. This library was made available as a free download from http://www.asp.net after the release of ASP.NET 2.0 and Visual Studio 2005. (Microsoft finally included a new version of ASP.NET AJAX in version 3.5 of ASP.NET.)
To confuse matters further, .NET 3.0 did not include a new version of ASP.NET when it was released. Microsoft did orchestrate the release of a variety of new Web controls in this time period, but mysteriously chose to make them available through the new open source AJAX Control Toolkit.
Additionally, over roughly this same time period, Microsoft released a bunch of other code nuggets branded with such names as Community Technology Previews (CTPs), Futures releases, and other vaguely titled packages that confused developers about the support and stability of the code contained within.
Microsoft heard this confusion loud and clear, and is committing to consolidating future releases into fewer, better named, and more familiar release types. Prerelease versions of upcoming Web development technologies will still be made available to those developers brave enough to wade into such waters, but they will generally be consolidated within the open source CodePlex Web site (see http://www.codeplex.com/aspnet for the latest prerelease bits). The better known http://www.asp.net Web site will continue to host the more polished releases intended for the masses.
Microsoft is considering a plethora of new Web controls, although none are set in stone at this time. The open source AJAX Control Toolkit will continue to be a central part of their control creation and distribution strategy. While most of the controls in the current toolkit have been developed by outside sources, Microsoft is considering putting some direct coding effort into the toolkit to help jump start the next major release.
In addition to the many new control ideas that Microsoft is tinkering with, they have plans to ensure the current toolkit controls are spruced up with bug fixes and enhanced functionality.
One of the main complaints about classic server-side controls such as the GridView is that a round trip to the server is required in response to virtually every user interaction. Third-party control vendors have benefited from this; they discovered long ago that by moving sorting and paging operations to the client side there are potentially huge performance benefits to be gained. Therefore, many of Microsoft s new control ideas being bandied about are client-side versions of such classic controls as grids, tree views, validators, etc. Imagine for a moment the implications of a runat= client attribute value in addition to the runat= server attribute value with which we ve all become so familiar. Unfortunately, most of these client-side controls are currently anticipated to be released later than many of the other technologies outlined in this article.
Windows Presentation Foundation (WPF) and Silverlight have also gotten creative juices flowing for the ASP.NET team. The many layout controls provided by Windows Presentation Foundation have demonstrated a mouthwatering variety of possibilities for the Web. StackPanels, DockPanels, WrapPanels, etc. could all serve as promising templates for useful ASP.NET Web controls.
The standard textbox control has long been a staple of the Visual Studio toolbox. However, its usefulness has been limited by its ability to display only plain text characters without any formatting. In recognition of this limitation, Microsoft is finally considering developing a richer text editing control with HTML formatting support. If you can t wait for such a control, there are several good free (and not free) third-party rich text editing Web controls currently available on the Internet.
ASP.NET charting and graphing controls also have been an area monopolized by third parties for many years. While third parties will undoubtedly continue to dominate this area, Microsoft would certainly be applauded by the developer community at large if they continue with possible plans to provide some basic control functionality in this area.
Another great idea currently being brainstormed is a richer upload control that will (at a minimum) permit more than one file to be selected and uploaded at one time. The addition of a built-in progress bar would make such a control an invaluable part of the Visual Studio toolbox. A standalone progress bar is also being considered for reporting the status of ongoing operations that may be unrelated to uploading. Perhaps the final implementation will be two separate controls with the ability to work in unison.
Interested in building your own controls? Microsoft recognizes that the learning curve for such an endeavor has increased recently with the advent of AJAX everywhere, and they re mulling over ways to re-simplify this process.
Client-side Data Binding
Client-side data binding is another area ripe for progress. Those of you who played with the early betas of ASP.NET AJAX (codenamed Atlas at the time) might remember a feature called XML-Script. It was a noteworthy attempt at implementing a declarative data binding syntax that was compatible with ASP.NET AJAX. While the attempt was respectable, perhaps it s best that XML-Script never made it out of the beta phase. That clunky implementation required a separate declaration section within your ASPX pages that had to be synchronized with the standard ASPX control declarations. In practice, it was too easy for these sections to get out of sync, and, therefore, it required a relatively large amount of manual maintenance to keep everything connected and running smoothly.
Underlying Framework Features
There are a number of commonly sought features that would be valuable if implemented across a wide variety of Web controls. By building these in to the underlying control framework, many controls may then make use of them. If Microsoft designs these features thoughtfully (and my guess is they will), we ll all be able to leverage them with our own custom controls and Web page creations.
Drag and drop is one such commonly desired feature. It is the subject of much research in the ASP.NET control creation team. They ve been exploring the best ways that drag and drop can be implemented consistently across the framework in a declarative and programmatic fashion. I envision a day when drag and drop implementation will be as simple and intuitive for Web applications as it currently is for Windows applications.
Theoretically, accessibility has already been built in to ASP.NET controls for many years. In practice, however, Microsoft s current implementation of HTML accessibility standards is lacking. To be fair, this isn t completely Microsoft s fault. Evolving accessibility standards are at least partially to blame. Now that such standards have somewhat stabilized (for the time being), Microsoft is taking another look at this area and is determining the best way to implement it consistently across ASP.NET and all of its constituent controls.
Visual Studio 2008 Service Pack 1
Not all the features outlined in this article will be released at the same time. And some may never make the cut. The first finished batch of new features we can expect to see will be delivered with Visual Studio 2008 SP1. At the time of this writing, Microsoft had no firm release date for SP1, but judging by the progress I ve seen, I expect it to be out before the end of the year.
In addition to the much needed performance enhancements and bug fixes you might normally expect to be included in a service pack, this special release will include several exciting new features. For example, the included ADO.NET Data Services (codename: Astoria ) is such a compelling feature set that it deserves a series of articles all to itself. In short, it allows data to be exposed in such a way that it can be retrieved simply by constructing a special URL that specifies the desired query parameters. This unleashes all sorts of interesting possibilities for dynamic data retrieval over the Web.
Visual Studio, combined with ASP.NET, is arguably the most advanced Web development environment ever created. Even with all the luxuries it provides to Web developers, there are still many exciting possibilities for improvement.
The features described in this article offer a glimpse into one possible future of Web development with Microsoft s development tools. Some of these features will make it into ASP.NET 4.0 and other upcoming releases; some features may get cut entirely. It should be understood that Microsoft has not yet committed to any of the specific features described here. At this point, all the features described in this article are essentially tinkerings dreamed up collectively by Microsoft s ASP.NET team, as well as developers (like those of us who use their tools regularly and provide feedback). Only time will tell which features make it into which releases.
Let Microsoft know which are your favorite future features, and urge them to integrate them into ASP.NET as soon as possible. If you have ideas about how specific features should be implemented to best meet your needs, be sure to include such details.
To learn more about the future of ASP.NET and provide your input about it, I suggest you start at http://forums.asp.net/1127.aspx. To download the latest prerelease bits of the latest bleeding-edge ASP.NET technologies, your best starting point is likely at http://www.codeplex.com/aspnet.
Steve C. Orr is an ASPInsider, MCSD, Certified ScrumMaster, Microsoft MVP in ASP.NET, and author of Beginning ASP.NET 2.0 AJAX by Wrox. He s been developing software solutions for leading companies in the Seattle area for more than a decade. When he s not busy designing software systems or writing about them, he often can be found loitering at local user groups and habitually lurking in the ASP.NET newsgroup. Find out more about him at http://SteveOrr.net or e-mail him at mailto:[email protected].