"Orcas" .NET Framework compatibility

As you know, work is currently underway in my group for the next version of Visual Studio which we call internally as “Orcas”.

Visual Studio “Orcas” is designed to enable customers to rapidly create connected applications on the latest platforms and with the highest quality user experience either individually or as part of a team.

We’re shipping the next generation programming framework that includes Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) in Windows Vista. We’re also making this available for the Windows XP platform. Both of these items will be available prior to the release of Visual Studio “Orcas”. So we have been spending a lot of time thinking about how we should service these components. We wanted to make sure that we are really customer focused on how this impacts you to ensure that your experience with the next version of VS is a seamless one.

Jason Zander wrote a blog on Framework compatibility last year in the VS 2005 context which is a good read on compatibility.

The approach we are taking is aimed at minimizing the impact of delivering new features and functionality by servicing existing runtime components in-place and then advancing the platform with new assemblies. Internally we’re referring to this as the “Red and Green” model which I’ll explain below.

“Red” assemblies include things like WPF, WCF and WF (which will ship as part of Windows Vista) and .NET Framework 2.0 that shipped with Visual Studio 2005. Our goal for dealing with “Red” items is to deliver service pack like compatibility. We are going to try very hard to minimize the overall number of changes being done in "red bits" to help reduce churn and achieve very high levels of compatibility.  

“Green” assemblies are where we will be introducing new functionality into the platform. The aim is to have any new feature be additive (for example new controls) rather than a reimplementation of an existing feature (outside of the servicing I mentioned above). Finally we want to ensure that installing any new assembly will not impact an existing application. For example, for C# language in Orcas, we will make a small "red bits" change to allow you to get at the new compiler and the new compiler is then a "green bits" addition.

If you write a component that depends on a “Red” assembly you can be assured that we’re going to do everything we can to ensure binary compatibility for your code even as we update the .NET Framework and WPF, WCF, WF as we move forward. All the major new features you’ll see from us will appear in the “Green” assemblies so you can feel comfortable that both your new and old code will work on the target machine.

The “Red and Green” model will help us deliver a great new product that makes your experience adopting it as easy as we can. Look forward to more details on this as we make more progress.