Scott's Column
More on Visual Studio 2005, Windows Vista (Build 5308)

April 1, 2006
By Scott Lewis

Last month I mentioned that I had just downloaded and installed Windows Vista. It was too close to the end of the month to write about it, so this month I will go into some detail on Microsoft's next big operating system upgrade.

I have done a bit more with Visual Studio 2005, and my boys and I entered our cars in the Pinewood Derby.


I finally got off my lazy butt and reinstalled Splinter Cell (the original). Now I just have to find the time to go through the training mission and see if I can pick up where I left off.

Pinewood Derby

pinewood_cars.jpg (90572 bytes) Before I get too far into Visual Studio or Windows Vista, let me tell you how our Pinewood Derby cars went. This was a very good year for my boys. Last year my youngest came in 4th out of 8. They gave trophies to 1st - 3rd. He was heartbroken. My oldest came in 8th out of 10. I came in 3rd out of 6, and this helped my sons because they could "share" my trophy.

This year my youngest (Ethan) came in first. It was amazing. It wasn't even close. Our Cub Scout Pack bought a new track, with timers and everything. They displayed the times on a big screen. We saw that my son was significantly faster than all the cars before him. In fact... his best time was the fastest time of the day... until the Webelo IIs ran. This is the oldest group, which included my oldest son (Joshua).

