Visual Studio 2010 testers unhappy with help

Visual Studio 2010 comes with a brand new help system, based on a local help server rather than a database plus viewer as in the past. There is also an option to use Internet-based help for the most up to date content.

Sounds good, but developers are not happy. The problem: the new help appears to have no index of contents. You are meant to navigate by search, then perhaps navigate forward and back using the table of contents tree that appears on the left.


In the old one, you could use the index to find keywords quickly:


It turns out that many users prefer the old approach:

This is terrible. Productivity will go to zero without an index. Online help is junk, even on a fast connection — it can never be as fast as my local PC and when I am programming, I need instant answers.

says one commenter.

Microsoft says:

We realize the importance of delivering a keyword index, but we were unable to deliver it in our first release. In this V1.0 release of help system, we first implemented an improved search capability in order to deliver a more familiar, consistent online and offline experience. We then implemented a keyword index feature based on our search catalog. Unfortunately, the results did not meet our quality bar and we determined that this feature would require more work than the Beta 2 timeline allowed. We are looking at implementing it for at future release.

The odd thing is, there is a third-party viewer called H3Viewer which was apparently put together in a short time using Delphi and the new APIs. It turns out that Visual Studio’s Help is actually an early example of a new Windows Help System called Help 3, and is designed with a comprehensive API for developers. If you set the default help viewer in Visual Studio 2010 to H3Viewer, it works more like the old one, complete with index:


I can’t actually recommend H3Viewer in the current  beta. It takes ages to read 440,000 index entries every time you start it up and view the index pane – a message notes that “a late fix in the RC release has slowed down the reading of index items dramatically”. In addition, it does not cope well if you set your help preference to online. Still, H3Viewer will likely improve.

Speaking personally, I don’t mind the idea of search-based help, provided that the search works really well. In practice, it is often easier to Google for what you want to know, bypassing the official help completely, though that may mean getting to the same place by another route. Nevertheless, a reliable online reference is important and it seems that a lot of developers do in fact use the local index.

Windows Phone 7 Series and Microsoft’s partner problem

I watched Microsoft’s Steve Ballmer, Joe Belfiore, and Andy Lees introduce Windows Phone 7 Series. It appears to be a complete departure from previous iterations of Windows Mobile, in fact borrowing more from Zune than it does from earlier Windows phones. At one point, Lees noted that it has a “new core OS” optimized in partnership with Qualcomm, though I would not rest too much speculation on that one phrase.


Unfortunately, the piece that I am most interested in, which is the developer platform, was not much discussed. It is to be unveiled at Mix next month in Las Vegas. Ballmer did say:

We raised the platform on which people can build … a new foundation with a rich set of development tools, built in and complete service availability that software developers can assume as a foundation.

Make of that what you will. I’d be surprised though if Silverlight is not a big part of the development story, along with revamped Windows Live services. I guess I’m expecting Microsoft to deliver with Silverlight something similar to what Adobe is doing with Flash and AIR – AIR for mobile devices has just been announced – but without the breadth of support across devices that Adobe has achieved.

We have been told that Flash will not be part of Windows Phone 7 in its first version, so it looks like it may live in its own development world to some extent.

The demo at the press launch has been well received, and it looks likely that Microsoft is creating a more usable phone than earlier generations. That’s good, though it is telling that it took Apple with iPhone and perhaps Google with Android to convince Microsoft that maybe the Start menu and a cut down Windows API wasn’t the best way to do a phone.

In the absence of technical details, what interested me most were the comments about how Microsoft relates to its partners. It is a hot topic for me. I am taking heat for talking about a poor experience on WIndows 7 that is really the fault of 3rd parties. The problem is that the partner system which worked so well for Microsoft in the early days of the PC is now working against it, and an unpleasant experience of a Windows 7 netbook is a symptom of that.

Clearly Microsoft also understands this. Ballmer noted that

We want to lead and take complete accountability for the end user experience … have more consistency in the hardware platform, more consistency in the user experience, but still enable [partner] innovation

Translation: we are being hammered by OEMs who wreck our product with poor quality hardware and add-on software.

But how will Microsoft change this aspect of Windows, whether on the desktop or a device? “There’s a bit of a conundrum here,” said Ballmer, and he is right. If Microsoft tries Apple-style lockdown, it may run into anti-trust trouble and/or drive OEMs to Linux. If Microsoft does no more than talk the talk, then the problem remains.

