March 16 2010, 01:30
Categories: English | Programming | Rants | Windows Tags: windows mobile | windows phone | visual studio 2010 | expression blend
I do a lot of work for a company that builds line-of-business applications based on Windows Mobile and .NET Compact Framework. Our apps are typically run on business-oriented Windows Mobile devices, most often ruggedized hardware built by manufacturers such as Intermec or Symbol. For a long time we’ve been wondering what’s going on with Windows Mobile development with respect to Visual Studio 2010 and future versions. There are significant limitations in the current development stack in terms of user experience, and for a long time we’ve had an almost desperate need to know the roadmap of these things.
Therefore, I’m currently at MIX in Las Vegas to get as much information as possible on what’s really going on with the developer story around Windows Mobile (no, not Windows Phone development – that stuff is pretty obvious – what we need to find out is what’s going on with Windows Mobile development). And what I’ve found out so far is not uplifting. Frankly, I’m pissed off to the point where I need to write about it, so here’s the story. It’s a complicated situation, so bare with me.
The Past
When Visual Studio 2010 Beta 1 came out, all mobile development features (Smart Device projects, .NET Compact Framework, Mobile WinForms designer, Device Emulator etc.) were mysteriously missing. People started asking questions, but Microsoft was almost completely silent. A few vague mentions here and there stated that “Microsoft was committed to providing mobile development support for Visual Studio 2010, but could not share more information at this time”.
When Visual Studio 2010 Beta 2 came out, mobile development support was still MIA. People such as me, and dev shops such as the one I work for, started worrying. Microsoft remained largely silent, but started saying “we’ll have more to say at MIX”.
When Visual Studio 2010 RC saw the light of day, mobile development support was still nowhere to be seen. Hopes started fading that the mobile development features would be reintroduced into the product, because by now it was surely too late. Let’s face it: if a major block of functionality is not in the RC, it’s not going to be in the RTM build either.
All through this time, details started to emerge about Windows Phone 7, and it was obvious that it was a very different beast. It gradually became obvious that the developer story around Windows Phone 7 would be totally awesome, that it would revolve around Visual Studio 2010 and Expression Blend 4, and that it would involve Silverlight and XNA. But confusion remained around how this related to Windows Mobile 6.5 and below. Would existing Compact Framework application carry forward to Windows Phone 7? Would the new development stack also run on Windows Mobile 6.5 and below? What the hell were we supposed to do with all existing Windows Mobile applications if Visual Studio 2010 could not be used to work on them? Would we be stuck with Visual Studio 2008? You get the idea.
I was at PDC09 in Los Angeles in November last year and tried to get some of these questions answered. Well, that didn’t happen. Not only was the whole event very low on Microsoft representation (probably because the economy went down the drain that year), but the people who were actually there closed like clams as soon as anyone mentioned the word “mobile”. Apparently, because anything related to Windows Phone 7 was under such heavy secrecy, things such as Windows Mobile development support in Visual Studio 2010 became subject to the some secrecy sort of by association, even though they really had nothing to do with any of the stuff that was so sensitive. A Microsoft employee listened politely to my questions during Ask the Experts, asked me to send them in email to him, and promised to get back to me with answers. That never happened, despite sending friendly reminder emails twice.
Then a few weeks ago Windows Phone 7 was officially unveiled, and any development-related questions were answered with the standard “ask us again at MIX”.
The Present
After speaking to some Microsoft people here at MIX this morning, I can now confirm the following.
- Applications written for .NET Compact Framework 3.5 on Windows Mobile 6.5 and earlier will not run unmodified on Windows Phone 7. Parts of the code will carry forward, because things are still .NET. Basically, anything that does not deal with UI and does not do COM or Win32 interop should carry forward with relative ease.
- The development stack for Windows Phone 7 is brand new (based on Silverlight and XNA) and will not support Windows Mobile 6.5 and earlier. It is not an evolution of the mobile development features in Visual Studio 2008, but rather it was built from scratch using newer technologies and targeting only Visual Studio 2010.
- The mobile development tools for .NET Compact Framework 3.5 and Windows Mobile 6.5 and earlier will not be re-added to Visual Studio 2010. Developers writing apps that need to run on Windows Mobile 6.5 and earlier will have to keep using Visual Studio 2008.
- Microsoft will not continue to innovate on Windows Mobile 6.5 and earlier, nor on the development tools targeting that platform.
- If you’re writing business-oriented apps for business-oriented devices (e.g. the kinds of devices that Intermec and Symbol et. al. are making, typically ruggedized and equipped with barcode readers etc.) you are not likely to be coding for Windows Phone 7 anytime soon, because Windows Phone 7 currently is almost exclusively consumer-oriented and the chances of these device makers making devices based on Windows Phone 7 are very slim, for a number of reasons.
- Applications on Windows Phone 7 will run in a tightly controlled managed sandbox, and interop with device hardware is limited to the kinds of interactions that Microsoft decides to surface first-class in the managed APIs (typically cameras, sensors, etc.) That means no such stuff as barcode readers. However, there is an interesting possibility for device makers to expose additional custom hardware as local IP endpoints so that applications could potentially communicate with them using the network stack.
- SQL Server Compact will not be available on Windows Phone 7.
The combination of these facts leaves shops like us in a veritable twilight zone. We would like nothing more that to rewrite our apps using the new platform and developer stack. Unfortunately, that’s not our call to make. There is a solid barrier between the Windows Mobile 6.5 world on one side, and the Windows Phone 7 world on the other. Neither the development platforms nor the apps written for them can cross this barrier. Hence, the devices we target need to move to the new platform first, which is unlikely to happen. So we are forced to stay on the old developer platform, which means not only continuing to struggle to create anything beyond the most primitive of user experiences, but also doing so in an old and outdated IDE!
Now, I’m usually a very vocal advocate of making clean breaks with the past in order to create something better for the future, so when Microsoft finally does exactly that, shouldn’t I be happy? Well, if you think about it, that’s not at all what they are doing here. Rather, they are leaving something existing behind in favor of something brand new that serves a completely different purpose. Windows Phone 7 does not replace Windows Mobile 6.5, because the former is completely consumer-oriented whereas the latter is primarily enterprise-oriented. The new development platform as shown off today here at MIX is simply outstanding, breathtaking, amazing – it’s everything we want mobile development to be! There’s just one problem: it targets a completely different set of devices and customers, and therefore we don’t get to code for it.
In other words, we now actually have two completely separate mobile development platforms, with completely different target devices and customers. The “older” platform will still be around for quite a while, because there’s nothing yet to replace it - I’m fine with that! There is no compatibility or interop between these two platforms – I’m fine with that too! What I’m not fine with is the fact that the older platform is not carried forward as-is to run within Visual Studio 2010! The fact that the newer platform also has the word “mobile” in its description is not a valid reason, because they really have nothing to do with one another. The fact that they both deal with mobile development is almost coincidental.
I’m not asking for a new and greatly improved version of the Windows Mobile 6.5 developer stack (although that would have been nice) – I understand that Microsoft chose to focus on the consumer story now. I’m only asking that they allow us to keep using the same developer stack with the new IDE, so we can at least take advantage of the IDE and language improvements. Including the existing mobile developer toolset in Visual Studio 2010 in addition to the new stuff would have been the right thing to do, and I can’t imagine that it would have been particularly hard. Instead, they just chose to drop it from the product, leaving Windows Mobile 6.5 developers to rot in hell with Visual Studio 2008. That’s what pisses me off.
The other thing that pisses me off is that Microsoft has been so nonchalant about informing software vendors of their plans. A lot of shops (including ours) could have really used this information a year ago when the decisions were made (and believe me, we have really been trying hard to get these answers). It would have helped a tremendous deal in our strategic planning to know that the platform on which we have bet our business would be dropped from Visual Studio in the 2010 timeframe. This information could have been shared publicly without disclosing anything about Windows Phone 7, and that would have been the right thing to do.
The Future
Looking forward, I have heard some hints today that the enterprise side of things is being discussed and thought about for the future. Microsoft focused on the consumer story for this release to fend off the competition in that space, but a more business-oriented version of Windows Phone 7 and the accompanying developer stack might very well be coming in the future. Essentially built on the same stack of technologies, but with a less constrained runtime execution environment and a different deployment story.
If and when that happens, devices makers such as Intermec and Symbol would be more likely to get on the new platform, and then shops like ours could move away from the old platform for good. For now, however, we are left to rot in hell.
Rate this post
Currently rated 4.0 by 4 people
- Currently 4/5 Stars.
- 1
- 2
- 3
- 4
- 5