Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

At work we have a few older projects that are stuck on .NET 1.1 and VS 2003. While these are probably to much work now to move forward I'm wondering if the effort to keep our newer projects up to date will be worth it. Specifically we would be looking at moving about 30 projects from .NET 3.5 to .NET 4.0 and VS2008 to VS2010.

My Questions for the community are:

Do you move your projects along as new tools and libraries become available or just start the newest stuff in the newest versions?

If you do move forward have you found the benefits out weigh the cost of the upgrade?

share|improve this question

closed as too broad by gnat, GlenH7, durron597, MichaelT, Snowman Aug 23 '15 at 23:51

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

up vote 2 down vote accepted

We have about 30 small and medium sized projects, and generally take the approach that we migrate projects when we do non-trivial work on them. Occasionally, we undertake a consolidation exercise to move the oldest projects to the latest versions.

Of course, this means that our dev environments have multiple versions of Visual Studio, the .Net framework, SQL Server, IIS, Source Control, browser, etc.

Despite having to keep all these different tools up to date, this ad hoc approach actually works quite well.

Migrations that usually go very wel:

  • Visual Studio Versions (but see below)
  • Core SQL Server functions
  • .Net Versions
  • Source control (from VSS to Vault)

We don't usually migrate between languages unless the application is trivial.

Migrations that have been problematic:

  • DTS to SSIS
  • Reporting Servives. Different versions of SSRS are supported by different versions of Visual Studio.
share|improve this answer

There are two types of upgrade to consider here:

  • Upgrading the solution to a different version of studio
  • re-factoring the solution to run on a newer framework

In the later versions of visual studio you can upgrade the solution to VS10 and still target a previous framework. I do this frequently as I don't enjoy having every single version of the IDE on my main box. On most projects this upgrade is done correctly through the wizard that you get if you open an older studio solution in the newer studio. I do this as soon as everyone has installed and is comfortable with a higher version generally.

Re-factoring to take advantage of the newer framework is more tricky and I would not necessarily do it unless I was undertaking a significant change already as there are often many adjustments that have to be made manually after the change in target.

share|improve this answer
Just note that if you need a Crystal Reports production release, VS2010 won't support Crystal from VS2008. Yes, I found this out the hard way :( – HardCode Dec 3 '10 at 18:39

I would definitely upgrade an ASP.NET 1.1 or 2.0 project if I needed to make significant changes to it.

If it's just puttering along, needing no work other than the odd copy change, leave it be. But it you have to add any real new functionality, it's worth doing the upgrade.

I've not encountered any problems that took more than minor effort to fix. Now, I'll concede that I haven't upgraded any massively complex projects from 1.1, only simple ones. But I've upgraded big sites from 2.0 to 3.5 (admittedly not a huge change between those two versions) without issue. And found it well worth doing so, if only to get access to LINQ when writing new functionality.

I wouldn't consider upgrading a 3.5 project to 4.0 just for the sake of doing so. Only if you really need or want something from the 4.0 framework.

As for Visual Studio versions, absolutely. We work in VS2010. I upgrade any project or solution that was last saved in an older version. I've never seen any issues upgrading the solution file to a newer Visual Studio.

share|improve this answer
Thanks. The oldest .NET 1.1 project is massive and financially critical to the company. – Mike Dec 3 '10 at 17:21

Tricky question, because there are a lot of factors at play.

On the one hand, keeping current will make your life much better in the long run. Eventually hardware and operating systems will outrun your code libraries, and you'll either have to do a huge upgrade, under pressure, or you'll have to deploy some evil kludge environment.

On the other hand, spending a lot of time updating existing code will make your deliverables look like crap. In the business world, you seldom get credit for things not breaking, and, ironically, you often get credit for fixing things that only broke because you neglected them.

I say use your judgment. Keep mission critical stuff up to date, and let older, less relevant code fall by the wayside.

share|improve this answer
yeah, just keep copies of the tools too! One reason to not 'lease' or otherwise use hosted services for your dev tools. – MIA Dec 4 '10 at 1:23

Not the answer you're looking for? Browse other questions tagged or ask your own question.