It is true that Microsoft is strictly specifying minimum hardware. That’s nothing new; it has done this since the earliest days of Pocket PC.

I’m inclined to think it is just talking the talk and that nothing will change. Still, here’s Lees on the same subject. He begins by restating Microsoft’s belief in the partner model:

One of the things we’ve kept constant is our belief in the partner model. There are three reasons why partners are fundamental to our business. Firstly, they add rich experience and expertise across a broad spectrum of areas, hardware, software and services. Second, is … scale. We need partners to develop, market and support Windows phones at this scale. Third, partners meet diverse needs by providing customers with choice. One size does not fit all. People want different kinds of phones.

It’s odd how Apple thrives without all that “rich experience and expertise.” But never mind. Lees adds:

We have changed how we work with them. The goal is to improve the quality and consistency.

So Microsoft says with one breath how it just loves the partner model, and with the next that it is changing it. We all know why it wants to change it. It is because it is broken, though Microsoft cannot bring itself to admit it out loud.

The question: which of these near-contradictory statements do you believe? That it is sticking with the failing partner model, or that it is changing it? My guess is the former, because I am not sure that Microsoft really has the will or even the ability to change, but I would like to be proved wrong.

Oh, and Lees says that the mobile operators:

… have tremendous value to add. They are not just dumb pipes. Our model is about enabling those innovations so that they can add software and services and benefit from our … platform.

I understand why Lees said this; but I find it hard to think of tremendous added value from the operators. Apple’s iPhone success is partly thanks to its skill in working round them.

Nokia Maemo, Intel Moblin gives way to MeeGo

Nokia’s Maemo operating system, a Linux distribution for mobile devices, is being merged with the Intel-sponsored Moblin distribution to form MeeGo, under the direction of the Linux Foundation:

MeeGo combines Intel’s Moblin and Nokia’s Maemo projects at the Linux Foundation to create one open source uber-platform for the next generation of computing devices: tablets, pocketable computers, netbooks, automotive IVI and more.

says the Foundation’s Jim Zemlin.

Watching the joint Intel and Nokia interview it seemed to me that this is more Maemo than Moblin, especially since Nokia’s Qt framework and Qt Creator IDE is mentioned as the primary application development platform for MeeGo.

The most significant factor is that Intel and Nokia will now be backing the same mobile OS. You would expect this to have an impact, though I guess the move is an attempt to win back mindshare that has gone to Android, the up and coming mobile OS from Google.

Although both Android and MeeGo are based on Linux, the Android OS has a completely different development model based on Java rather than C/C++.

Flash developers are now mobile developers

Adobe’s announcement of AIR for mobile today at the Mobile World Congress means that any Flash or Flex developer can compile an AIR application that will run on a supported mobile device. I understand that AIR for mobile is a subset of desktop AIR, but does include Flash Player 10.1, local database support with SQLite, and access to local storage, so it is not lacking in capability. Apparently it will be possible to have a single .air file that will run across desktop and devices, perhaps with conditional code to account for differences in device capability. Some features, such as multitouch and accelerometer support, are more likely to be found on a mobile device than on a desktop, though things like screen size and available storage will be more constrained.

Until now it has been Java that comes closest to providing a common runtime across desktop and devices. Flash promises a more consistent runtime as well as stronger multimedia and graphics capability. Thanks to Apple, the app store concept is now well established and AIR applications fit well with this model, though not exclusively so. It will also be possible to deploy AIR applications from your own web site. I think there will be considerable interest and take-up for AIR on mobile.

Initial support will be for Google’s Android OS, with others to follow – with the exception so far being Apple.

This is where it gets interesting. Whereas Flash in the browser is blocked on Apple iPhone and (as far as we know so far) iPad, Adobe has a native compilation option for Flash applications targeting these devices, preserving some kind of deployment story. Clearly from Adobe’s perspective it would be better and easier if Apple allowed the AIR runtime onto the device. It’s less clear that Apple device users are really losing out though, and there is even an argument that they benefit, if you think that native code is a better solution for a mobile device.

In other words, the introduction of AIR for mobile does not really put any pressure on Apple, since Adobe has already come up with a good alternative. There may be some indirect pressure, since growing use of the Flash runtime outside the browser may also increase its significance within the browser.

A lot hinges on the quality of the mobile AIR runtime, particularly in respect of memory usage, which has tended to be greedy in desktop AIR.

