I try to stay away from posts like these that don’t stick to how to do something, but I do entitle myself to one or two a year, so here it is. My rant today is about organizations that don’t allow developers to develop using the latest technology. Visual Studio 2008 has been out for well over a year, has had one service pack already and Visual Studio 2010 is well on its way. This means, you could be well on your way to being two versions behind. Telling a developer that they have to develop with Visual Studio 2005 (or older) is like asking him or her to program with one hand tied behind the back. So what do I account for being the most common reasons for not upgrading? I’ve listed the ones I can think of below. Let’s see how we can mitigate some of these issues.
Fear and being uninformed
In my opinion, I would say this is the most common reason. Fear of the unknown.
“If I install Visual Studio 2008, all of my code will break, and I’ll spend days fixing it.”
Possible but not likely. If you were informed about the project, you would know that Visual Studio 2008 supports compiling to multiple frameworks. This means, that your Visual Studio 2005 project can be compiled in Visual Studio 2008 and target .NET Framework 2.0. It does make a slight change to your project and solution file, but that is the only thing that is changed. All of your code will remain untouched. Then when you are feeling adventurous, you can make the move and target .NET Framework 3.5. If it compiled and works as 2.0, I am 99% certain that it will also work against 3.5.
Why am I so certain? Well let’s review the changes to the .NET Framework. The fact that it is called .NET Framework 3.5 is pure marketing fluff. You are still using .NET 2.0, it just has things like WCF, WPF, LINQ, and C# 3.0 added. It essentially lets you call assemblies such as System.Core which contains LINQ and various other things.
“When I upgraded to ASP.NET 2.0, the migration was difficult.”
I agree, sometimes, the migration wasn’t smooth to ASP.NET 2.0. However, ASP.NET 2.0 was a complete overhaul of ASP.NET 1.1. However, Visual Studio 2008, still uses ASP.NET 2.0, so your code is still going to work great. Plus, they added cool things like the LinqDataSource and the ListView control (which is awesome by the way).
Ok, we are in a recession, I understand that. However, most companies buy Visual Studio in multi-year agreements, which does entitle you to upgrades. Admittedly, I have seen some bigger companies, not buy Microsoft products in volume and buy retail boxes of Visual Studio (which is just throwing money away). I am no expert on licensing, but there is a good chance you may be entitled to the to an upgrade and don’t even know it.
Yes, it does take some time to install Visual Studio 2008 and can take even longer to apply Service Pack 1 (which you really want btw). However, how much time are you losing on your project by not upgrading? Have a task where you need to find some values buried in an XML document? In Visual Studio 2005, you muddle with an XPathNavigator and get the task done in 15 to 30 minutes or so assuming you are good with XPath. In Visual Studio 2008, you LINQ to XML to query your XML document and have the values you need in a convenient anonymous type in less than 30 seconds. That is only one example, but the choice seems obvious to me.
IT Administrator or Help Desk won’t allow it
I feel for you if this is the case. It should be the development lead or architect of a project that determines what tools you use, not someone else that doesn’t even use the project. If a manager, director, CIO says which tools you have to develop with, I encourage you to push for change. These people tend to be the most conservative when it comes to change, so they are almost always going to be against it. However, if you can show him or her how upgrading can save the company time and money, they are going to listen.
Client won’t allow it
When this happens, it is usually one of the above reasons. If you are a consulting company or a staff aug, you are there to bring you professional recommendation. If you think a newer version of Visual Studio will save them time, don’t be afraid to recommend it. I even recommend stating which version of the tools you intend to use in the statement of work. It’s been my experience, that when I express to a client how much time can be saved by upgrading, they have been more than ok with it.
Get on the Cutting Edge
I always thing good companies and developers stay on the cutting edge of the Visual Studio release cycles. These people are installing betas of the products, looking to see how new features can make their upcoming projects go faster, and even deploying things on production on betas when the Go Live license hits. Now is that for everyone? Certainly not, there is the right spot on the edge that is appropriate for every company. However, staying on the cutting edge, can make companies look more attractive to clients as well as make developers more attractive to companies. Think about it. Do you want the developer that knows you can use LINQ to SQL (or Entities) to bust out data access code or the developer that is still reading things into a dataset the way you did in .NET 1.0 (not that I am saying ADO.NET is dead by any means)?
So what are some of my favorite features in Visual Studio 2008 (some of these require SP1)?
- LINQ – I find new ways to use it everyday – whether it is querying a list, string, or whatever.
- LINQ to XML – Anytime I need to read something out of an XML file, this is the way to go. Great for dealing with repeating sections of InfoPath forms too!
- LINQ to SQL – I deal with a lot of projects which don’t need a big elaborate DAL. LINQ to SQL makes this really easy.
- Anonymous Types – Use them with LINQ all of the time. Great way to get typed access to XML documents.
- Automatic Properties – Wasn’t that excited about them at first, but I use them more and more now.
- Property Initializers – Reduces code since you don’t have to create a bunch of constructors to initialize different combinations of properties
- Dynamic Data Web Applications – These seem pretty neat, but I have yet to make full use of one
- Improved WPF Designer
- Silverlight support
The list goes on and on, but you get the point. Of course, this is just my opinion on all of these things, but hopefully, I might have convinced a few of you out there that it is time to upgrade. Some developers may be ok with developing with old tools, but many developers find it particularly frustrating. There is nothing worse than the feeling you get when you find yourself reinventing the wheel by manually coding something that was added to a later version of the tool.