All posts by onlyconnect

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: , ,

Common misconceptions about Rich Internet Applications

Ryan Stewart blogs about Why do tech journalists get Rich Internet Applications so wrong.

I don’t agree with everything he says, especially this one:

AIR is a difficult thing to grasp because running web apps on the desktop hasn’t been done before.

I suppose there might be a way to define “web apps” that excludes everything prior to AIR, but it would be difficult. I’m composing this blog post in Windows Live Writer – I consider this to be a desktop web app, especially the latest version which synchronizes the local copy of a post with what is on the web. Many of the widgets and gadgets in Vista or Yahoo! Widgets or the Mac Dashboard are web apps. Apple’s iTunes is a hybrid web/desktop application; it includes an online store that runs outside the browser. Any Java or .NET application which retrieves data from the internet via web services is a web app. Even running HTML applications on the desktop has been done before, for example with Microsoft’s HTML Application model. If you exclude anything that is not cross-platform then the list is shorter – but you still have Java and Mono; iTunes is cross-platform; and even AIR won’t do Linux in its first release.

That said, I agree that there is a far amount of confusion out there. Half the problem is that the terms are overloaded. As I understand it, Adobe’s use of the term Rich Internet Applications includes almost any web application beyond HTML, whether or not it is running in the browser – though usually what Adobe really means is “any application that uses the Flash runtime”.

I often see Silverlight and AIR treated as close competitors, yet Silverlight is for browser applications, and AIR is for desktop applications.

Some assume that Silverlight is Windows-only, but it is not, it runs on Intel Mac and Mono is doing amazing work with Moonlight – Silverlight for Linux.

Another wrong assumption is that because AIR applications run on the desktop, they can do anything a native code desktop application can do. In reality they have no access to native code libraries.

Adobe had us all thinking that it was somehow adopting Google’s Gears – I was fooled by this – but it is not at all; it just happens to have the same open source database engine in its own project.

So the other reason tech journalists “get it wrong” is because the whole “beyond HTML” story is complex and hard to put across in a few words. That is what we are meant to be good at, but there is always a danger of over-simplifying to the point of inaccuracy.

Technorati tags: , , , , ,