One thing became really clear when working on the Windows CE Kiosk blog postings is that I've perhaps been spending too much time being seduced by managed code development - not having to worry about message loops, massive switch statements, and message cracking - having simple classes like String and all the String manipulation functions makes all the difference when hacking away on some application code - ideally, as a programmer you should be spending time focused on building your application, not focusing on the underlying plumbing of the operating system - in many respects Win32 is designed to do this, thinking back even to Windows 1.0 (desktop O/S) the operating system abstracted the user and developer from the underlying hardware, applications didn't need to be written to only work with one display or printer, the applicaitons were abstracted through device drivers and the Win32 API - the problem though is that the Win32 API is just a huge collection of API's, some of which take structures, some take a number of parameters, some have COM style return values, others have BOOL, and some return handles, in some cases the developer is responsible for cleaning up resources allocated by the operating system, in other cases the operating system clears up for you - Win32 programming, in some ways feels like programming in assembler when compared against programming in C#/VB using the .NET (Compact) Framework.

Managed application development just feels so much cleaner, having well thought out class structures and abstraction from the underlying O/S, plus the ability to escape the box by calling native Win32 API's when needed - even something as simple as not having to think about whether strings are UNICODE, ASCII or ANSI, the framework takes care of this for you, and yes, MFC for Windows CE also wraps this for the CString class.

Anyhow, that's just my passing thought for the day - do you agree ?

- Mike