Heads-up on some end-of-life management: .NET 1.x support in Red Gate’s .NET developer tools

End of life is a bit of a touchy subject, and is often either brushed under the carpet, or dealt with via the “stealth withdrawal” mechanism which, not surprisingly, often doesn’t go down well with customers. [Confession time: yes, we have occasionally done the latter, and yes, this includes a couple of products that I’ve worked on. I know, I know, I’m a bad person, but I’m not going to let this happen again.]

So in the interests of doing a rather better job than we’ve done in the past I wanted to give you an outline of our plans regarding support for .NET 1.0 and .NET 1.1 in our toolset, both of which are now rather long in the tooth.

Whilst I’m not into dropping support for things just because they’re “old” – for example, I’ve no intention of dropping support for Windows XP – increasingly we are finding that there’s no way to support new functionality on these versions of the .NET platform. To illustrate, in ANTS Memory Profiler 5, where this has been most problematic so far, dispose tracking, comparisons, and many of the filters only work when profiling an application running on CLR 2.0 or later.

Almost inevitably one day we’re going to get to the point where, in order to support some new function, we’ll break the .NET 1.0 and .NET 1.1 support. Times change, technologies move on, like it or not, it’s going to happen. But it shouldn’t happen abruptly, and it shouldn’t come as a surprise to anyone.

There’s also the fact that very few people are targetting .NET 1.x these days, and that number is getting smaller by the day, so we’d be expending an awful lot of effort for very little gain to continue support indefinitely. That’s cold, hard commercial reality for you but if you’re one of those people, don’t panic – keep reading, because we have a plan for that as well.

So, here’s what we’re going to do.

  • .NET 1.x support will be deprecated in ANTS Performance Profiler once version 6 is released in Q2 (roughly) this year.
  • It will be deprecated in ANTS Memory Profiler with the 5.2 release, which will be released later this month.
  • We have no immediate plans to deprecate support in {smartassembly}, or Exception Hunter for the foreseeable future.
  • .NET Reflector will continue to support assemblies compiled under .NET 1.x, and will happily run on any framework version from 1.1 onwards.
  • Debugging of assemblies compiled with .NET 1.x will be supported by .NET Reflector Pro into the future, although you should be aware that you can only use .NET Reflector Pro in Visual Studio 2005 and later, and hence it needs .NET 2.0 or later to run.
  • Note that both profilers, along with {smartassembly}, will only run under .NET 2.0 or later already.

For those of you who aren’t clear about what I mean by “deprecated”, it’s simply this: the support will still be in the product, but you should be aware that we may remove it from a future release, so you should consider not relying on it being there indefinitely. In our case it also means that new functionality will often not support .NET 1.x.

So what will happen when we eventually do remove support? Well, there are a couple of things I’d say about this:

  • Most .NET 1.x applications will run unmodified quite happily on CLR 2.0.
  • If you absolutely require .NET 1.x compatibility we’ll still be able to supply you with earlier versions of the profilers that do work with .NET 1.x, although you won’t be able to download or purchase them via our website.

Since I’ve already mentioned that we’re not dropping venerable old Windows XP, you might ask why, and the answer is simply that most of you are probably still running it, and it’s likely to continue to be popular for some time to come. We’ll probably review the situation again in a couple of years but at the moment we’ve no plans to either deprecate or drop support, so breathe easy. We’re all still running on XP whilst we wait for Windows 7 to be rolled out across the company. I should say that some of the new functionality in ANTS Performance Profiler 6 will only work fully on Windows Vista or later because it uses APIs which are only available in Vista or later, but that constitutes a small part of the whole.

Hopefully that’s all reasonably reassuring, but if you do have questions or comments, please post them below.