Breaking Changes from 1.1 to 2.0

So I may be a little late to the game on this, however, its the first time I’ve seen the list which makes me think there are many others that haven’t seen the list of breaking changes from .NET 1.1 to 2.0. A few notables include:

  • “Conditional Grammar ambiguity” – Because of the new nullable syntax, there are certain scenarios where the compiler cannot tell the difference between a conditional operator and the nullable ? syntax. (bool A; for (A ? F() : G(); ; ))
  • “Ambiguity between comparison and generic definition” – The addition of generics has led to an ambiguity between a generic method and function parameters. (int a, b, c; F(a < b, c > (7));)
  • “Ignore ‘remove’ and ‘clear’ directives” – This change only affects web.config and application.config files that remove a section handler declared in a parent configuration file.
  • “FormsAuth should not leave tickets around for 50 years”
  • “<location> path attribute cannot end with any of '.', '/', or '\'.” – In V1.1, a user can put <location path="app/"> in the config file. The config system won't complain about the trailing forward slash, but the problem is that the config settings inside this location tag actually won't get applied in a request to that path.
  • “The title element on aspx pages with a runat server tag was instantiated as a HtmlGenericControl in v1.1, in v2.0 it has its own type HtmlTitle but this doesn't derive from HtmlGenericControl and thus the compat break.”
  • “HttpContext is a sealed class. If users created their own wrapper to expose this and returned their wrapped instance as the Context property for pages / usercontrols, their apps would fail unless they implemented the new properties on HttpContext. “

No Comments