Monday, January 11, 2010

Windows Mobile versus Windows CE

As I explore the wonderful world of really small screens, I’m having to choose between Windows CE and Windows Mobile.  There are pros and cons to both, and what I’m going to list below is just what I think I know at the moment.  Of course what I thought I knew on Friday has changed a bunch, so I’m sure I’ll be contradicting myself in later posts, if not calling myself a complete idiot.

Windows CE is a term used to describe a variable set of OS components that can be deployed to small devices with limited memory and storage.  If you look at the .NET Framework options available in CE apps, you’ve got very little available.  Certainly no WPF, no Silverlight, no native WCF.  You basically need to build up your OS as you go with these components.

Windows Mobile is built on top of CE, but comes with a more standard (i.e. heavier) package of components and applications built into the OS.  The basic environment to run the application is baked in, but you can add elements from CE type SDKs as needed.

At this point, there seems to be the following CE Environments:

  • 4.2 – Deprecated and generally not supported
  • 5.0 – Most devices can run 5.0.  Its like the XP of the Device world.
  • 6.x – Various incantations of 6.0 are out there, but the adoption rate by the major vendors is slow.  Motorola (who bought Symbol), is the big player in the scanner market, and they’re just releasing their 6.x machines this year, and 6.x hit the market in 2006.

Windows Mobile is on a slightly different pace

  • 5.0 – Seems to be fading fast
  • 6.0, 6.1 – Are the mainstay of the Windows Mobile Market place, though being surpassed on phones by 6.5
  • 6.5 – The current version, though wikipedia says it was never really planned.  It just sort of happened.  I hate it when that happens.
  • 7.0 – The light at the end of the tunnel, coming out sometime this year.  Rumors are swirling that the whole OS will be built in Silverlight.  Microsoft has to come out with something just kick ass to stay relevant in the market.  If Windows Mobile 7 is still based on CE, then that’s a good indication, that they’ve given up on everything except bar code readers.

As I was evaluating the various options, I got that creepy feeling with Windows CE, that if I tied my client to it, or worse, spent the year learning it myself, it would be obsolete before the calendar read 2011.  I was also finding it really difficult to just get going with it, finding the tools I needed to build the software, figuring out how to deploy it, and how to build an emulator for it.  I can’t say that from an architectural perspective, it’s a bad product, but in my gut, I knew it was a dead end.  It hasn’t updated in 4 years.  Even COBOL has been updated in the last 4 years, right?

So I switched my project over to target Windows Mobile 6.1, and within an hour or two (most of that being downloads of SDKs), I was up and running, and realizing just how little real-estate is on a 240px-320px screen.  Now it’s a matter of figuring out Windows Synchronization Services, and I’m off and running.

Tomorrow, I’ll post what I did to get my Visual Studio 2008 ready to build and test the Windows Mobile app, which is something I need to document anyway, since I’ll be getting a new work computer soon, and will need to reinstall it anyway.

Let me know if you think my evaluation is off target.  I’d appreciate the feedback.

No comments: