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...
- Do you develop your applications/UI using C/C++/Win32, MFC, or C#/VB (.NET Compact Framework) ?
- 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 ?
- 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 ).
- What are your UI needs going forward ( wizabang flashy UI / simple surfaces / I don’t care about UI /etc )
- Would you prefer new/interesting Win32 UI controls (if so, what controls are we missing?), or support for something like Silverlight ?
- Is the WPF/Silverlight Designer/Developer experience useful for your devices?
- Mike
Comments
Anonymous
August 21, 2007
Hi Mike I am trying to consider many different options for the UI development on Win CE for a mobile robot with Kiosk. I definitely need a cool UI with lot of Jazzy stuff preferably cooler stuff that is available on WPF or Silverlight. I am not sure whether I am asking for more considering the small footprint that these applications must have. Do you think it is feasible? Thanks RamaAnonymous
August 22, 2007
The comment has been removedAnonymous
August 22, 2007
The project I am working on has a different UI. The device will run a Compact Framework application, but I am writing a Shell replacement. Since it must be able to load at start up, I am writing a native app in C++. Since the application development is actually happening in CF, I am not using any additional libraries such as ATL or MFC. The good news is that the UI is not very interactive. There is some network monitoring, but mostly the new Shell is responsible for letting the user know what is going on when the application is not running. The other decision we have made is to avoid things that will need to be translated. As such I have been digging into the Windows CE Imaging APIs. Any suggestions on a good resource for gaining a better understanding of these APIs? Pat O Cognex, Corp.Anonymous
August 22, 2007
The comment has been removedAnonymous
August 22, 2007
The comment has been removedAnonymous
August 23, 2007
The comment has been removedAnonymous
August 27, 2007
We use DHTML inside a custom browser shell written in C#. IE 6 is very powerful, and a lot of neat UI stuff can be done with it. If WM also had IE 6, that would make life so much easier. MS was way ahead with HTAs and behaviors, then dropped the ball. Now everyone's trying to make a platform based off HTML/Javascript. If IE had SVG support, that'd be even better. Also looking forward to Silverlight mobile. Also want to know progress of using widget engine on mobile.Anonymous
August 27, 2007
We have the same scenario as kdarling - DHTML in a custom browser shell. SVG support would be a great benefit.Anonymous
August 27, 2007
Hi, I am searching the net for a weak to download the trial pack or free version of WINDOWS CE FOR VISUAL C or C++ but am enable to find out. We are having licence of Visual Stdio .NET 2005 licence but it dose not have the option of WIN CE 5.0 option in Visual C++ which is my area of intrest. Can anyone help me out?Anonymous
August 28, 2007
The comment has been removedAnonymous
August 29, 2007
Lekhnarayan, Windows CE 6.0 is the current shipping version of the product, this is a plug-in to Visual Studio 2005 - the download can be found here - http://www.microsoft.com/windows/embedded/eval/trial.mspx The Windows CE 5.0 product was a stand-alone tool that wasn't integrated into Visual Studio.
- Mike
Anonymous
September 02, 2007
I have been developing a UI for Windows CE 6 for the passed year. We use a QVGA display and have a wheel and 6 buttons to allow user input. At first it was very slow as I was treating it as if I was developing on a powerful PC, using lots of custom controls. As soon as I realised that the bottle neck was displaying the information to screen, I used GDI and drew the images and text myself and now have a super fast user interface! I do find it quite annoying when you expect simple things to be included in the basic license that are not though. For instance I was hoping to display help using the web browser control, but seeing as it means getting the full license at a cost of $9 I have now got to develop my own html handler.Anonymous
September 03, 2007
Another alternative to MFC is Qt for Windows CE / Windows Mobile. It's a cross-platform framework, so (assuming you have a Qt project) you can basically take any C++ project and recompile it for your device and it will use the native libs. It also supports SVG and some pretty advanced Canvas stuff - but unfortunately it's not commercially released yet..Anonymous
September 04, 2007
A couple of comments: Agree with comments above on the inappropriateness of .NET CF / Win32 / MFC for WINCE ARM based product. Your best option is Ajax/browser UI, WTL, or Qt for Windows CE by Trolltech Even if you do somehow get a UI that performs marginally well on an ARM processor under WinCE, you are still left with a really disappointing infrastructure below the UI. What if you want an audio/video framework to handle streaming/playback of media content? Will it work well with a kludged/hacked UI? You will probably have to roll your own. Part of the problem is the closed nature of WinCE development. You don't have a Gstreamer framework, DBUS IPC, or Telepathy IM engine you can role in and integrate with Glib/Gobject based UI. This is were community based development for embedded Linux is at a great advantage. There is a reason why when you want to differentiate you role your own. WinCE is great for cookie cutter designs and rolling out products fast on reference designs. But when you really want to do something different, it is nice to have community based projects like those you see for embedded Linux. There are few if any such eco systems for WinCE. SeanAnonymous
September 05, 2007
The comment has been removedAnonymous
September 05, 2007
If people are more interested in Qt/CE (Qt for Windows CE) feel free to read the blog entries: http://labs.trolltech.com/blogs/2007/06/28/qtce-where-are-we/ http://labs.trolltech.com/blogs/2007/03/28/were-porting-qt-4-to-windows-ce-and-windows-mobile/ From our experience porting Qt to Windows CE and Windows Mobile we really understand the pain some of the people here mention. Supporting different languages, styles, oritentaion and screen size is a big problem if you have to write specialized code for each variation of this. These are some of the things we try to make easier with Qt. I see a lot of you are actually using DHTML and Explorer and that is a clear sign that the current APIs don't cut it ;) Just to clear out some of the comments above.
- Qt is not C++ only, there is also Java support through Qt Jambi.
- In general "interfacing" with C-based libraries is NOT difficult using C++.
- There is no problem embedding COM or ActiveX controls in Qt, even in the CE version. We have ActiveQt for that.
- All the libraries for handling files, strings, XML and more are cross-platform (Win, WinCE, X11, Mac, Linux, Linux Embedded) and has more functionality than the ones available through Win32 on the Windows CE platform :) And yeah, we actually support several modules like SVG and SQLite etc. which are hard to get other places for Windows CE. Ok, I'll stop the horrible sales rant now. But if you're doing C++ development for Windows CE and needs a mature framework I'd give Qt a glance at least.
- Anonymous
September 19, 2007
Hi Mike, I'm developing an application for WinCE 6.0 for which I need the Microsoft File Viewers. I am unable to locate the same using Platform Builder in VS 2005.