Breaking Changes in .NET Framework 2.0

When it comes to upgrading older VS.NET applications from earlier version of the .NET Framework -- that is, from 1.0 or 1.1 to 2.0 -- developers are always concerned to know what's to worry about as they make the switch. The MSDN Breaking Changes Web page documents changes to the .NET Framework (called Run-Time Breaking Changes), or Visual Studio's design, compile and project upgrade functionality (called Design-Time Breaking Changes), which can cause application and development scenarios to act differently in the 2.0 version from the 1.0 and 1.1 versions.

This doesn't mean the changes will actually break an application (though most of the runtime items will do just that); it simply means they will cause changes in behavior during design review and testing that could potentially impact an application. Lest you grow overly concerned about this, the latest word from Microsoft is that less than 30 such items have been documented to date.

Breaking changes occur for a variety of reason that range from standards compliance, responses to customer feedback and functionality requests, and accuracy or correctness. Here's an example of the kinds of things you'll find documented in the two sets of breaking changes we point to in the preceding paragraph.

  • Standards compliance (run-time): the ISO tag for the Kyrgyz Republic (aka Kyrgyzstan) in System.Globalization was changed from KZ to KG.
  • Customer feedback (run-time): The ASP.NET project model was updated to remove the V1 model for view links, because no known Control vendors used the API, and because it was poorly documented.
  • Accuracy (run-time): Numeric precision for floating point values was increased in certain cases, partly because the CLI specification already indicated this change was possible.
  • Microsoft.Office APIs (design-time): The extensibility library removed its reference to Microsoft.Office.dll and switched to Microsoft.VisualStudio.CommandBars.dll, to remove dependencies on this no-longer needed dll. Any add-ins or macros that call that dll must be updated to use the new dll instead.
  • V1.1 Controls with a non-Boolean AutoSize property throws an exception when used in V2.0 designer (design-time): The .NET framework now uses a Boolean AutoSize property in its Control, so third-party non-Boolean AutoSize property causes an invalid cast exception. The name or type of the third-party property must be changed to avoid this exception.
  • XslTransform throw InvalidOperationException in V2.0, XsltException in V1.1 (design-time): If the user calls Execute on a transform class without loading a stylesheet, this results in an InvalidOperation Exception in V2.0, but an XsltException was thrown in V1.1. This is a genuine design error that must be corrected to avoid either exception.

    Browsing around the Design-Time and Run-Time Breaking Changes pages will therefore help developers figure out what's different about the environment that they must rework or repair when migrating V1.0 or V1.1 applications to V2.0 of the .NET Framework. Definitely worth a visit to anyone facing that situation!

    Ed Tittel is a writer and trainer whose interests include XML and development topics, along with IT Certification and information security. E-mail etittel@techtarget.com with comments, questions, or suggested topics or tools to review. Cool tools rule!

    This was first published in May 2006

  • There are Comments. Add yours.

    TIP: Want to include a code block in your comment? Use <pre> or <code> tags around the desired text. Ex: <code>insert code</code>

    REGISTER or login:

    Forgot Password?
    By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy
    Sort by: OldestNewest

    Forgot Password?

    No problem! Submit your e-mail address below. We'll send you an email containing your password.

    Your password has been sent to:

    Disclaimer: Our Tips Exchange is a forum for you to share technical advice and expertise with your peers and to learn from other enterprise IT professionals. TechTarget provides the infrastructure to facilitate this sharing of information. However, we cannot guarantee the accuracy or validity of the material submitted. You agree that your use of the Ask The Expert services and your reliance on any questions, answers, information or other materials received through this Web site is at your own risk.