Miserable user experience continues with Windows 7

I’ve just spent some time with a non-technical person who has just signed up for a £30 per month Vodafone internet dongle, which came with a “free” Samsung netbook running Windows 7 Starter Edition.

The user is returning it under the terms of the 14-day trial offer.

Why? Well, the requirement was for a small computer that would be connected to the Internet everywhere, within reason. The user also purchased Microsoft Office along with (for some reason I could not discern) Norton Internet Security.

The good news: the internet connection was fine when connected, something like 2.5Mb download speed on a brief test.

The bad news:

1. The little netbook was badly infested with trialware. Browsing the web was difficult because the already-small screen area was further filled by two additional toolbars, one from Google and the other from MacAfee, leaving barely half the screen for actual web pages. Google kept on prompting for permission to grab user data about location and who knows what else.

2. MacAfee was pre-installed and the task of removing it and replacing it with Norton was tricky, bearing in mind that Norton was delivered on a CD and there was no CD drive. MacAfee was constantly warning that the user was at risk.

3. Two Samsung dialogs popped up on each boot asking the user to do a backup to external storage.

4. The Vodafone connect software was bewildering. In part this was thanks to a complex UI. There also seemed to be bugs. The “usage limit” was preset at 50MB separately for 3G and GPRS; the deal allowed 3GB overall. Changing the usage limit seemed to work, but it reverted at next boot. Then it showed usage limit warnings, as 50MB had already been transferred. Once while I was there the Vodafone utility crashed completely.

5. The Vodafone dongle wobbled in the USB slot. Whenever it was attached it would come up with a dialog asking to run setup, because it included a storage area containing the utility software, even though the utility was already installed.

6. The Vodafone connection is managed through an icon in the notification area that you right-click to connect or disconnect. Windows 7 had hidden this thanks to the new default behaviour of the notification area, which is a usability disaster.

7. The Vodafone connection was set to prompt for a connection. It did sometimes display a prompt, but apparently on some kind of timeout, since it quickly closed without actually connecting. The prompt then did not reappear during that session.

The user concluded that it was too complicated to use, hence the return.

Now, for most readers of this blog I am sure none of the above would matter. We would uninstall MacAfee and Google toolbar, not buy Norton but simply install Microsoft Security Essentials, maybe use Google Chrome for a leaner browsing experience, remove any other software that was not essential (and there was other trialware that I did not have time to investigate), unset the silly option to hide notification icons, find a way of taming or replacing Vodafone’s connection utility, and all would be fine.

I am not sure of the value of the Vodafone contract; the deal is not too bad if you need to connect while out and about, though there is a heavy penalty charge of £15.00 per GB if you exceed 3GB in a month, and it is quite unsuitable if, as in this case, it is your only Internet connection and you plan to use it for things like BBC iPlayer.

That’s an aside. What I find depressing is that despite Microsoft’s efforts to improve Windows usability in 7, the real-world result can still be so poor.

In this case, most of the blame is with Vodafone for poor software, and Samsung for taking all those trialware fees. I guess it is not that bad a deal, since there is almost always someone around who is willing or enjoys solving these puzzles and getting everything working.

Still, here is a customer who wanted and was willing to pay for a no-frills, always-connected internet device, and was let down.

Here also is the market that Apple aims to satisfy with iPad, and Google with devices running Chrome OS.

I wish them every success, since it seems that the Microsoft + OEM Windows culture cannot easily meet this need.

Buzz buzz – Google profile nonsense

Google has launched a new social media service called Buzz (as if you did not know) and I’m on it – here’s my profile.

You had better follow that link too; because whenever I visit the profile when signed into Google I see this not-too-subtle banner:


“Your profile is not yet eligible to be featured in Google search results”. This statement with its bold yellow highlighting seems intended to make me anxious, though I’m not sure why I should care about this deliberate defect in Google’s search algorithms. Having said which, it is not actually true, as a quick search verifies:


Still, let’s presume that I believe it and want to fix it. I click the link to learn more. Does it tell me how to make my profile “eligible”? Not as such. Without making any promises, Google suggests that I should add more details,

For example, include details such as the name of your hometown, your job title, where you work or go to school.

It also wants a little link exchange:

Link to your profile on another website (for instance, your blog or online photo album)

and finally

Verify your name, and get a "Verified" badge on your profile.

I’ve been round the verify circus before; if you try to do it, you wander round the near-abandoned Knol for a while before discovering that it only works, some of the time, for USA residents.

