Seattle, May 7, 2004 – This came as something of a surprise to me. I always judged WinHEC as a typical PC-based hardware conference, and it was in the past. This year, there are no less then 6 sessions covering Windows CE and Windows XP Embedded. Is WinHEC slowly moving towards embedded development? If I would have a say in it: “Yes”. Not necessarily to take over WinHEC, but I wouldn’t mind having even more embedded sessions. Now the sessions were still very software related, but what about a Windows CE hardware design session? Anyway, showman of the day definitely was Mike Hall with three separate presentations. Mike started off with a Windows CE overview. There was not too much news in that presentation, but given the fact that the room was pretty fool there was certainly an interest in this presentation. One of the things that was remarkable was the fact that Mike placed emphasis on the fact that Windows CE is not just an operating system for PocketPCs and SmartPhones. Mike Hall’s background is definitely embedded computing, so this may not be a complete surprise, but it is cool to hear somebody making a point of this. One of the important things Mike hammered the audience with is the fact that application and driver developers have to be extremely careful when allocating resources from the operating system. Allocation in itself is not the problem, but it is absolutely devastating with an operating system like Windows CE when those resources are not freed up after use. Windows CE usually runs on small footprint systems, so memory is always a scarce resource. Besides that, Windows CE systems, especially embedded systems might run for years without being rebooted. In this case, even forgetting to free one handle (or 4 bytes) in let’s say a paint function will quickly get the system in an out of memory situation. We are different than Windows XP, where the memory size is basically limited to the free space on the hard drive, thanks to the virtual memory manager. Besides that, especially in a desktop world, Windows XP systems tend to be rebooted much more frequent than Windows CE devices. Of course, the same care for freeing up resources should be incorporated with Windows XP Embedded systems, especially since they can run without a hard drive.
There was also a fun session, again by Mike Hall where he actually compared three different ways of developing applications for Windows CE. First a native application using embedded Visual C++. Then a native application using MFC. Last but not least a managed application using C#. Mike took a simplified scrable application to make his point that native Win32 applications are hard to write, you have to have knowledge of the operation of the underlying Windows CE system. Using MFC, the situation is improved reasonably, resulting in higher productivity. The most productive tool, and actually the tool giving the highest abstraction level is Visual Studio.NET 2003 with the possibility to write Windows CE applications in either C# or Visual Basic.NET. The only downside: Productivity comes with a price, because the footprint of the application will be bigger, thanks to the fact that extra runtimes have to be installed. For MFC, the runtime right now is around 400 Kbytes. For the .NET Compact Framework we are talking about 1.5 Mbytes. Looking to productivity, according to Hall, the situation is quite remarkable. A full scribble application, including storage of drawings to disk took him in native code about 4 hours, with MFC around 30 minutes and with C# less then 10 minutes. Translating these numbers to full blown applications, the larger footprint might actually pay off, if development time can be brought down from weeks to days. There are some issues with managed application development if hard real-time behavior is required. Mike Hall kindly referred to this article that describes the real-time behavior of the .NET Compact Framework.
WinHEC 2004 is already history. The most remarkable things during this WinHEC (and this is of course a very personal list) were:
- Less attention for Longhorn than I would have expected;
- Lots of attention for Windows XP Media Center;
- Serious attention for the Windows Embedded operating systems;
- The arrival of Web Services for Devices.
The coolest thing I took away from this WinHEC was the idea of Web Services for Devices. The idea to let a device communicate to its client using web services is simple yet brilliant. When I discussed this with Mike Hall he agreed that the idea is brilliant and he made a point: “Of course it is brilliant, after all, Microsoft thought of it”. The more I think about it, the more elegant the idea becomes. Not only will this create a very simple way to hook up devices, plugging them in to a network (especially if this is a wireless network). At the same time, because of the platform independence of Web Services this also means that devices become platform independent. I am sure that many device vendors will embrace that idea, because they now can sell their devices independent of the hardware and operating system software of the client.
So far for the live coverage of this WinHEC. In exactly two weeks DotNETForDevices will be back with live updates from the TechEd 2004, being held in San Diego. |