| Presentation Foundation Moves Beyond Windows |
| Apr. 17, 2006 |
|
A cross-platform version of the Windows Presentation Foundation (WPF), known as WPF/E (for "Everywhere"), will support the Visual Basic (VB) and C# programming languages and enable developers to build stand-alone as well as browser-based applications. This significant change in plans (since WPF/E was announced in Sept. 2005) could increase the appeal of WPF/E to traditional corporate developers, make it easier for Microsoft to support WPF/E with tools such as Visual Studio, and help the company fend off Adobe, which is trying to move into the corporate development market with Flash and Flex. Move to .NET Highlights New Plan WPF is a new graphics engine and API built on the .NET Framework that will be included in Windows Vista and will ship as an add-on to Windows XP and Windows Server 2003. WPF gives developers a platform for building applications that offer sophisticated graphics, including multimedia, animation, video, and text. At the heart of WPF is XAML (rhymes with "camel"), an XML format for describing the user interface (UI) of an application. XAML allows programmers to create XML descriptions of graphics and UI elements, including 2D and 3D graphics and video clips as well as traditional UI elements, such as buttons and list boxes. Building sophisticated UIs often requires programmers and graphic artists to collaborate, and Microsoft hopes XAML will make it easier for artists to design a UI and then hand off the XAML to a programmer to add the appropriate code. WPF is designed to support traditional desktop applications as well as browser-based applications known as XAML Browser Applications (XBAs). However, although XBAs run within Internet Explorer, they run only on platforms supported by WPF: Windows Vista, Windows XP, and Windows Server 2003. In contrast, WPF/E would support a subset of the XAML specification (omitting features such as 3D graphics) but would run on a wider range of OSs and browsers. Microsoft says it plans to support WPF/E on Windows 2000 and later Windows versions, as well as Mac OS X. WPF/E will also be supported on some unspecified devices—Microsoft has said only that device support will be "more than just Windows Mobile" and that it would be open to licensing WPF/E to others. It has also said it is "considering" support for Linux and Windows 9x, although it should be noted that Microsoft will no longer provide any kind of support for Windows 9x after July 2006. What's Changed? What has changed since Microsoft announced WPF/E at the 2005 Professional Developers Conference is how the company plans to implement WPF/E. Microsoft originally planned to implement WPF/E as a browser plug-in for each platform without including the .NET Framework. WPF/E was to support browser-based applications only and developers would program it through client-side JavaScript. Microsoft has now decided to create a version of the .NET Framework for each platform, and WPF/E will run on top of the .NET Framework. However, details on the new versions of the .NET Framework are still sketchy. Microsoft already has several specialized versions of the .NET Framework, including the Compact Framework used for devices such as Windows Mobile, and a shared-source-code version, known as Rotor, that can be used by third parties to port the .NET Framework to other platforms. But Microsoft believes that both Rotor and the Compact Framework are too large to be downloaded effectively and is aiming for a WPF/E download size of less than 2MB. This goal is extremely ambitious given that the new version of the framework must support WPF/E's sophisticated graphics rather than the simple graphics of the Compact Framework. Wider Appeal, Better Tools Because moving to the .NET Framework means WPF/E can be used with languages such as VB and C#, it should make WPF/E more appealing to corporate developers, many of whom are already familiar with VB but not necessarily with JavaScript. The move also makes it easier for standard Microsoft developer tools to support WPF/E. Visual Studio, Microsoft's integrated tools suite for developers, is based almost entirely on the .NET Framework and has relatively little support for scripting languages. For example, Visual Studio includes a full set of project templates for creating applications with VB, C#, J#, and C++, but it has no support for JavaScript. Even though Visual Studio already supports the .NET Framework, WPF/E may not gain widespread usage among corporate developers unless it has graphics tools to support WPF/E's XAML subset and to help developers create XAML that is compatible with WPF/E. For example, Expression Interactive Designer, an upcoming product for UI design with XAML, will need to limit WPF/E projects to the subset of XAML that WPF/E supports. Similarly, whatever XAML tools Microsoft includes in the next version of Visual Studio must also honor those limits for WPF/E projects. Fending Off Adobe The new plans for WPF/E reflect increasing competition among corporate developer tools. Most notably, Adobe is seeking to build on the success of its Flash product, widely used to create interactive graphics on the Web, to move into corporate application development. Adobe is promoting a set of Java-based tools, libraries, and frameworks, known as Flex, for building applications that are more complex than traditional Flash applications, which typically consist of animated text and graphics. Recent beta releases of Flex have added support for communicating via Web services as well as retrieving and updating data in corporate database systems. Adobe is taking a page out of Microsoft's developer marketing playbook by providing a freely downloadable Flex SDK while also selling a full-featured integrated development environment (IDE), known as Flex Builder. Flex Builder is based on Eclipse—an increasingly popular Java-based open source IDE—and although the current beta release of Flex Builder runs on Windows only, Adobe has plans for a Mac OS X version as well. Adobe's developer aspirations are also demonstrated by two of its recent hires. Mark Anders, who cofounded and led the development of ASP.NET, now works on Flex for Adobe, and Sara Williams Spaulding, who was a key part of Microsoft's highly successful Developer Relations Group and MSDN Network, now runs developer relations at Adobe. May Be Hard to Pull Off Microsoft says WPF/E will be available in stages. A preview ("CTP") version will be available in the third quarter of 2006 and a final release of the Windows and Mac versions is scheduled for the first half of 2007. The version for devices is not due until the second half of 2007. However, it could be hard for Microsoft to pull off the project, particularly the goal of producing a 2MB version of the .NET Framework that supports WPF/E by the first half of 2007. Any delay gives Adobe time to build on the popularity of Flash and gain traction with Flex, which is already in beta. Resources For more information on WPF and XAML, see "New Graphics Framework Built Around .NET, XML" on page 12 of the Nov. 2005 Update. The Adobe Flex homepage is labs.macromedia.com/flexproductline. Video presentations from Mix '06, the conference where Microsoft announced the changes in WPF/E, will be available in April 2006 at blog.mix06.com/virtualmix. |