Frankly, it all seems a bit desperate. My Google profile is just as I want it already, as it happens, though I could do without the big deceitful banner.

That said, this profile nonsense does nothing to allay my sense that Google has designs on me and wants more of my personal data and internet identity than I am inclined to give.

Buzz is a hard sell for me. I like Twitter, because it is single-purpose, works well – in conjunction with one of the many desktop add-ons such as Twhirl – and I never feel that it wants to take over my life.

Still, I am buzzing now, especially since I’ve linked it to Twitter so all my tweets arrive there too. We’ll see.

XML literals come to PHP via Facebook: XHP

Facebook engineer Marcel Laverdet has written up the XHP project on which he has been working at Facebook, and which he says is “quickly becoming a cornerstone of front-end PHP development at Facebook”. XHP enables XML fragments to be valid PHP expressions. In addition, most HTML elements have been pre-defined as variables. The project is hosted on github and you can read a quick summary here. PHP inventor Rasmus Lerdorf has had a quick look and says:

The main interest, at least to me, is that because PHP now understands the XML it is outputting, filtering can be done in a context-sensitive manner. The input filtering built into PHP can not know which context a string is going to be used in. If you use a string inside an on-handler or a style attribute, for example, you need radically different filtering from it being used as regular XML PCDATA in the html body. Some will say this form is more readable as well, but that isn’t something that concerns me very much.

Lerdorf goes on to express concern about performance, but says that in combination with APC caching it is much better, and with HipHop compilation to native code becomes “a viable approach”.

One of the benefits here is that getting XML markup out of quoted strings means that it can be checked as it is parsed, so that errors are caught earlier. There are parallels with Microsoft’s work on Linq (Language Integrated Query) which pulls database queries into the language, and XML literals in Visual Basic 9.0. Ideally, developers should not have to hide code such as SQL, XML or Javascript within strings that are not checked for valid syntax until runtime.

This might also re-ignite the debate about whether XML literals should be in C#, now also gaining more attention because of the popularity of ASP.NET MVC.

Should IT administration be less annoying?

I am more a developer than an IT administrator but sometimes find myself doing (and writing about) admin-type tasks. I am usually under time pressure and I find myself increasingly irritated by annoyances that take up precious time.

It seems to me that there is a hidden assumption in IT, that usability is all-important when it comes to end users, but that the admin can tolerate any amount of complexity and obscurity, provided that the end result is happy users with applications that work. The analogy I suppose is something like that of a motor car with an engineer who gets hands grubby under the bonnet, and a driver who settles back in a comfortable seat and uses only clean, smooth and simple controls to operate the vehicle.

That said, any engineer will tell you that some vehicles are easier to work on than others, and some documentation (whether paper or electronic) more precise and helpful than others. No engineer minds getting oil on their hands, but wasting time because the service manual did not mention that you have to loosen the widget before you can remove the doodah is guaranteed to annoy.

A little detail that I’ve been pondering is the Internet Explorer Enhanced Security Configuration found in server versions of the Windows operating system. This is a specially locked-down configuration of IE that is designed to save you from getting malware onto your server.

That’s a worthy goal; and another good principle is not to browse the web at all on a server. Still, as we all know the first thing you have to do on a Windows server is to install patches and drivers, some of which are not available on Windows Update. In addition, not all servers are mission-critical; I find myself setting them up and tearing them down on a regular basis for trying out new software. It may therefore happen that you open up IE to grab a patch from somewhere; and it is a frustrating experience. Javascript does not work; files do not download. The usual solution is to add the target site to Trusted Sites – thereby giving the site more trust than it really needs. The sequence goes something like this:

1. Browse to vendor’s site to find driver.

2. Notice nothing works, click Tools – Internet Options – Security, Trusted Sites, Sites button, Add.

3. Click Add, forgetting to uncheck the box that says “Require server verification (https:)”.

4. Get this dialog:


5. Wonder briefly why IE did not spot that you are adding a site with an http: prefix before rather than after you clicked Add.

6. Uncheck the box, repeat the Add, go back to IE, refresh page to make scripts etc run and likely lose your progress through the site.

7. Find that the site now redirects to and you have to repeat the process.

A minor issue of course; but if this is a sequence you have gone through a few times you will agree that it is annoying and not really thought through. Perhaps it is to do with Windows server having a GUI that it does not really need; on Linux or even Server Core you would use the fine wget utility having found the url of the file you need using the browser that you have running alongside your terminal window.

