In-Depth

New Technologies Debut at PDC

Bill Gates led a keynote team that demonstrated new technologies in data access, Web development, and more.

Tuesday's PDC keynote, led by Microsoft Chairman Bill Gates and Group VP of Platforms Jim Allchin, focused on developing software that will target Windows Vista. Vista and Office "12" are scheduled for release in the second half of 2006, Gates said. The keynote team showed off a new user interface for Office 12, and made announcements about simpler data access through the LINQ Project, a new subset of Windows Presentation Foundation (Avalon) for targeting multiple devices, and the Atlas project for ASP.NET Web development.

A few key user factors are driving these changes. First, user expectations for presentation have been set by products and platforms that are specific to user interfaces, such as Flash. Second, end users expect access to their key information from everywhere. Finally, users expect to be able to share their information from anywhere, and they expect more from their devices yet want them simpler to use. All the products and tools discussed Tuesday are tied to those end user and business manager expectations, and how you can help meet or exceed them.

Vista and Office 12
Before I get to the developer tools that you'll be using in the future to create applications, I'll give a brief overview of some of the announcements around Windows Vista and Office 12. These are important for developers because the user experience for both the platform and the flagship application set the bar that you must clear in your applications. (Remember how quickly Windows 3.1 applications appeared old and dated when Windows 95 became the standard?) I think you'll see a similar reaction when Vista adoption takes off.

Windows Vista gives a total facelift to the current Windows user interface. The core actions are similar enough that you and your users will be comfortable, but many of the user actions have been given a polish that was not available before: titles bar are translucent, Alt-Tab now shows a thumbnail preview of each application, and the Windows Sidebar provides access to the desktop for alerts through RSS feeds. Standard Windows controls can now contain almost any content that Windows Presentation Foundation (WPF, formerly known as Avalon) can display: images, vector graphics, text, or anything else your graphics designers might create. Plus, WPF contains functionality that can manipulate all those items in many ways.

The key change for Office that will shape the applications you create is "simplicity." The massive menus that don't even fit on your screen are a thing of the past. So are the toolbars that eat up more than half the screen real estate. Instead, all the Office 12 applications contain tabbed toolbars that are context-sensitive: The current tab changes based on the user's context. It will change the way users will expect applications to behave. They will expect their new applications to guide them through their tasks. With all these new user expectations, you'll need richer tools to satisfy them.

