Selecting a Development Language
When developing an application, control or library for deployment on a Smart Device, there are three programming languages to choose from: Visual C#, Visual Basic, and Visual C++.
C# is a modern, object-orientated language. Its garbage collection features and support for the .NET Compact Framework classes make it an ideal language for developing reliable and secure mobile applications. Visual C# for Smart Devices includes a large number of controls for quickly creating a graphical user interface (GUI), and the Compact Framework classes support features such as GDI+, XML, and Web Services. Visual C# can also call native Windows CE functions for situations not supported by the .NET Compact Framework.
For more information about developing with Visual C# and accessing native Windows CE functions, see:
Visual Basic for Smart Devices is a full implementation of Visual Basic, and is considerably more powerful than the previous development tool, eMbedded Visual Basic. Visual Basic greatly simplifies the task of porting a desktop application to a mobile device, or quickly creating a rich-client application. As with Visual C#, Visual Basic makes use of the .NET Compact Framework. Developers already familiar with Visual Basic will be able to port existing applications or create new ones very quickly. As with C#, Visual Basic can access native Windows CE functions.
For more information on developing in Visual Basic, see:
Visual C++ is the preferred development language for Smart Devices when performance is critical, or when developing system-level applications, device drivers or Today or Home screen plug-ins. Visual C++ does not support the .NET Compact Framework, but instead provides a subset of the Win32 API set. It is possible for applications written in managed C# or Visual Basic code to access C++ code contained in DLLs by means of Interop.
For more information on developing in Visual C++, see: