Category Archives: microsoft

Why developers don’t write apps for Vista

From Evans Data we get this statistic (email address required):

Only eight percent of North American software developers are currently writing applications to run on Microsoft’s Vista operating system, while half are still writing programs for XP, according to Evans Data’s Spring 2008, North American Development Survey. These same developers forecast a fragmented Windows market in 2009 with only 24 percent expecting to target Vista and 29% expecting to continue with XP.

Matt Asay picks this up, saying that 92 percent of developers are ignoring Vista.

Sorry, this is silly. Sane Windows developers are writing apps that work on both XP and Vista. Writing an app that only works on Vista is equally as short-sighted as writing an app that only works on XP. Even WPF apps work on XP. So what are these 8% of Vista-only developers doing? Targeting DirectX 10?

Or did they get a somewhat ambiguous questionnaire and were collectively inconsistent over which boxes they ticked?

I agree that Vista has some problems, but this is not a useful analysis.

Two more interesting questions would be:

1. What proportion of developers are starting new projects that are cross-platform rather than Windows-only?

2. What proportion of developers are starting new projects that run from the Internet with zero desktop install, or maybe just a plug-in dependency?

There is a reason why Microsoft is fighting to establish Silverlight, and why Flex and Flash are suddenly so interesting to developers.

Technorati tags: , , , , ,

Now it’s YahGoog

Yahoo has signed up for Adsense:

By offering Google’s industry-leading technology to Yahoo!, the whole system becomes more efficient, and everyone benefits.

This is efficient in the same way that having everyone run Windows is efficient. Hmmm.

Google observes that the deal is non-exclusive; Yahoo can still sell its own ads, etc etc. I tend to agree with Om Malik, who says:

In my opinion, with this deal, Yahoo has publicly acknowledged that Google is superior to them when it comes to search & contextual advertising.

Yes. But how much does that matter? Outsourcing what you are less good at, in order to concentrate on core competencies, can be a smart business move.

The snag here: advertising is Yahoo’s primary business activity. Here are its revenue figures for the first quarter 2008:

  • Marketing services: $1,818 million
  • Fees: $245,milion

Outsourcing the core of your business is bad PR.

Technorati tags: , ,

UK official tax CD caught by Vista’s virtual store

In the UK, HM Revenue and Customs issues an Employer CD-ROM which calculates tax and national insurance. Small businesses can use it to enter pay details through the year; then at the end of the tax year the application allows uploading of the data as the company’s formal annual submission.

Very handy; but clearly it’s important to backup the data. There is an entry on this in the CD’s online Help:

We recommend that you backup the data after each pay period and keep it separate from the computer.

Good advice; but the instructions puzzled me. It says all the data is in the program files folder (in breach of Microsoft’s guidelines, even though this is a 2008 CD), and that to backup:

Copy the folder named ‘Data’ to your chosen means of backup. (To copy, right click the folder and select ‘Send to’).

I found this surprising because on Vista the Program Files directory is read-only. I checked; and there is no user data in this folder on Vista. Instead, the data is in Vista’s Virtual Store, and you can find it at:

C:\Users\[Username]\AppData\Local\VirtualStore\Program Files\HMRC\Employer CD-ROM 2008\data

There’s a couple of issues here. First, why is the UK government sending out CDs that are not properly compatible with Windows Vista, more than a year after its release? The Virtual Store is a compatibility feature; it is not intended for long-term use.

More important, the backup instructions are plain wrong for Vista users. How many businesses out there have got carefully made backups of a folder that does not in fact contain their data?

In an official application used by many thousands of businesses, it’s a significant blunder.

Digg-style bug reports = great feedback

Long Zheng’s Windows UX Taskforce is notable for several reasons. Zheng devised the site in order to give Microsoft feedback on quirks and annoyances in the Windows Vista user interface. He hid it by designing an application that lets users promote or demote user reports, Digg-style. To give you an idea, top of the list right now is that bewildering dialog that appears when trying to safely remove a USB thumb drive card reader – with 262 votes.

So the site is notable, first, for what it says about the Windows Vista UI; second, for what it says about the number of people who care about it and are willing to submit detailed feedback; and third, because it shows what a great way this is for managing bug reports and feature requests.

Actually, Microsoft already has something along these lines, called Connect. It’s fascinating to contrast Zheng’s quickly-assembled but easy to use site, which is attracting lots of users, with Microsoft’s site that is slower, more complex, and less compelling. It’s incomplete too. How do I submit feedback for Microsoft Word, for example?

