Summary:
ProductFeedback about Microsoft Windows Mobile, and other mobile OS editions
What's the Windows Mobile platform?
Good question since it seems to keep changing names on me. Long ago, the Earth was created. The benefit of this event is still in question. However, it did eventually lead to the creation of Windows CE.
After Windows CE 3.0, Microsoft figured that Palm was kicking its butt in handheld sales (true). So Microsoft pulled its best card: REBRAND! And thus, Pocket PC is born (and Handheld PC...but that's not on MSDN anymore, is it....). Hardware manufacturers, like for point of sales, had CE 3.0 for their embedded hardware. PocketPC (which was really CE 3.x under the covers) was meant specifically for the PDA market.
Lather, rinse, repeat 5 times...
and we now have the "Windows Mobile platform, powered by Windows CE" (curiously like 'Windows 2000, powered by NT technology'). Did you know CE's still around for embedded hardware/OS designs? Did you know there's a Windows XP Embedded version too for the same thing? And neither are part of Windows Mobile. And they're all mutually exclusive. Confused? Yeah.
So that's a good complaint to begin with, Redmond: too much branding. Developers have to change the story every year as to what they're working on. CE...no, wait that's for the point-of-sales, .Net....well, yeah, but not
all of .Net....PocketPC...well, yea-no. There's Smartphone now as well with an even smaller subset of .Net. Please tell us you're not going to change the branding again.
Some of you might think "Branding? That's marketing speak. Ick. Marketing. Why is branding an issue!?"
Well, branding is
very important to Microsoft and they try to stay consistent in product documentation, product advertising and all the way through to product integration. If you don't know what to look for, you won't find it. If you can't find it, you'll get frustrated and move on to working on an even crazier OS like Symbian. Remember that bit about the Earth possibly a bad idea? Symbian's proof.
---
OK, let me try this one. Windows CE is - since version 2.0, anyway - the name for the box-of-OS-bits that you can buy and use to construct your own device platform. The box also includes Platform Builder, the platform configuration tool. The box-of-OS-bits allows you to pick anything from a completely headless minimal device with no human-interface input up to, well, nearly a full PDA. Some of the components build on each other and some are mutually exclusive (e.g. in-process-only COM versus the full DCOM). Some of the bits are supplied as object code in the form of static libraries which the platform build process makes
EXEs and
DLLs from, others are supplied as source code which is compiled, and still others supplied only in EXE or DLL form.
In CE speak, a specific configuration of CE components is known as a Platform. Pocket PC, Smartphone and Windows Mobile are all platforms configured by Microsoft. Microsoft mandates most of the components which are included in the build, only offering the OEM the choice of adding their own apps and
DLLs, plus drivers to adapt the platform to the specific device.
Version 1.0 was just 'Windows CE' - devices were sold with that name alone. After componentizing version 2.0, the clamshell platform, with a landscape screen in one half and a keyboard in the other, was known as Handheld PC or H/PC. The first portrait 240x320 stylus/soft-input devices were built on CE 2.11 and were known as Palm-Size PC. A certain other manufacturer had a few words about this and the next generation, built on a pre-release of CE 3.0 with a whole bunch of CE 2.12 components, was named Pocket PC. Later on, to differentiate from the third generation, it gained a '2000' version indicator.
Pocket PC 2002 is also based mainly on CE 3.0 components but with some pre-release CE 4.0 changes (the Universal Modem code, for example, uses the structures from CE 4.0). The fourth generation was to be named Pocket PC 2003 (and that's the name used for the SDK, for example) but got redesignated Windows Mobile 2003 for Pocket
PCs. It's based on CE 4.2 components. I have a 4.5G Pocket PC, a Dell Axim x30 running WM2003SE. The Windows Mobile name is meant to indicate that many of the same components are available on both Pocket PC and Smartphone.
OEMs who say their devices run 'Windows CE' are omitting an important piece of information - it's their customisation of Windows CE for their intended market segment. They may supply the 'standard' shell sample (basically the old H/PC shell with an XP look-and-feel) or their own. Most are too lazy to redraw the control panel applets so they fit on the screen properly - I have a device at work which has a 320x240 landscape screen which appears to have been built using the Portrait version of the shell, meaning I can't change the time zone, since that control is off the screen!
A particular app written for one device may be binary compatible with another - or it may not, depending on the combination of components supplied with each device and used by the app.
So, if you want a PDA or a Smartphone, choose Windows Mobile as the OS. If you want something different, design your own platform. As an ISV/VAR, we're conflicted. We deal with ruggedised devices with integrated barcode readers. If we recommend a Windows Mobile device, the customer's paying a bit more compared to the custom platform version (if there are two versions) and we have to do a lot of work to lock it down - inevitably the customer doesn't want their users to be messing around in the settings or playing games on the device. On the other hand, most of the
OEMs' own efforts suck and blow at the same time, and useful stuff is often missing.
XP Embedded is Windows XP supplied as a box of
EXEs, DLLs and drivers which can again be tuned to what you need. Choose Windows CE if you want a small, highly configurable device with real-time capabilities, with the option of picking low-power yet highly performant processors like Hitachi
SHx or ARM. It's great for battery-powered devices. Choose XP Embedded if you want to use standard desktop/server Windows binaries and all the power of the desktop, but accept that this means no true real-time capability and x86 processors only. XP Embedded also requires a much larger amount of storage (minimum image size is about 20MB, IIRC) and memory.
--
MikeDimmick
Highlights!
* .Net Compact Framwork is 9.0E100 times easier (that's 9 googols! that's curiously the same amount of hair dye Dick Clark uses in a year!) to develop for than Symbian, J2ME or that crazy hybrid Sony has. Kudos to making the development easier. Big kudos.
* Intuitive carryover of interfaces and usage techniques from the desktop world. If you know desktop development, you'll grasp Windows Mobile development pretty well.
* Multitasking! A general challenge to anyone who can go from a multitasking OS on a phone (e.g. Symbian60, Smartphone) to a single-tasked OS'd-phone...and not want to shove their slow, crappy phone into the ear of the next person they see flashing a MPX220. (esp. since, as of 8 Oct 2004, you can't buy a
MPx220) * Easy to show/see power. Pocket Internet Explorer. Pocket Excel. Pocket Word. Start menu. Easy to use graphics and windows forms. Talking up the Windows Mobile platform is easy in a boardroom. Explaining the differences between Symbian 60 for Nokia 36xx and 66xx series and Symbian 60 for Sony P-series ... well, you get the picture.
* EASY APPLICATION DELIVERY! This is so under-advertised. Do you realise how easy it is to get an application onto a PocketPC? Anyone coming from application delivery for Nokia or Motorola or Samsung will gladly testify to how unfun it is to get actual running code onto these devices.
ActiveSync rules.
Lowlights!
* Where's the hardware!? Hey, you have lots of support from the development community. But, we can't make applications for non-existent devices. You managed to get Casio, HP and Compaq (pre-merger) to knock out some pretty fly hardware to show off PocketPC. Let's see the same with Smartphone.
* Windows CE 4.2 stuff
might work on a PocketPC or Smartphone. The .Net compact framework
might work on a Smartphone. Guess where you can find a concise, easy-to-understand delineation of the difference between the three environments? Not on MSDN. And an omission here is fine...but Microsoft actually tries to explain the differences with at least 40 documents. A solution that's neither concise, nor easy-to-understand. Discuss amongst yourselves.
* Versioning. Ok, please correct this if it's wrong, but, there's:
*Windows CE 4.0
*Windows CE 4.2
*Windows CE 5.0 (soon to come)
*Windows Mobile for PocketPC 2002
*Windows Mobile for PocketPC 2003
*Windows Mobile for PocketPC 2003 Phone Edition
*Windows Mobile for Smartphones 2002
*Windows Mobile for Smartphones 2003 SE
* That's just the mainstream differences. Hook up the emulators to Studio .Net and you'll find over 10 different deployment architectures for PocketPC 2003, another 8 for Smartphone and then ... (takes shoes off) ... at least 20 Windows CE emulation environments. We're not talking CPU architecture differences here. We're talking feature differences that aren't all that clear without experience. It's muddled to say the least.
* Bluetooth. It's a standard, right? Then why no standard API for the stack? Why do some devices have fun playing together while others act like they're in juvey? Even those devices with the same underlying Bluetooth hardware!? Yeah, yeah...technically this isn't a Microsoft issue...but there needs to be some talking in MSDN about why there's been Bluetooth support for almost a year now and the best solutions to actually
use it come from Broadcom (formerly WIDCOMM) at the cost of $3000. That doesn't even include source code. Bah. The code is there. The tech is there. But it's just not put together well. Want to develop on bluetooth cheaply? Gotta go back to developing on com ports. Bluetooth has a
STACK. Com ports....ugh
--
JesseTilly, initial revision
Product Feedback
* Windows Media Player. Before WMP10 hardware buttons could be assigned, and there was always an option provided to ensure these buttons still, eg: pause playback or go to the next track, even if a different app is in the foreground. This was especially useful when the device is, say, in your pocket and your using a simple program to lock the screen and normal hardware buttons, yet you still want to be able to pause / change track. This was why, for me personally, my device took away the need for an Ipod. Now, however, in WMP10 there is no option to keep these buttons active when the program is playing in the background, and more than 50% of the functionality of my device within my lifestyle has been broken. I'm assuming though that this true for others using WMP10 on various devices and not just the version released for my device (HTC Blue Angel). --PeterM