Question: How do you do UI development on Windows CE ?

Windows CE supports an extremely diverse set of embedded devices, ranging from the obvious, and well known devices such as Windows Mobile, Personal Navigation Devices, robotics, set top boxes, pig slicing machines (still need to see if I can get a video of this!), and a whole range of other interesting devices.

Many of these devices require some level of user interaction, and therefore a user interface of some kind - Windows CE ships with the "Standard Shell", which provides a Windows 95/desktop experience, there's also the Thin Client shell, Command Shell, and Network Media Device UI.

But, what if you're building a device that doesn't easily fit into one of the categories above? - perhaps a Set Top Box, or GPS Navigation device, each of these needs a custom user experience that doesn't fit with one of the standard shells that we ship with Windows CE, how do you develop a UI for these devices?

And now, the questions...

  1. Do you develop your applications/UI using C/C++/Win32, MFC, or C#/VB (.NET Compact Framework) ?
  2. If you are using C/C++/Win32 then are you considering moving to C#/VB at some point in the future? - if not, why not ?
  3. What are your top 3 pain points when creating new CE based products as far as the UI development API / framework is concerned ( is it too hard to write win32, I need cooler UI, etc ).
  4. What are your UI needs going forward ( wizabang flashy UI / simple surfaces / I don’t care about UI /etc )
  5. Would you prefer new/interesting Win32 UI controls (if so, what controls are we missing?), or support for something like Silverlight ?
  6. Is the WPF/Silverlight Designer/Developer experience useful for your devices?

- Mike