It strikes me that software vendors have just been shown a simple and effective way to improve their products. I wonder how many will take it up?

Simple CRUD with Silverlight

I spent a couple of hours putting together a simple CRUD (Create, Retrieve, Update, Delete) application with Silverlight 2.0 beta 2.

Most of the examples I’ve seen use LINQ to SQL; that’s fine, but I wanted to do something without that intermediate layer. Having said that, I ended up in effect writing my own object-relational mapper. Still, it’s nice to know exactly what the code is doing.

I’ve described the project in a little more detail here.

Silverlight developer reference poster shows off DeepZoom

The developer reference poster here shows off DeepZoom as well as providing a handy guide to what is in Silverlight 2.0. Thanks to Joe Stegman.

Tip: use the mouse scroll wheel to zoom in and out; click and drag to move round the poster.

What if you have no scroll wheel? I tried this on a Mac. You can actually single or double-click to zoom in. To zoom out without the scroll wheel … errrmm – you refresh the page. I can’t figure out an alternative.

One of the things I dislike about many Flash and Silverlight apps is the lack of a context menu on right-click. That is, you get a context menu, but it is for configuring the player. This is a case in point: it needs Zoom in and Zoom out on a right-click menu. And keyboard shortcuts. The problem isn’t inherent to DeepZoom, but needs a bit of extra work in the application code.

Technorati tags: , , ,

Bet on Entity Framework, not LINQ to SQL

So says Roger Jennings in his post Is the ADO.NET team abandoning LINQ to SQL? His main points in favour of ADO.NET Data Services (formerly Astoria) Entity Framework:

  • It is the focus of more energetic development
  • It already has richer features
  • It supports multiple database engines, not just SQL Server

As Andres Aguiar, software architect at Infragistics, notes in a comment, this has a lot to do with internal politics at Microsoft:

The Data Programmability Team never owned LinQ to SQL, it was owned by the C# team. That’s why we have two O/R mappers, both teams wanted to ship theirs. The C# team looks to be thinking about functional programming now. The Data Programmability will always be thinking about data. That’s why the EF [Entity Framework] is the safe choice.

Although LINQ to SQL is now (apparently) owned by the SQL Server team, it still doesn’t seem plausible or sensible that both will get equal attention. We also learn from Matt Warren that LINQ to SQL was deliberately tied to SQL Server only:

LINQ to SQL was actually designed to be host to more types of back-ends than just SQL server. It had a provider model targeted for RTM, but was disabled before the release. Don’t ask me why. Be satisfied to know that is was not a technical reason.

Note that this wasn’t necessarily a plot in favour of SQL Server world dominance; keeping the entire stack as a Microsoft stack no doubt makes support easier. That said, to me this is the big weakness of LINQ to SQL.

I was impressed by Astoria when I first saw it at the European Tech Ed in 2007. I am not surprised it is gaining ground.

Expression Blend 2.5 problems with Silverlight 2.0 Beta 2

I hit a worrying error in Expression Blend 2.5 June 2008 preview. In search of a good screenshot, I opened the new Clock sample, and got this result:

The same XAML compiles and runs fine in Visual Studio 2008 with the latest Silverlight 2.0 Beta 2 tools.

Note that if Expression can’t render the XAML, none of its design tools can be used at all.

So what is going on here? Don’t Expression Blend and Visual Studio share the same parser? This kind of problem would soon torpedo any notion of designers and developers working seamlessly on the same code.

I got my screenshot by temporarily modifying the offending code.

Fixing a Silverlight 2.0 WCF reference in a VB application

Another in my recent series on getting Silverlight 2.0 beta 2 working.

If you create a WCF web service for Silverlight, it’s well known that on the server side you have to change the binding to basicHttpBinding (or use the new Silverlight-enabled WCF service). Then you can use the Add Reference wizard in your Silverlight application and code against the generated ServiceClient.

This works in C#, but in VB you may hit this error at runtime:

The error is “Could not find endpoint element” etc, and it refers to your “client configuration section”.

I fixed this by comparing the ServiceReferences.ClientConfig file generated in a VB project with that for a C# project. Check the Contract attribute of the endpoint element. It should be qualified with the full namespace, by default the name of your app. In this example, it would be:

contract="RegSilverlightDemoApp.RegService.IRegService"

However, the VB wizard omits the first part of the namespace; then at runtime, it can’t find the service.

Evidence, perhaps, that C# is the language of choice in Microsoft’s developer division.