Microsoft on Visual Studio 2008 and beyond

I spoke to Prashant Sridharan, group product manager for Visual Studio. He told me that Visual Studio 2008, formerly codenamed Orcas, is set to ship by the end of the year, which probably means November or December. Among many new features, he highlighed LINQ (Language Integrated Query), which he classified as a productivity feature, new optimization and analysis tools, and scalability and performance improvements in Team System. SQL Server 2008 will be supported. We will also get designers for WPF (Windows Presentation Foundation), and in due course for Silverlight as well. Shridharan said that the final Silverlight designer might not make the initial release, but will be available shortly after at worst.

I am still puzzled as to why it has taken Microsoft a year from the release of .NET Framework 3.0, which was released with Vista, to come up with non-beta designers for WPF. Shridharan did not really explain the delay, but commented that .NET Framework 3.0 was really an interim release; Visual Studio 2008 will ship more or less simultaneously with .NET Framework 3.5.

I asked whether the direction established with the free Express tools is likely to continue. Shridharan says that it will, but that he feels the current Express line is too complex and confusing for its target novice users. The 2008 range will be similar, but it may be further simplified in subsequent releases. I am not sure how to decode this message. Is it really that the tools are confusing for novices, or is Microsoft giving too much away and wants to draw back a little? The complexity problem is real, but chopping out a few features will not improve it much; it would take radical re-thinking of the whole development approach – think PopFly, which I’ve just noticed also uses the Express word in its slogan, “Express yourself.” See also the note on commoditization below.

I also touched on the question of software factories, about which Jack Greenfield enthused at the architecture conference I attended in March. Will this be surfaced at all in Visual Studio 2008? Well, one thing which was apparent from my chat to Greenfield was that Microsoft’s software architecture strategy is vulnerable to the musical chairs of internal reorganization. Shridharan did say that the Patterns and Practices team is now integrated with the Visual Studio team, which should mean that more of its (most interesting) work is surfaced in Visual Studio itself. That sounds good; but what of Greenfield’s vision for how software factories can transform software development? It doesn’t seem to be one shared by Shridharan, who observed that all the Visual Studio designers are software factories and was vague about future developments in this area. That may mean he is the wrong person to talk to about this, or it might suggest a more conservative approach than Greenfield hopes for. In any event, it seems that it won’t be this release which delivers radical changes in the modeling or software factories area.

Finally, I asked Sridharan about the commoditization of development tools, and whether Microsoft might one day give away Visual Studio in order to promote its platform. He prevaricated a bit. “We’re not a profit centre in the same way as Office. We do make a sizeable chunk of revenue of out Visual Studio … you can have co-existence of free tools with a high-end product on which you drive revenue.”

All true, but the free tools are improving and the trend is in that direction. “We are I think close to an infexion point , but I don’t think we’re quite there yet, in terms of the commoditization around tools,” says Sridharan. “We’re very close. Within Microsoft that gets a lot of debate, and we’re investigating actively. You’re certainly not going to see anything happen in Visual Studio 2008, but over time, who knows?”

Time to stop using non-generic collections

This is one for .NET programmers. Do you use collection classes like ArrayList or HashTable? These are useful in .NET 1.0 and 1.1, but .NET 2.0 and higher has generic collections like List<T> and Dictionary<K,V> which are safer and more efficient. It’s time to tidy up your code, because in Silverlight’s implementation of .NET these non-generic collection types have been removed completely. The BCL Team Blog has the details, together with a handy guide on how to convert your non-generic collections. Of course you can simulate non-generic collections by declaring collections of type Object, so there’s no reason to continue using the old collection types.

Technorati tags: , ,

I broke Vista again

Last time it was Windows Search. This time it was the Start menu. I don’t know what triggered it, but today I noticed something was wrong. When I clicked the Start button, the top level items had all disappeared. There was only a single entry, for All Programs, above which was a large white rectangle whether the other items should have been. After a short while, the Start menu stopped working completely. Clicking the Start button or pressing Ctrl-Esc did nothing at all. I also noticed that the explorer process was using 50% of my CPU time. This probably meant that one of the two available processors in a dual-core box was entirely devoted to some sort of useless loop. On a single processor system Windows might have frozen completely.

I tried a few things. Restarting Windows, of course, and restarting the Explorer process. Didn’t work; same symptoms. I tried the Customize button in Start menu properties, and clicking Use Default Settings. Didn’t work. I tried using Systernals Process Explorer to discover what was causing Explorer to go into a spin. That gave me a stack for the errant thread, but it wasn’t especially illuminating, except that it looked unlikely to be the fault of a third-party context menu handler.

At this point I had to do some other work. Did you know that you can use Task Manager as a crude shell manager?  Just use File – New Task to start an application, and Alt-Tab to switch between applications. Who needs Explorer?

OK, it is just a little clunky. I had another go. Logged on as a different user, and everything worked fine. So it is something in my user profile. Eventually I found the culprit, a registry entry called ProgramsCache at HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\StartPage. Somehow this had got corrupted. When I renamed it, Explorer fixed itself. This registry key seems to store your list of frequently used programs. These are the shortcuts that appear above All Programs but below the pinned shortcuts on the Start menu.

Now, how come the Use Default Settings button doesn’t reset this registry key? Still, at least I can get back to work now.

Loudness wars article remixed

In January this year I wrote an article for the Guardian on the CD loudness wars – the tendency for today’s CDs (and digital downloads) to be mastered for maximum perceived volume at the expense of dynamic range. It’s a subject of continuing interest. Now I see that someone has created a YouTube video which includes several of the quotes I got for the piece, combined with others from around the Net and including most of an earlier YouTube video on the same subject. Great stuff.

Technorati tags: , ,