How Managed Code Helps Developers Build Richer Applications More Productively

REDMOND, Wash., May 23, 2005 — Microsoft today unveiled Beta 1 release candidates of its next generation of Web services and Windows presentation technologies — the latest milestone in the company’s effort to prepare developers for the next version of Windows, code-named “Longhorn,” and improve software development with managed code.

Software developers will get a first chance to try out the new presentation subsystem for Windows, code-named “Avalon,” and a set of Web services technologies, code-named “Indigo,” that comprise Microsoft’s new programming model for building and running connected applications. Also debuting is a test version of “InfoCard,” a code name for technology designed to make it easier and safer for people to manage their personal online information or “digital identity.”

With these releases, developers can experiment at building the next generation of Windows applications, designed to connect people, groups and organizations and make mountains of digital information meaningful and actionable.

PressPass spoke with David Treadwell, corporate vice president in the Developer Division at Microsoft, to learn more about how these new technologies will benefit developers.



David Treadwell, Corporate Vice President, .NET Developer Platform, Microsoft Developer Division

PressPass: Why is managed code so important?

David Treadwell: Managed code makes it easier for developers to write high-quality software more quickly. We are making managed code available to developers today through the .NET Framework, and in the “Longhorn” era through WinFX, the programming model for the next version of Windows. The bottom line is that developers can spend more time concentrating on the features in their application that provide them with a competitive advantage.

There are two important things. The first is quality. We call it “managed code” because many aspects of the software developers write are “managed” by the common language runtime (CLR) that is part of the .NET Framework and will continue to be a part of WinFX. This means that by default developers have a strong starting place when it comes to security and reliability.

The CLR is responsible for handling things like basic security checks on software, as well as handling all memory management, which means that it’s easier for developers to write quality code without doing any extra work. Potentially dangerous things such as memory leaks and buffer overruns happen in substantially fewer circumstances because the programming practices that can create such situations, such as pointers, just aren’t used by developers if they write managed code. Even writing a deployable application gets easier with managed code through technologies such as “ClickOnce.” It’s hugely easier to write high-quality code and to build tools to check code quality on managed code than it is in unmanaged code.

The second reason is productivity. The framework we’ve built for managed code not only gives developers access to the lowest-level operating system functionality (a la Win32), it also provides a high-level set of classes and controls that simplify common coding tasks by enabling developers to call a class library rather than writing a bunch of code themselves. A simple example: if a developer wants to sort an array in C with Win32 (an unmanaged scenario), they’ll write several hundred lines of code. In Visual Basic or C# (a managed scenario) they’ll write just one. More complex examples include things like the ASP.NET 2.0 personalization classes, which enable a developer to add a line of code to their application that will then enable end-users of that application to customize it and to have the application remember the customizations they made. If a developer had to do that without ASP.NET, it would require writing thousands of lines of code.

PressPass: When did Microsoft start down the path of building a managed code platform for developers? How has it evolved?

Treadwell: We started in 1997 with something we called “Project 42” and the “URT” project. Originally, we were just looking for a way to make COM better, but the more we looked at COM, the more we realized that we could do a lot better by creating a new runtime engine and class libraries. By the time we debuted the .NET Framework at PDC 2000, we’d gotten to a point where we knew that we could build a managed-code developer experience that could eventually sit side-by-side with Win32 as a core Windows programming model. We also knew that it would be a long and hard piece of engineering to reach the richness of Win32. We’ve set some very aggressive goals for ourselves, but I passionately believe that we will eventually see all but a small portion of developers writing managed code and only dropping to unmanaged code for certain scenarios.

Just like the software development world transitioned from assembly language programming to C and other languages in the 1980s, there is a similar transition happening today from C to managed environments.

PressPass: What is WinFX?

Treadwell: WinFX is the managed-code programming model for Windows “Longhorn” and beyond. It takes everything we’ve done with the .NET Framework to date and adds classes that take advantage of new Windows features. For example, in the Longhorn timeframe, WinFX adds classes for the new Windows presentation subsystem, code-named “Avalon,” and the new communication subsystem, code-named “Indigo,” to what’s in today’s .NET Framework. We released beta 1 release candidates of those two technologies today which gives developers a concrete example of what the WinFX programming model provides.

A lot of customers ask me if WinFX is different from the .NET Framework; the answer is that technically it’s a strict superset. That means that everything developers have done with the .NET Framework will carry forward to WinFX. In a way, you can think of WinFX as an evolution of the .NET Framework; it shows that we’re making managed-code programming a core feature of Windows. As we add features to Windows, we’ll be adding classes to WinFX so WinFX will grow over time, just as Win32 has grown over time as the unmanaged programming model for Windows.

PressPass: Why are developers excited about it?

Treadwell: First, I think they should be excited for what the technology can do. WinFX is going to make it easy for developers to take advantage of “Longhorn” features, such as the advanced Web services functionality of “Indigo,” which will enable secure, reliable and transacted messaging. They’ll also have the graphic richness, 3-D and animation capabilities of “Avalon.”

