It's been a pretty amazing week at the Microsoft Professional Developers Conference 2005 (PDC05), with Microsoft rolling out an initial look at the future of not only Windows but also Office. PDC is about Microsoft letting us get that first look and--in most cases, our first chance to try--its next generation of software. So, even as we're all preparing for the release of Visual Studio 2005 and SQL Server 2005, the talk here is about Vista, Office 12, and other tools, such as LINQ and Atlas.
At PDCs, Microsoft always reveals its biggest plans during keynote speeches, and this year was no different. Vista and Office 12 were the main focus of this year's keynote speeches, even though these products won't be available until the second half of next year. The biggest developer announcements were directly related to these two products.
As with every PDC, there were so many announcements at PDC05 that I can't cover them all here. So, I'm going to bypass discussing the announcement about the new toolbar design for Office 12. And I'm going to postpone addressing the new Windows Workflow Foundation and the new Microsoft Expression family of designer tools. (Windows Workflow Foundation and the Microsoft Expression tools are going to have a major impact on developers, so I'll cover them in future columns. In the meantime, you can find out more information about them at http://winfx.msdn.microsoft.com/library/default.asp?url=/library/en-us/gettingstarted/html/d05daf50-00fe-45c7-8383-06fe41697355.asp and http://www.microsoft.com/products/expression/en/default.aspx, respectively.) For now, I want to discuss two announcements that are going to have the most impact on you in the near future: LINQ and Atlas.
LINQ is the Language Integrated Query (LINQ) across XML. Note the addendum of "across XML." LINQ's goal is to let you query data from XML data without the use of XQuery. Ideally, you'll create your new query in C# .NET or Visual Basic .NET using the LINQ syntax.
There is a separate project called DLINQ, whose goal is to let you retrieve relational data through LINQ. What you need to understand about this Windows .NET Framework 3.0 enhancement, though, is that this capability isn't available in Visual Studio 2005. I'm mentioning this because I'm often asked about whether you can create .NET stored procedures to retrieve data from SQL Server 2005. Visual Studio 2005 .NET integration does allow you to create .NET stored procedures, but at some point, data access requires the use of T-SQL.
The goal of LINQ is to remove this requirement. LINQ lets you write the equivalent of dynamic SQL in your application and query against XML data or against relational data using the DLINQ module. The implication is that you won't need to learn these more specific language syntax elements. By using LINQ's XQuery-like syntax, you can create queries in the syntax you're most accustomed to. However, the ability to create such queries has some significant architectural implications for certain application architectures. For example, those developers who use the Create, Read, Update, Delete (CRUD) model for their data access are going to want to evaluate that architectural model because, with LINQ and DLINQ, Microsoft will essentially be providing a CRUD layer. Thus, any custom CRUD layer probably isn't going to have plumbing that's as efficient as LINQ. What a custom CRUD layer will have, though, is a high price tag associated with the cost of training developers how to use its syntax. For more information about LINQ, go to http://msdn.microsoft.com/netframework/future/linq.
At PDC05, Microsoft introduced Atlas, an add-on for Visual Studio 2005 to support what is essentially Dynamic HTML (DHTL). Back in 1997, Microsoft introduced DHTML based on the XMLHttpRequest object. Since that time, DHTML has become a technology that has faded out of sight. Although it's present in several Microsoft applications such as Outlook Web Access (OWA), you don't hear much about DHTML upgrades.
In the intervening years since the release of DHTML, most browser vendors have quietly implemented the XMLHttpRequest object or a related technology named Java Script Object Notation (JSON). The idea behind both these technologies is that a browser can use the Java Script engine to request additional data related to the currently displayed page and avoid a full HTTP request. Over time these technologies have become quite common across the Web because every browser has some form of implementation and, almost as important, Google showed its power with Google Suggest and Google Maps. The result is "Asynchronous Java Script and XML" (Ajax), a mish mash collection of hacks that have evolved into a technology.
Microsoft--a company that has never been one to ignore advances in technology, especially a technology used by a competitor such as Google-- immediately recognized the market for a set of tools that would simplify many of the steps that Web developers take to implement Ajax. The result is Atlas, a set of Java Script extensions for ASP.NET to simplify the implementation of Ajax. The Atlas extensions are designed to simplify the steps needed by a developer to leverage Ajax and automate the process of being cross-browser compliant. For more information about Atlas, start at http://beta.asp.net/default.aspx?tabindex=7&tabid=47. However, be forewarned that the current Atlas release, which is available on the Web only, works with Visual Studio 2005 beta 2, not Visual Studio 2005 Release Candidate 1 (RC1).