I spent most of Friday talking to each of the 30 Student Challenge teams, all of the teams needed to build/code their solution using a custom Windows CE operating system image - all teams had the choice of programming language/tools for their project - the choice comes down to native (C++, Win32, MFC, ATL) or managed (C# or Visual Basic).
Assuming that you were starting a new Windows CE Embedded project, would you code using C#, VB, or C/C++ ? - Out of 30 teams taking part in the ChallengE I only talked to three teams that coded their applications in C++, no teams used Visual Basic, all the other teams used C# - pretty interesting, eh !
I asked why the teams used C# - the most common answer was that C# and the .NET Compact Framework was super easy to develop against, provided a great set of class libraries to make it easy to focus on the application rather than the underlying operating system.
Interestingly, one team that used C++ suggested that they loved to do pointer manipulation !
If you're not currently coding using the .NET Compact Framework then I would suggest you start looking at managed application development, especially with .NET CF 2.0 coming out soon...