Getting Started in Developing Applications for Windows Mobile


Windows Mobile is a powerful platform for running applications on mobile devices. Windows Mobile has at its core Windows CE 5.0, but provides many unique features, such as shell and communications support, that makes it ideal for use in mobile devices such as phones and personal digital assistants. For a comparison of Windows Mobile and Windows CE, see Windows Mobile and Windows Embedded CE - what's the difference.

Windows Mobile devices exist in two main formats: devices with touch screens, and devices without touch screens. Previous releases described devices by using the names Pocket PC and Smartphone, but the distinction between these devices has become blurred. For more information on this topic, see What's New in Naming Conventions for Windows Mobile 6.

For examples of current Windows Mobile devices, please see this Microsoft Web site.

Windows Mobile provides a rich environment for creating applications that enhance interactions with mobile services, communicate with Enterprise-class databases, or play games and other forms of media. There is a large market for commercial software aimed at consumers, and a huge potential for Enterprise markets to create custom Line of Business applications.

The key to developing applications for Windows Mobile devices is Visual Studio. Visual Studio provides the tools necessary to develop applications in native code with Visual C++, or managed code with Visual C#, Visual Basic, or any combination of these languages. The managed languages in particular have extensive support for database access and for the .NET Compact Framework, and they provide you with comprehensive tools for reliable and rapid application development. With full support for debugging and emulation, you have all the tools you need to write applications that range from fast action games up to powerful, enterprise-level, Internet-aware solutions.

When using Visual Studio 2008 to develop applications and services for Windows Mobile devices, you should bear the following in mind:

  • Use native code (Visual C++) for high performance, if you need direct hardware access, or if you require a small footprint.
  • Use managed code (Visual C# or Visual Basic .NET with the .NET Compact Framework) for user interface-centric applications that require fast time-to-market or rapid application development. Also, use managed code if you want easy access to Web services and data using Microsoft SQL Server 2005 Compact Edition.
  • Use server-side code (ASP.NET Mobile Controls) to target a wide variety of devices with a single code set, or when you need guaranteed data bandwidth to the device. For information of developing using web technologies, see the MSDN Mobile Web Development Center.


The default security settings on a particular device might limit your ability to install and debug your application. Try installing the SDK Security Certificates from the default installation's Tools directory; see this. If that doesn't work, use the Device Emulator, or contact your device supplier for information on changing the security polices. For more information, see Deployment, Setup, Security and You and Security, GPS and Resolution Awareness Tools.

Getting Started

The following articles will quickly get you up to speed with developing applications for Windows Mobile devices.

Device Emulator and Debugger

The following topics provide information about using the emulators, debuggers, and Windows Mobile-specific programming techniques.

Resources on the Web

See Also

Other Resources

Programming Techniques for Windows Mobile