Second, I think they should be excited because WinFX will stand next to Win32 as a programming model for “Longhorn.” This demonstrates the commitment that Windows is making to managed code.

Finally, I think they should be excited because they get all this without having to learn a new programming model. WinFX programming is just a new set of classes added to what they’ve learned since 2000 when we started talking about managed code in the .NET Framework, which is now used by 56 percent of enterprises, according to Forrester Research.

PressPass: How has the WinFX vision evolved since Microsoft shared it at the Professional Developers Conference in October 2003?

Treadwell: At PDC 2003, we talked about WinFX primarily in the context of adding support through class libraries for “Avalon,” “Indigo” and WinFS to today’s .NET Framework. We also talked about it as a programming model just for “Longhorn.” The two biggest changes are that we’re now going to make “Avalon” and “Indigo” available for Windows XP and Windows Server 2003. Also, WinFS will be in beta when “Longhorn” ships.

We’re very enthusiastic about the availability of WinFX on Windows XP and Windows Server 2003 because it will allow many more developers to target WinFX without depending on a specific version of Windows. We frequently get feedback from our customers that they want for us to help them run their applications more places, and having WinFX more broadly available enables this.

PressPass: You mentioned both “Indigo” and “Avalon as prime examples of the functionality WinFX will provide to developers. Please tell us more about both technologies?

Treadwell: “Indigo,” the codename for Microsoft’s next-generation Web-services technology, is a programming model that will enable developers to more easily build secure and reliable applications that can interact and exchange data with other applications, independent of the underlying platform. Indigo extends the .NET Framework 2.0 with additional functionality, enabling the more than six million Visual Studio developers worldwide to build connected systems using the programming languages they already know.

“Avalon” is the code name for Microsoft’s unified presentation subsystem for Windows. It consists of a display engine and a managed-code framework. “Avalon” unifies how Windows creates, displays, and manipulates documents, media, and user interface, which enables developers and designers to create visually stunning, differentiated user experiences that improve customer connection. When it ships, which is scheduled for 2006, “Avalon” will be available on Windows XP, Windows Server 2003 and all future releases of the Windows operating system. When delivered, “Avalon” will become Microsoft’s strategic UI technology.

Beta 1 release candidates are available today from Microsoft’s Download Center.

PressPass: What is the benefit of using “Indigo” in conjunction with “Avalon”?

Treadwell: “Avalon” and “Indigo” extend the .NET Framework with classes for building new user interface experiences and advanced Web services. Together, “Indigo” and “Avalon” enable developers to build connected systems that take advantage of the processing power of the smart client, incorporate cutting-edge media and graphics, and communicate both securely and reliably with other applications regardless of their underlying platform.

PressPass: The “Avalon” and “Indigo” technologies will be available for “Longhorn” as well as Windows XP and Windows Server 2003. What is the benefit to developers in extending this technology to current-generation operating systems?

Treadwell: The single biggest advantage is that it increases the available base of operating systems that can run applications that use these technologies.

PressPass: What can developers do today with the beta 1 release candidates of “Avalon” and Indigo?

Treadwell: Developers can experiment with building the next generation of Windows applications, as well as leverage the skills they have already developed building .NET Framework-based applications. Included as part of the Beta 1 release candidate is a software development kit (SDK) for WinFX that includes add-ins and documentation for Visual Studio 2005 Beta 2. This provides the developer with help files, sample code, debugging support and other features that enable developers using the Visual Studio 2005 Beta 2 to begin experimenting and building applications that use Avalon and Indigo technology.

As with all of our product releases, we are very enthusiastic about receiving feedback from our customers so that we can make sure that the new platforms we are building really hit the mark. We’ve done this through the Community Technology Preview program with great success. The CTPs of “Avalon” and “Indigo” were early builds and the Beta 1 RC represents the evolution of those CTPs that takes into consideration the valuable customer feedback we received so far.

Beta 1 RC is a feature complete build and the developer experience will be very similar to that of Beta 1 with some fit and finish elements. As with any pre-beta build, you may encounter a few performance issues that are being worked out and with each subsequent release of the bits we hope to make the experience even better and more productive for developers.

PressPass: This Beta 1 release candidate also includes new technology called “InfoCards.” What is that?

Treadwell: “InfoCard” is the code name for an end-user experience Microsoft is creating in support of the vision of an Identity metasystem, and to make the end-user experience around using digital identity simpler and safer.

PressPass: How will “InfoCards” be used?

Treadwell: “InfoCards” can be used by any application on Windows to help users organize their digital identities, and use their identities with online applications and services that plug into the Identity metasystem.

Related Posts

Developers Talk to Developers about New Windows Innovations

Q&A: A trio of Microsoft developers working on the next generation of the Windows platform, code-named “Longhorn,” describes how the company’s various new platform technologies will enable the development community to build the next wave of applications.