There was one car in the Webelo IIs that was quite a bit faster than my youngest. My oldest son was just slightly slower than my youngest and came in second place in the Webelo II category. But my oldest picked up an extra award for the "Best Design" of the entire Pack. I was especially proud since the design was all his... and he painted it all by himself. All I did was a little sanding (I didn't want him to wear out his fingers) and carve and fill it to get the weight right.

I placed 4th... out of 4. My car was very nose heavy (the only place weights would fit. One of the kids running the event said I should try running it backward so the weight would be at the rear. The idea being that as the car starts leveling off the weight in the back is still pushing the car. Nope! I ran 5/100ths of a second slower, and that was the difference between 3rd and 4th.

My youngest came in last place in the overall championship. It was all computerized and it was a double elimination thing. His first run in "the finals" was against the Webelo with the fastest car. That was his first loss. His second run he lost with his slowest time of the day (only 2/100ths of a second slower than his fastest time) and he was eliminated. Just dumb luck. He was in lane two, and I am sure that lane one was about 1/100th of a second faster than lane two. The Webelo that won the championship never ran in lane two. By chance every run he made was in lane one.

My sons were so glad they won. When my youngest posted such fast times everyone wanted to know how we did it. I told them that when we put it together the body rubbed against the rear wheels (notice that it is wider just above the rear wheels). I had to remove the wheels and drill out some clearance. Then I touched up the paint so it looked good and reinstalled the wheels. When I did this the wheels were wobbly. It would only sit on three wheels at a time. The body would teeter. I can only surmise that this gave slightly less rolling resistance. Hey, his car was the second faster car of the event.

Visual Studio 2005

For those of you that have not been reading my column for long... or who have but just don't pay attention... I make my living as a Programmer/Analyst. For the last 4-1/2 years I have been programming in Visual Basic 6. VB6 was released back in 1998. Clearly I am behind the times. I totally skipped over Visual Basic .Net 2002 and Visual Basic .Net 2003. However, I must not be alone as there is a lot of information on Microsoft's Visual Basic section of MSDN on upgrading from VB6 to Visual Basic 2005 (notice they actually dropped the .Net in the name).

I have almost finished my first Visual Basic 2005 application. It was challenging, and fun. It was also a pain because I didn't want to use "legacy" methods. VB 2005 does support some VB6 items, and I wanted to write my first application the "right" way. This slowed me down a bit, but overall I am glad I did it.

I used the new ClickOnce feature when deploying the application... even though it will only be run from one machine. I wrote a program that updates our HP mainframe after we print orders. This replaces a troublesome VB6 application. We needed to add some new features, and I thought this would be a great starting point. The ClickOnce allowed me to test the deployment of an application to a typical end user workstation. The program will run on an application server so that it can be monitored by our operators. However, the user ID that the program runs under has the lowest access rights of any user on our network (I believe).

Once the dependencies where installed (the .Net 2.0 Framework and Microsoft's MDAC) the application is actually installed by the user. Even though this user had no rights to install software it can install a ClickOnce deployed application because the ClickOnce method does not alter the system in any way. No registry changes, no special disc requirements, no special permissions, etc. The install puts a "token" executable deep in the user's documents and settings path. When the application is run it looks to an address on the network (a URL) to check for updates. If no updates are found it runs the version of the application cached locally when it was installed. If an update is required the update is downloaded to a special cache and run from there.

The user never knows where the actual program cache is. And this cache is specific to the user, so it cannot interfere with any other users on the computer, or effect any other programs. Cool! The downside it that each user must run the install themselves. You can't install a ClickOnce deployed application to run for "All Users" of a computer.

I managed to write in an e-mail notification into the application. This was much easier than in VB6. I did my best to put in as much error trapping as possible. Because I get most of my errors from the NetBase calls I just had to plan for bad status codes being returned.

I expect to do more sweeping testing soon. Since I finished reverse engineering the NetBase calls. I have not received a single error. I have run a couple of hundred items through it so far. The existing application gets at least 200 errors a day. Granted, we normally run 1500 to 2000 items through the current program a day. Maybe I will get errors when I start running that kind of volume.

I'll let you know.

Windows Vista (Build 5308)

O.K. Because I only publish this column once a month, you have probably already read plenty about Microsoft's latest "beta" of the next version of Windows, called Vista.

But that won't stop me from tell you what I think of it. I will do my best not to rehash what everyone else is saying, and tell you what you won't read elsewhere.

I saw the download to this build, build 5308, on February 24th. I setup my fileserver to download it that weekend. I burned the ISO image to a blank DVD disc (yes, Windows Vista will be on DVD, not CD), and installed it on Monday, February 27th.

The first thing I noticed was a link to restore a version of Windows. I assume this was put there in case you were trying to do as I was and create a dual boot setup. This option would allow you to reset an older version to boot properly. I clicked on the link and it had an empty list and a button labeled "Load Drivers." Success!

As you may recall from my earlier attempt to install the previous build of Vista it was not able to detect my SATA drive (which my motherboard puts into a RAID setup even though it is only one drive). I needed to load drivers so that the Windows XP could see the drive just for its install. Now Vista has the ability to load drivers to see my drive. I was confident I would be able to get it running.

I got out of the recover section and clicked to start the install. Let me tell you... it takes a long time. So long that I just walked away from my computer to return later. I returned a while later to see that my monitor was black, and the little light that shows green to indicate power was blinking between green and amber. Amber represents a low power setting to conserve energy. I assumed the screen saver of Vista kicked in. However, nothing I could do would wake it up. The system was basically dead.

I pressed and held the power button until the computer turned itself off. Then I started it up again. Everything was fine, and Vista booted up. However, all was not perfect. The system was very slow. The mouse pointer would move long after you moved the mouse itself. It was like playing a game at 1 or 2 frames per second. I assumed (and hoped) this was because I had not yet installed the video drivers. Although you would think that Vista would have turned off some of its eye candy when it was running that slow.

Because of how slow the system was I did not have the patience to try to map a drive and install the video drivers I downloaded to my file server the last time I tried to install Vista (build 5270). It was actually easier to download them again from nVidia. This time I download them directly to the desktop. I updated the video drivers and halfway through the install the mouse became very responsive. Success!

I was surprised that I did not have to reboot during the video driver install. The system seemed relatively snappy. I say relatively, because it was faster than I remembered the last build of Vista, but not quite as snappy as Windows XP. Granted, there is A LOT more eye candy, and of course this would require some extra resources. My computer is as I upgraded it last year about this time. It has an AMD Athlon 64 3000+ CPU, which is the slowest 64-bit chip that AMD made. It also uses the old socket 754 socket, so the fastest chip I would be able to upgrade to would be the 3700+. I also have a nVidia GeForce 6600 GT video card, which was the best bang for the buck card... last year.

In other words, my system is not cutting edge, but I am running a cutting edge operating system. I should expect some performance issues.

About the green/amber blinking on my monitor. I did some digging and found that is what Vista does when you put your computer in "Sleep" mode. Sleep mode is like suspend mode on most laptops, but with a twist. When the computer goes into Sleep mode it saves the current environment to disc (so it won't be lost if there is a total loss of power) and it keeps the system in a very low power state. When you wake it up it only takes a couple of seconds to bring the system back to life.

Well, that's the theory. In practice it looks like it needs a bit of work, but that may be a result of my older hardware. To bring the computer out of Sleep mode you press the power button like you are turning the computer on. (Remember, I pressed and held it to force it off when I didn't know how to revive it.) I tested this out and sure enough it came back in a couple of seconds. The beauty of flashing the monitor green/amber meant the monitor came to life right away, as opposed to taking 30 or more seconds to warm up and show an image. I like it... a lot.

However, all is not gravy just yet. After the system came to life the mouse did not move at all, and the system started freaking out. It eventually did a switch user (or log off the current user) and brought me to the user logon screen. I clicked my user icon and in about another couple of seconds I was in Vista nirvana. I need to play around with this some more, but my guess is that it sent me back to the user logon on screen for security purposes or because of some issue with my old hardware not fully supporting the Sleep mode. Either way, it inspires me.

I have one suggestion on the Sleep mode. Please allow us to assign a key on the keyboard to wake up the computer. As it is now you have to press the power button. I have my computer behind my desk. I don't like having to walk around my desk to hit the power button. This is one of the reasons I leave it on all the time. I just turn off the monitor, which is why I find the monitor issue so nice since I have to wait far to long for my monitor to warm up and show an image.

Let us assign a key on the keyboard for the wakeup. Maybe the space bar, but no other key. Anything so I don't have to go around my desk to wakeup my computer.

Vista has a lot of eye candy. I know, you Mac fanatics have had this stuff for a while. We Windows users have not. I like some of the eye candy. The Alt-Tab task switcher is very cool. I like the miniature displays of each application, and that you can click on one of the items to go directly to it without having to alt-tab-tab-tab all the way through the list.

For even more eye candy there is an alternative to the Alt-Tab task switcher. Press Windows-Tab (the Windows key, usually located between the left Alt and left Ctrl keys on your keyboard) and all the applications line up in a Rolodex fashion. Then you use your scroll wheel on your mouse to "roll" through them. Lift the Windows key and the top one is displayed. The animation is slick, however the text displayed in the windows is not legible. So if you are scrolling through a few Word documents you may not be able to tell them apart. I have found the Alt-Tab version leaves each window a little more recognizable. If you love eye candy, by all means use the Flip 3D task switcher, but I think I will stick with the standard Alt-Tab task switcher.

You also get mini windows of an application when you hover the mouse over its item in the task bar at the bottom of the screen. If there are multiple stacked windows (like Windows XP, multiple items of the same program will be "grouped") you see the screens stacked like a deck of cards, and you can move the mouse vertically over each one to see its own mini view. All in all it is very cool. The speed of this is fast enough on my machine that I would use it. I would expect newer hardware to do an even better job.

A new utility (for lack of a better term) is the Sidebar. I like and and hate it at the same time. It has a lot of potential, but seems to have a few very annoying bugs. Basically the sidebar is a utility to hold "gadgets" that will always be running on your computer. The gadgets are mini applications that can do any of a number of things. Weather information, clocks, application launchers, RSS readers, etc. You will be able to download gadgets and install them. This is supposed to be like the Mac. However it sucks compared to the Mac.

My two biggest complaints are the bugs in its running mode, and the lack of gadgets. Let's start with the gadgets. Vista comes with 4 or 5 gadgets. It also links you to a web page on Microsoft's site to download more gadgets. Unfortunately, the gadgets page is for gadgets that work under the new Microsoft Live web page thing. So you can get plenty of gadgets for Microsoft Live, but they don't actually work with Sidebar. I assume this will be fixed or adjusted in the future. The pains of Beta software.

The main bug with the Sidebar is in the way it stays on the desktop. If you click on the icon in the quick launch to show the desktop then the Sidebar is also minimized. When minimized it does not go to the task bar at the bottom of the screen, but to the notification area (by the clock). To get it back you have to right click on the Sidebar icon and click Hide Sidebar. Then right click it again and click Show Sidebar. That makes it visible, however, if you click on the desktop it minimizes again. I have not been able to find out how to consistently get it to stay on the desktop once you click the Show Desktop icon. What I end up doing is bringing up other application and minimizing them manually then the Sidebar forgets that I hit the show desktop.

The Sidebar runs along the side of the desktop. It takes up a fair amount of screen real estate, but that should not be a problem as long as it is behind more important applications. But you can "undock" applications/gadgets from the Sidebar itself. These gadgets can be placed on the actual desktop, but they still get minimized when the Sidebar gets minimized. There needs to be a better way to show the desktop... with the Sidebar gadgets still displayed.

The Sidebar reminds me of the widgets in Stardock's Desktop X. I hope Microsoft gets it working better than it does now.

The Media Player in Vista (version 11) has some issues. When I launched it I was asked if I wanted to allow it to show me a special set of VCR style buttons when it was minimized. Good enough. But when I was playing around with the task switcher, and Flip 3D task switcher, media player would not show up when it was minimized. I never could find a way to turn off the minimize to VCR buttons option to turn it off. So I am stuck with it.

I am having trouble dealing with the lack of traditional menus in Vista. Explorer and Internet Explorer are driving me crazy. There is no menu bar, so you can't click on File, Open... or Favorites, Google. You have to click on one of the buttons for displaying your favorites and it pops out a list. I don't really like it yet. I will have to spend time with it. Also, the Tools menu has been moved to another button in the application. I don't think this massive change in the way things work is good. Remember, the Menu Bar was a standard feature of a Windows application. I put them in my own applications. Explorer and IE have moved all these menu functions to other places in the interface. If everyone does this you will lose the ease of moving from application to application because everyone will put the Tools, Option thing is a different place.

I will have to load up Visual Studio onto Vista and see what happens to my own applications. How will menus change, and how hard are they going to make it for developers to try and maintain a consistent look across applications? I'll let you know in the future.

Let's keep one thing in mind. An operating system is supposed to run your applications. I installed the 64 bit version of Vista. I did this for two reasons. First, I have a 64 bit CPU, so it seemed logical. Second, I have one 64 bit application I wanted to try out. FarCry is a first person shooter. I have talked about it before. I downloaded the FarCry 64-bit patch. I had to go through the full 5 disc install, then apply the 64 but patch.

All was not good. When I launch the 64 bit version of FarCry it displays the auto video configuration utility. Unfortunately it would only takes its auto-detect settings. This was Medium across the board. When I play it the last time I set everything to Very High, except one setting for lighting that I set to low to prevent a weird super brightness situation.

On Medium it looked decent, but the idea was to get the most out of the visuals. When I tried to change the settings in the game's option screen it said I had to restart it for the changed to take effect. Yep, restarting brought up the utility that sets it to the auto-detect settings.

Let's just play the game and see how it looks. It looked decent.. until I saw anything outside. One of the things I liked the most about FarCry was the lush, bright environments. But the entire graphics went completely wacko. You couldn't see anything except wild streaks of bright green and blue color. You could not make out anything.

I am sure it a video driver problem.

I said... an operating system is supposed to run your application. Well, Vista failed that task.

Although I plan to play around with Vista some more, it is not quite ready for prime time.


I spent way too much time on Vista this month. Sorry! I wanted to convey a more realistic view of the new operating system instead of reeling off features like all the other reviews you can already find on the Internet.

I am glad the Pinewood Derby is over. Both my boys advanced this month. My oldest is headed for the Boy Scouts and we have a week long summer camping trip in Oklahoma this summer. That should be fun.

My boss finally hired a backup for me. He is working out pretty well already. Once I have him up to speed on the way I troubleshoot problems, I should be able to go on vacation without worrying about carrying a pager.