Language Integrated Query
(LINQ)
The LINQ Project provides native language (C# was displayed) support for creating query-based logic on any data source. LINQ provides language support to treat any .NET collection as a relational table: You can query arrays, lists, or other collections. It includes support for sorting, filtering, and retrieval of just selected fields.

It also provides tools for you to link data sources from multiple locations. You can quickly write logic that merges in-memory data with external database sources. Finally, you can add XML support to the source data and the merged data to produce new XML output. Anders Hejlsberg and Don Box did a quick demo of this project to create an RSS feed that displayed information about all the running processes on your computer. All the plumbing (data connections, sort, query, filter, and join) is done for you. You get to concentrate on your specific tasks: what you do with that data.

Indigo Support
Indigo, now known as the Windows Communication Foundation, is looking quite a bit more polished. The tools support demonstrated means that you spend less time worrying about what the WSDL looks like, which means less time worrying about the syntax that describes your service contract. You can use your favorite .NET language, and add new attributes to describe the contract. The core Indigo engine manages the plumbing: the XML structure of the packets. In fact, the bindings are no longer part of the code, but specified in your web.config file. That means you can support multiple bindings much more easily.

ASP.NET Atlas Project
Microsoft also announced Atlas, a new Web client framework for AJAX-style Web development. (AJAX stands for Asynchronous JavaScript Technology and XML.) Atlas features a rich client-side JavaScript library and server-side technologies integrated with ASP.NET, said Microsoft's Scott Gutherie. The AJAX support involves the same JavaScript and XML tools used for Google maps, MSN Virtual Earth, and other similar Web-based applications. If you've used AJAX, you have undoubtedly experienced the pain and suffering that goes with cross-browser support for rich Web clients with JavaScript and XML data. Maybe you've experienced the joy of creating a Web-based application that does not use postbacks for every user manipulation. Atlas is designed to let mere mortals—developers who don't write cross-browser JavaScript in their sleep—leverage the controls in Atlas to create AJAX-based applications.

Avalon, or Windows
Presentation Foundation
The Windows client libraries provide many new capabilities that will enable you to create user visualizations that just aren't cost effective on the browser platform, even with Atlas. First, the Windows client supports all the WS-* and the InfoCard protocols that support different security specifications. This makes it much easier for you to integrate secure Web services into your client applications. The plumbing for the security is part of the framework, so you can use completed and tested security components rather than trying to re-implement your own.

The most important reason to look at Avalon (sorry, I still can't embrace "Windows Presentation Foundation" as a name) is the power you have to create richer, simpler, and more efficient user interfaces. We've all heard that a picture is worth a thousand words, and Avalon lets you build user interfaces according that adage. The core library lets you use rich graphics inside Windows controls: lists of images, or graphics representations of your data. You can control the size of each element and change the size of individual panes or work areas on screen easily. That means you can create clearer tool images, instead of those 32x32 glyphs that force users to guess what it actually does when pushed. The end result is a simpler user interface, where users can directly manipulate the data they are accessing.

In addition, Avalon specifies all its user interface elements using XAML. That gives you two important benefits. First, graphic designers can create templates using many of their own graphics tools. That means you move away from that cycle of trying to create code that visualizes a graphics designer's vision from a TIFF or PDF file. Instead, you import their XAML template, and immediately have the presentation that your graphic designers envisioned.

You can even expose that behavior to your end users. Consider that users can create their own skins, and your UI will modify itself to display the colors and effects they have created. The databinding technology that Windows Forms developers are familiar with has been added throughout the Avalon framework. That means the Avalon framework will do all the work to draw your user interface elements using your data. It saves you time and lets you concentrate on the task at hand.

Finally, the team announced and briefly demonstrated Windows Presentation Foundation/Everywhere (WPF/E), a new subset of Windows Presentation Foundation for targeting multiple devices such as a Tablet PC or a cell phone.

Windows development will change in the next year as much as it did between Windows 3.x and Windows 95. I think it will be exciting to see how many more new applications can come from this toolset. The only questions are the Windows Vista release cycle, the computing power needed to support these new tools, and the rate of product adoption.

About the Author

Bill Wagner, author of Effective C#, has been a commercial software developer for the past 20 years. He is a Microsoft Regional Director and a Visual C# MVP. His interests include the C# language, the .NET Framework and software design. Reach Bill at [email protected].

comments powered by Disqus

Featured

  • Compare New GitHub Copilot Free Plan for Visual Studio/VS Code to Paid Plans

    The free plan restricts the number of completions, chat requests and access to AI models, being suitable for occasional users and small projects.

  • Diving Deep into .NET MAUI

    Ever since someone figured out that fiddling bits results in source code, developers have sought one codebase for all types of apps on all platforms, with Microsoft's latest attempt to further that effort being .NET MAUI.

  • Copilot AI Boosts Abound in New VS Code v1.96

    Microsoft improved on its new "Copilot Edit" functionality in the latest release of Visual Studio Code, v1.96, its open-source based code editor that has become the most popular in the world according to many surveys.

  • AdaBoost Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the AdaBoost.R2 algorithm for regression problems (where the goal is to predict a single numeric value). The implementation follows the original source research paper closely, so you can use it as a guide for customization for specific scenarios.

  • Versioning and Documenting ASP.NET Core Services

    Building an API with ASP.NET Core is only half the job. If your API is going to live more than one release cycle, you're going to need to version it. If you have other people building clients for it, you're going to need to document it.

Subscribe on YouTube