I also realise there are may ways round it, ranging from something to do with laptops and USB pen drives, to installing Google Chrome which only takes a few clicks, does not require admin rights, and happily downloads anything.

What prompts this little rant is not actually IE Enhanced Security Configuration, which is a familiar enemy, but a day figuring out the subtleties of Microsoft’s App-V, brilliant in concept but not the easiest thing to set up, thanks to verbose but unhelpful documentation, dependency on SQL Server set up in the right way that is not clearly spelt out, lack of support for Windows x64 clients except in the beta of App-V 4.6 which is available from a Microsoft Connect URL that in fact reports non-availability; you know the kind of thing:


At times like this, the system seems downright hostile. Of course this does not matter, because administrators are trained to do this, and don’t mind provided that the users are happy in the end.

But I don’t actually believe that. In Windows 7 Microsoft deliberately targeted  the things that annoy users because, under pressure from Apple, it figured out that this was necessary in order to compete. The result is an OS that users generally like much better. The things that annoy admins are different, but equally affect how much they enjoy their work; and effort in this area is equally worthwhile though less visible to end-users.

In fairness, initiatives like the web platform installer show that in some areas at least, Microsoft has learned this lesson. There is, however, plenty still to do, especially in these somewhat neglected areas like App-V.

My final reflection: when Microsoft came out with Windows NT Server back in 1993 I expect that being easier to use than Unix was one of the goals. Perhaps it was, then; but Windows soon developed its own foibles that were as bad or worse.

Visual Studio 2010 RC arrives with go-live license

Microsoft has made the Release Candidate of Visual Studio 2010 available for download to MSDN subscribers. From tomorrow (10th February) the same release will be available to everyone. There is a go-live license so you can use this in production if you wish, though if the full release comes in April as planned, it hardly seems worth it in most scenarios.

What’s new since the beta? Jason Zander says mainly performance. Note that the Chief Architect of Visual Studio is Rico Mariani, formerly Microsoft’s .NET performance guru, which is encouraging in this respect.

The blow-by-blow account of issues with the RC is here.

Whatever your views on the direction and future of Microsoft’s platform, there’s no doubting the huge scope of this release, though in my view the company has not communicated this particularly well, saying too much about things like SharePoint development, top of its list of walkthroughs but still an ugly business, and not enough about features such as IntelliTrace debugging, or the new ability to float windows out of the IDE and onto a second display, which will have a more immediate impact on developers. Note that the Visual Studio IDE has been re-built using WPF (Windows Presentation Foundation), and that it comes with a the first completely new version of the .NET Framework since 2005.

Silverlight 4.0 is another area of interest, though I understand that it will not be complete in time for this release. Visual Studio 2010 will have Silverlight 3.0 out of the box, with the ability to install the 4.0 preview release and eventually the final release as an add-on. I’ve also heard that Silverlight 4.0 is not yet supported at all in the RC, so be cautious if this is your area of work – you may need to stick with the last beta for the moment.

New is not always better, of course. I’m interested in hearing from developers working with Visual Studio 2010 – whether performance and stability issues have been overcome, and what you think of it overall.

Palm Ares: an online IDE for WebOS development

I spent a few minutes trying out Ares, Palm’s web-based IDE for WebOS, the OS used in the Palm Pre smartphone.

Ares is in public beta and I’m not going to pretend I found it smooth going. No doubt it will be fine after a little patient learning. It is amazing, with drag-and-drop visual interface builder, code editor, source code management, debugger, and logging.  Microsoft’s Internet Explorer is not supported in any version; you need Mozilla Firefox 3.5 or higher, Apple Safari 4.0 or higher, or Google Chrome 3 or higher.


The online IDE uses a bit of Java but seems to be mostly HTML and Javascript. If you try to launch the application, you need a Palm emulator running locally, but you can preview in a browser without any local dependencies.

In order to try Ares, you have to sign up for Palm Developer Center. As part of the process, it appears that you have to give Palm permission to charge fees to your PayPal account, which I disliked, though membership is free for the time being. Of course you hope that any fees will be more than offset by the steady chink-chink of income from your app sales.

Is this the future? My immediate reaction was to be very impressed; a little further in and I was greatly missing the comfort of Eclipse.

Still, this stuff will get better; and the idea of just browsing to an URL to continue development is compelling.