|Professional Services||Second Signal||Presentations||Andrew's Blog||Support|
On my list of long overdue tasks was upgrading from Microsoft Visual Studio.NET 2003 to version 2005. I've been holding off because I have so much source code that the idea of refitting it isn't appealing at all. Now that I've gone and done the upgrade on one of my machines and worked with it a few days, I thought I'd share a bit about the results.
First, to be safe, my entire source code folder set was archived off to CDROM. It turns out that wasn't strictly necessary. When the new version opens and converts an old project, it offers to make a full backup first. It puts the backup in a subfolder to the current project. On top of that, once nice thing I've found is that the 2003 and 2005 versions seem to peacefully coexist on the same workstation.
I'm primarily still using VB.NET rather than C#. It doesn't really matter because they compile to the same byte code and use the same resources in the .NET Framework, so neither speed nor stability is any different. I stick with VB because I'm comfortable with it, and C# is too much like Java to be useful. Its close enough that the differences are annoying as hell if you go back and forth.
At least with VB.NET, the biggest difference you notice right away is that you get a bunch of compiler warnings. For those most part, these are simply a result of a different set of defaults. The compiler now complains any time you declare a variable and then don't use it, for example. The other thing you may run into if you do as much multi-threaded programming as I do is that the .NET framework will now throw exceptions if you access some UI elements from threads which did not create them. It turns out these elements are not in fact thread-safe. This is actually fairly easy to re-code, and the practice of having threads write to shared objects which are then read and updated by the thread controlling the UI is probably better anyway. The unfortunate thing is that the help system in VS.NET 2005 is just as bad as it was in 2003 -- maybe even worse. I could have told the compiler to ignore the first kind of errors but instead took the opportunity to clean up the code. It didn't take long. Dealing with the thread safety issue to longer, as I tried a few different code patterns before I settled on what would work for me.
Some unexpected goodies were to be found in the new version as well. I particularly like the new "Application Settings" class. This is handy way to very easily save and restore all the local settings you put on your dialog boxes and application controls. You define each setting in a simple table, and even define if the setting is user specific or is global to the application for all users. Nicely done. The other cool feature I've seen but haven't yet tried is the ability to auto-update. The application can be told at build time where to go look for updates on the web via ftp or http, and how often to check. Auto-update then, would be a built in feature of any application. I'm looking forward to trying this out.
Please wait while your document is saved.