Breaking Changes in .NET Framework 2.0

Breaking changes are changes in either the .NET Framework (runtime breaking changes) or Visual Studio (design/compile/project upgrade) that make certain application and development scenarios behave differently from the version 1.0 and 1.1 .NET Frameworks to the 2.0 version. These are not necessarily changes that we have found to be breaking an application; rather, these are changes in behavior discovered during design review and testing that could potentially impact an application. Indeed, in all of our application compatibility testing, fewer than 30 of these have been found to impact an application.

Run-time changes can be classified into two categories: The first is an API-breaking change where the signature of a function changed or a function was removed. In almost all cases these changes were made due to security concerns. The second, more common type of breaking change is a behavior-breaking change where the behavior of a method changed. Examples of this type of change include changing the exception thrown due to a particular error and changing the precision of floating point operations.

All known breaking changes in the .NET Framework 2.0 have been reviewed in detail. Breaking changes were made for a number of reasons, including standards compliance, customer feedback, and correctness. We have attempted to be exhaustive in documenting changes in the attached file, but believe that many of these changes will impact very few users. An example of several of the types of run-time changes follows:

  1. Standards Compliance: The ISO tag in System.Globalization for Kyrgyzstan was updated from KZ to KG.
  2. Customer Feedback: The ASP.NET project model was changed in response to customer feedback.
  3. Correctness: Floating point precision was increased in certain cases. This is something which was already documented in the CLI specification as being possible.

Follow these links to review design-time and run-time breaking changes:

.NET Framework 2.0 Design-Time Breaking Changes

.NET Framework 2.0 Run-Time Breaking Changes