So Visual Studio 2010 and .NET 4 have been released, and they’re awesome. I’ve been using VS2010 since beta 2, and it’s a big step up from 2008 when it comes to the code-editing and designing experience.

Which is sad, because I can’t use it.

You see, Microsoft have recently announced Windows Phone 7, which is an all new operating system for mobile devices. It looks fantastic, and I’m really excited about the announcement. To develop applications for WP7, you must use Silverlight. Again, a great idea and I’m all for it.

However, Microsoft seem to have decided that Silverlight on WP7 will be their only mobile development strategy going forward, and have opted to drop any support for Windows Mobile/.NET Compact Framework in Visual Studio 2010. Basically if you want to continue developing your Windows Mobile applications, you’re stuck in Visual Studio 2008.

Let’s be honest about Windows Phone 7 and the enterprise:

Windows Phone 7 is slated to be released some time at the end of this year. Apparently there’ll be a “classic” version that allows enterprises to deploy their own applications to the device rather than going through the public “marketplace”.

That means that we might see in Australia early next year. More realistically it’ll be late next year.

Even if we do, our company has a significant investment in Windows Mobile devices. We have as many WM2003 devices as we do WM6. There’s no way we can simply throw those away and upgrade all our devices to WP7.

If we go by our historical turn-around in devices, I’m looking at being stuck with Windows Mobile until at least 2012, probably more like 2014.

Since our major system here at work targets both the desktop and mobile platform, we have both kinds of projects in every solution. That means we can’t open any of our class-library solutions in Visual Studio 2010.

So right now we have two options:

1. We split the code into separate solutions (one for mobile and one for desktop), but the mobile solution would still just be “links” to the desktop source code. Then we could use VS2010 to modify the code, but we’d still have to use VS2008 to build the mobile projects. Since the two projects would be separate, there wouldn’t be any instant compiler feedback if a change you made in the desktop project broke the mobile project.

2. We stay in Visual Studio 2008 for all our solutions except maybe the WPF-based desktop application. That’s really depressing, since it means we can’t use any of the new .NET 4 features – VS2008 will only compile all the assemblies it depends on to .NET 3.5.

I kind of feel like I’m stuck under water with Microsoft’s boot on my head. I’ve seen hints here and there that a Windows Mobile development “toolkit” for VS2010 will be released out of band some time in the future, but nothing concrete.