Click here to learn
about this Sponsor:
Home  |  News  |  Articles  |  Polls  |  Forum  |  Directory

Keywords: Match:
An Introduction to Windows Mobile development tools
(Jan. 30, 2004)

Summary: This article by Microsoft provides a central reference point that describes the tools and supporting technologies for developing applications for Windows Powered and Windows Mobile based devices. For each tool the supported platforms are listed. The article includes development scenarios and offers guidance on selection of the tool and technology to apply to the scenario.



Introduction to Development Tools
for Windows Mobile-based Pocket PCs and Smartphones


Microsoft Corporation
August 2003


Introduction

Since launching the Microsoft Windows CE operating system in 1996 and the Handheld PC version 1.0 product shortly thereafter, Microsoft has helped developers target Windows Mobile based platforms with a selection of powerful and increasingly specialized tools that address specific needs and application tasks. Currently, Microsoft offers different tool packages for building applications for Windows Mobile-based Pocket PCs and Smartphones.

This white paper provides developers with an understanding of the current and future landscape of Windows Mobile application development tools. It helps them decide which offerings are most suitable for specific needs, when to use each tool, and what mobile application developers need to get started on their mobile application projects. The paper also provides information comparing the merits of specific tools.

While the current choice of mobile development tools consists of an assortment of offerings and will continue to be enhanced, Microsoft's goal is to eventually create a unified development environment to meet all mobile application development needs, which includes integrating mobile development tools into the core Microsoft Visual Studio .NET product offering.

Tools for Mobile Application Development

The following sections provide an overview of the tools currently available for Windows Mobile-based Pocket PCs and Smartphones. When reading the descriptions of the tools, developers should consider them in the context of using native, managed or server-side code:
  • Use native code for high performance, if you need direct hardware access or if you require a small footprint.

  • Use managed code 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.

  • Use server-side code for targeting a wide variety of devices with a single code set and where there is guaranteed data bandwidth to the device.
The eMbedded Visual Tools 3.0

Microsoft eMbedded Visual Tools 3.0 provide an entry-level integrated development environment for building mobile applications, including necessary compilers, debugging and platform documentation. The eMbedded Visual Tools 3.0 include Microsoft eMbedded Visual C++ 3.0 (eVC 3.0) and eMbedded Visual Basic 3.0 (eVB 3.0). Both tools are separate development environments and do not require any other development environment, such as Microsoft Visual Studio or Visual Studio .NET, to run.

To target a Windows Mobile based device, all tools require a platform Software Development Kit (SDK) for the device you want to target. The 2002 edition of the eMbedded Visual Tools 3.0 includes the SDKs for all current Windows Mobile devices, including Pocket PC 2002 and Smartphone 2002. SDKs for devices outside the Windows Mobile family of devices should be available from the device manufacturer.

You can download the eMbedded Visual Tools 3.0 - 2002 edition for free here.

More information about eMbedded Visual Tools is available here.

eMbedded Visual C++ 3.0

The Microsoft eMbedded Visual C++ 3.0 development system offers the native code C++ compiler for Windows Mobile-based development. It can target all devices based on Windows CE 2.11 and 3.0 if the correct SDK is installed. The eMbedded Visual C++ debugger works via Microsoft ActiveSync through a wired, wireless LAN or cradle connection.

There are software emulators available for Pocket PC 2002 and Smartphone 2002 devices. When Pocket PC 2002 was released, Microsoft introduced a new emulator for the Pocket PC 2002 SDK that is closer to a real Windows Mobile-based device. The new emulator runs true Windows CE binaries in a virtual PC shell. The Smartphone 2002, Pocket PC 2003, and Smartphone 2003 SDKs also use this new emulator.

Use eMbedded Visual C++ for:
  • Drivers for the Pocket PC or any other Windows Mobile-based device

  • Applications that run natively on the device

  • Games using high-speed graphics through the Game API (GAPI)

  • Applications with intense processing requirements

  • COM servers or Microsoft ActiveX controls
eMbedded Visual Basic 3.0

eMbedded Visual Basic 3.0 enables applications that use the Visual Basic language; the resulting P-code is interpreted at runtime. While most Windows Mobile-based devices have built-in capabilities to run applications built with eMbedded Visual Basic, some custom embedded Windows CE-based hardware platforms may not contain the eMbedded Visual Basic runtime. Windows Mobile 2003 software for Pocket PC does not contain the Visual Basic runtimes. They are available for download from Windows Mobile Developer Downloads.

eMbedded Visual Basic is based on a scripting language rather than on the full-featured Visual Basic language. Therefore, many language features available in Visual Basic 6.0 for the desktop are not supported in eMbedded Visual Basic 3.0. For example:
  • All variables are variant by default; strong typing is not supported

  • ActiveX controls cannot be developed with eMbedded Visual Basic, but they can be hosted

  • Several Visual Basic intrinsic controls are not supported and some properties are missing
eMbedded Visual Basic cannot be used to develop applications for Windows Mobile 2002-based Smartphone. Due to this and other factors, including the strong interest in the development community in Visual Basic .NET, the eMbedded Visual Basic technology is being phased out and replaced by the more powerful Visual Basic .NET language. Microsoft recommends that developers use Visual Basic .NET to create all new Pocket PC applications and use eMbedded Visual Basic for maintaining older applications.

eMbedded Visual C++ 4.0

Microsoft eMbedded Visual C++ 4.0 supports development for the new Windows CE.NET 4.2 based devices and, via a service pack release, supports Windows Mobile? 2003 software for Pocket PCs and Smartphones (formerly code-named "Ozone"). eMbedded Visual C++ 4.0 is ideal for targeting mobile or embedded devices based on Windows CE .NET 4.2 using native code. Enhancements of eMbedded Visual C++ 4.0 include:
  • Just-In-Time debugging for diagnosing unhandled exceptions

  • C++ structured exception handling

  • "Attach-to" a process for improved process debugging

  • Better integration with the new emulator
You can download eMbedded Visual C++ 4.0, eVC 4.0 Service Pack 2, and the SDK for Windows Mobile 2003 software for Pocket PC from Developer Downloads.

Download the Smartphone 2003 SDK from Windows Mobile 2003-based Smartphones Downloads.

Smart Device Programmability Features of Visual Studio .NET 2003

The Smart Device Programmability (SDP) features of Visual Studio .NET, formerly known as the Smart Device Extensions (SDE), help developers write mobile applications that take advantage of the Microsoft .NET Compact Framework, enabling distributed mobile computing in either connected or disconnected scenarios. The extensive class library available through the .NET Compact Framework allows applications to be written much faster than with traditional tools.

Visual Studio .NET 2003 enables Pocket PC 2002 and, with the appropriate SDK, Pocket PC and Smartphone 2003 development using the same tools and techniques as desktop development. It installs the .NET Compact Framework, which is specifically designed for resource-constrained devices. Developers can use the new C# language or the Visual Basic .NET language to target mobile and embedded devices. It also works well for applications that use XML Web services or leverage ADO.NET.

Use Visual Studio .NET 2003 for:
  • Applications that take advantage of Web services

  • Applications that must work well in either a connected or disconnected environment

  • Developing applications using either Visual Basic .NET or C#

  • When you wish to use the same tools for desktop, server and device programming

  • Rapidly developed mobile applications

  • Software that provides a reliable and secure environment

  • Applications that may be moved to different devices with different CPUs or a variety of Windows versions
For more information on the Smart Device Programmability features of Visual Studio .NET, see Smart Device Programmability.

ASP.NET Mobile Controls

ASP.NET Mobile Controls, formerly known as the Microsoft Mobile Internet Toolkit (MMIT), complement Smart Device Programmability and the .NET Compact Framework. ASP.NET Mobile Controls extend the power of the .NET Compact Framework and Visual Studio .NET for building mobile Web applications by enabling ASP.NET to deliver markup to a wide variety of mobile devices. With this approach, developers can use Visual Studio .NET to build a single mobile Web application that automatically adapts its page rendering for a wide variety of devices, such as Internet-enabled cell phones, pagers and PDAs, like the Pocket PC. It also eases development tasks because it integrates into the Visual Studio .NET Integrated Design Environment (IDE), allowing developers to build mobile Web applications by dragging and dropping controls onto a mobile Web form.

ASP.NET does not install any components on the client device. Instead, it uses server-side logic to adapt the rendering to a specific device's Web browser. It generates Wireless Markup Language (WML), HTML, and compact HTML (cHTML).

In addition to adaptive Web page rendering, ASP.NET offers a rich framework for customization and extensibility, providing an easy means of extending the controls to take advantage of new and different devices that will enter the market. Additionally, ASP.NET lets developers control the rendering for a specific device or class of devices within the same programming model, and allows developers to easily add support for new devices without re-authoring their mobile Web applications.

Use ASP.NET Mobile Controls for:
  • Supporting a wide range of Web-enabled devices (cell phone, pagers, PDAs)

  • Supporting different markup languages (WML, cHTML, HTML)
Note: ASP.NET Mobile Controls do not require any client-side installation. However, the target device must have a client Web browser.

For more information about Microsoft ASP.NET Mobile Controls, see Mobile Web Development with ASP.NET.

Microsoft SQL Server 2000 Windows CE Edition Version 2.0

Microsoft SQL Server 2000 Windows CE Edition (SQL Server CE) version 2.0 is the compact database for rapidly developing applications that extend enterprise data management capabilities to mobile devices. SQL Server CE is a powerful tool that makes it easy to develop mobile applications by supporting familiar Structured Query Language (SQL) syntax and providing a development model and API consistent with SQL Server.

The SQL Server CE engine exposes an essential set of relational database features, such as an optimizing query processor and support for transactions and assorted data types, while maintaining a compact footprint that preserves precious system resources. Remote data access and merge replication ensure that data from SQL Server databases is delivered reliably; can be manipulated offline; and can be synchronized later to the server, making SQL Server CE ideal for mobile and wireless environments.

SQL Server CE 2.0 is designed to integrate with the .NET Compact Framework through Visual Studio .NET, simplifying database application development for smart devices. Using the new SQL Server CE data provider to manage code by means of the Common Language Runtime, mobile application developers can build highly extensible applications with offline data management capability for disconnected scenarios.

Use SQL Server CE as a complement to your development tools when:
  • Extending enterprise data management capabilities to Pocket PCs

  • Developing applications that store and manipulate significant amounts of data on a mobile device

  • Needing reliable data replication with mobile devices in environments with intermittent connectivity
For more information about SQL Server CE, see Build Better Applications with SQL Server CE 2.0.

Tools Comparison Chart

The following chart provides an overview of the capabilities of the different tools.



Development Scenarios

In the short term, the most common tools for developing for Windows Mobile-based devices are the eMbedded Visual Tools 3.0 for Pocket PC 2000 and 2002, eMbedded Visual C++ 3.0 for Smartphone 2002, and eMbedded Visual C++ 4.0 for Pocket PC and Smartphone 2003. Eventually, Visual Studio .NET with its Smart Device Programmability (SDP) features will be the development platform for all Windows Mobile-based devices.

Server-side or Client-side Code?

The decision to use server-side or client-side code depends on several criteria. Each application scenario is different; however, these criteria should help you select the best solution for the users of your application.
  • User experience: Client applications generally provide better user experience as they run locally on the device and are independent of any infrastructure with which they interact.

  • Available bandwidth: This relates to user experience. An application running in an environment where there is significant and reliable bandwidth, such as a wireless LAN, can provide a good server-side code user experience.

  • Data security: A client application must secure sensitive data on the device. Windows Mobile software provides a number of Cryptographic Service Providers that assist with this. Server side applications must ensure that data is transmitted securely using technologies like SSL.

  • Supportability: Updates to a client application must be downloaded and installed to the device. Consider this scenario when thinking about a client application.

  • Offline functionality: If offline data access and functionality is required, a client-side application is best.
What Do You Need to Develop for Windows Mobile-based Pocket PC and Smartphone?

What you need to develop for Pocket PC and Smartphone depends on what you are trying to develop and which device you are targeting. In most cases you will need to have an integrated development environment and an SDK or extension for the device you want to target. The good news is that you can write applications to target the complete range of Windows Mobile-based devices from one machine as all the tools will co-exist. See the appendix for our recommended installation order.

Currently the eMbedded Visual Tools IDE and necessary SDKs are free and available for download over the Web.

Which Tool When?

Performance, control, or footprint are important to me. For example, I want to write a game, device driver, or an Active X component

If you plan to target Pocket PCs and Smartphones running Windows Mobile 2003 software, you only need to download eMbedded Visual C++ 4.0 Service Pack 2 and the Pocket PC 2003 SDK from Developer Downloads. You can also target Windows Mobile 2003 software for Smartphone with the Smartphone 2003 SDK.

To support earlier Pocket PC, Pocket PC 2002, and Smartphone 2002 devices you would also need to download the eMbedded Visual Tools 3.0 - 2002 Edition.

If you need to maintain applications targeting the Handheld PC Professional Edition, Handheld PC 2000, or Palm Size PC 1.2 you can download the SDKs for eMbedded Visual Tools 3.0.

I want to develop an application quickly in a secure and reliable environment, I might want to access web services

I want to write a client application that has maximum code portability

I want to use my Visual Studio .NET 2003, Visual C#, Visual Basic.Net or .NET Framework skills

We recommend you use the Smart Device Programmability features in Visual Studio .NET 2003. The .NET Compact Framework is built into Windows Mobile 2003-based Pocket PCs and Smartphones. It is available for Pocket PC 2002, although it must be installed to the device.

I want to target Smartphone 2002

You should download the eMbedded Visual Tools 3.0 - 2002 Edition.

If you want to test your application on a real device but Smartphone is not yet available in your territory or does not support development, you can buy a Smartphone Developer Kit.

I want to target Pocket PC 2002 and Pocket PC 2003 with one code base

There are two ways you can build your application:

  1. Target the .NET Compact Framework using Visual Studio .NET 2003. This will allow you to write a single managed code base and have it run on both devices. The Pocket PC 2002 requires the .NET Compact Framework to be installed on the device.

  2. Use eMbedded Visual C++ 3.0. By writing and compiling your native code using eMbedded Visual C++ 3.0 it should run on both Pocket PC 2003 and Pocket PC 2002 devices provided you have used documented APIs and written a well behaved application.


I want to target Smartphone 2002 and Smartphone 2003 with one code base

The .NET Compact Framework is not available for the Smartphone 2002. To write a single code base to run on both Smartphone 2002 and Smartphone 2003 you must use native code and compile your application using eMbedded Visual C++ 3.0.

I want to maintain an application written in eMbedded Visual Basic

You should download the eMbedded Visual Tools 3.0 - 2002 Edition, which contains the development environment, emulator, and SDK for eMbedded Visual Basic.

Consider porting your application to the .NET Compact Framework using Visual Basic .NET 2003.

I want to write an application that targets a wide variety of mobile devices that can operate in a thin-client environment I want to maintain an application written in eMbedded Visual Basic

You should use ASP.Net Mobile controls as part of Visual Studio .NET 2003. You can find more information at Mobile Web Development with ASP.NET.

Conclusion

Microsoft is committed to the long-term success of the mobile device market and to helping developers deliver rich, highly functional mobile applications for enterprise users and consumers. The Windows Mobile-based application development languages currently available provide an incredible range of power and flexibility.

As new generations of mobile devices appear on the market, Microsoft will continue delivering increasingly sophisticated and unified development tools that enable developers to rapidly design and deliver new applications that take advantage of technologies such as Web services and systems that exploit the power of .NET-based integration. The availability of these tools will give the mobile application development community the tools it needs to continually provide rapidly growing markets with the applications they need.

Appendix: Recommended Installation Order for Development Tools for Mobile Applications

In order to ensure the maximum interoperability between the different tools for developing for Windows Mobile software, we recommend you install the tools and SDKs in the following order. If you do not have or do not need one of the tools you need not obtain it in order for the other tools to interoperate,

The following installation steps require you to be logged onto to your computer using an account with Local Administrator privileges.

  1. Uninstall all existing tools, SDKs, and emulators before proceeding.
    You should uninstall the following programs before proceeding with this installation:

    • eMbedded Visual Tools 3.0
    • eMbedded Visual C++ 4.0
    • eMbedded Visual C++ 4.0 Service Pack 2
    • Visual Studio .NET 2003
    • Pocket PC 2003 SDK
    • Pocket PC 2002 SDK
    • Smartphone 2003 SDK
    • Smartphone 2002 SDK
    • Pocket PC 2000 SDK
    • Standard SDK for Windows CE .Net
    • Microsoft ActiveSync

  2. Install Microsoft ActiveSync 3.7 -- All the Development Tools for Mobile Applications require ActiveSync 3.7 for application development and deployment.

  3. Install the eMbedded Visual Tools - 2002 Edition, Pocket PC 2002 SDK and Smartphone 2002 SDK -- In order to develop C++ and Visual Basic applications for the Pocket PC and Smartphone 2002 platforms you must install the eMbedded Visual Tools - 2002 edition.
    Note: The setup for the eMbedded Visual Tools - 2002 Edition will also start the installation process for the Pocket PC 2002 and Smartphone 2002 SDKs.

  4. Install eMbedded Visual C++ 4.0 and Service Pack 2 -- In order to develop C++ applications for the Pocket PC 2003, you must install Microsoft eMbedded Visual C++ 4.0 and Service Pack 2. Note that you can install Service Pack 2 only after eMbedded Visual C++ 4.0 is installed.
    Note: Installing eMbedded Visual C++ 4.0 Service Pack 2 on Windows Server 2003 may cause a pop-dialog box to come up and prompt that one of the emulator drivers is not signed. You should accept the unsigned driver and continue.

  5. Install Visual Studio .NET 2003 -- In order to develop applications in C# or Visual Basic .NET for Pocket PC 2002, Smartphone 2003 or Pocket PC 2003, you must install Visual Studio .NET 2003.
    Pocket PC 2003 devices and the Pocket PC 2003 Emulation images already contain the .NET Compact Framework. You must deploy the .NET Compact Framework on earlier devices.

  6. Install the Pocket PC 2003 SDK -- To develop applications in C++, C#, or Visual Basic .NET for Pocket PC 2003 you must install the Pocket PC 2003 SDK.

  7. Install the Smartphone 2003 SDK -- To develop applications in C++, C#, or Visual Basic .NET for Smartphone 2003 you must install the Smartphone 2003 SDK.




Copyright © 2004 Microsoft Corp. All rights reserved. This article was initially published on Microsoft's MSDN website. Reproduced by WindowsForDevices.com with permission.


(Click here for further information)


Windows XP for Embedded Applications
This white paper describes the benefits of using Windows XP when developing embedded applications.

A Manager's Guide to Selecting a Mobile Device Operating System
This white paper offers a comparative review of Microsoft Windows CE and Windows Mobile.

Visual Basic 6.0 to .NET Migration
This paper focuses on the methodology and techniques which Infosys (Microsoft Technology Center) has developed for migrating VB 6.0 Applications to .NET. Our approach ensures a smooth, cost effective, and efficient migration.

Mobile Device Security: Securing the Handheld, Securing the Enterprise
This whitepaper identifies security threats to corporate data on mobile devices and details how mobile devices can become a "backdoor" to the enterprise.

Mobile Device Security: The Eight Areas of Risk
It's common knowledge that adding mobile devices to your network increases security risks. There are multiple facets to mobile security, all of which should be paid close attention to. This E-Guide presents a more in depth look into the eight key areas of securing wireless devices.

Quality Assurance and .NET
This paper discusses best practices for functional, regression and load testing of .NET applications.

SCADA Security in Integrated Networks
As businesses leverage their SCADA systems by integrating them into the business networks, they must also assure the security of the SCADA system.

The Advantages of Small Form Factor HMI
HMIs have mutated and changed with new requirements, and they have become more flexible and capable. And while they've been doing that, they've become smaller and more useful.

9 Critical Requirements for Web Application Security
Learn why your Web applications expose dangerous security breaches and what’s required to effectively protect your Web applications and the sensitive information behind them.

 


Got a HOT tip?   please tell us!
Free weekly newsletter
Enter your email...
Click here for a profile of each sponsor:
PLATINUM SPONSORS
(Become a sponsor)

ADVERTISEMENT
(Advertise here)


Updated! The latest Windows-powered...

mobile phones!

other cool
gadgets

HOT TOPICS
Microsoft targets PNDs with new embedded OS
Microsoft tips .NET MF 3.0 highlights
Microsoft previews Windows Embedded Standard
Microsoft offers free Windows CE 6.0 textbook
Microsoft renames embedded operating systems
Microsoft unveils Windows Mobile 6.1
New Atom models target low-cost PCs
REFERENCE GUIDES
Windows Device Showcase
Intro to Windows Embedded
Intro to Shared Source
Real-time Windows Embedded
Windows Embedded books
Join our Windows Embedded discussion forums:
Windows XP Embedded
Windows CE
Windows Mobile


Windows Embedded developer newsgroups
Windows CE
XP Embedded
PocketPC
Smartphone

Microsoft's Windows Embedded resources
Embedded dev center
Mobile dev center
Windows CE tutorials
XP Embedded tutorials
Windows Embedded seminars
Windows Embedded application categories
3rd-party partners


BREAKING NEWS

• Software syncs Macs and Windows Mobile
• Windows handheld collects in-flight payments
• PDA dev kit runs Windows CE
• Tri-fold phone can be worn on wrist
• Asus netbook boasts discrete graphics
• SoC runs Windows XP with less than two Watts
• Phone combines touchscreen and QWERTY
• i.MX27 module gets carrier board
• Via panel PC resists shock, liquids
• LG releases first U.S. smartphone
• Netbook-like phone "companion" gets video input
• Mini-ITX board has HDMI port
• Windows Mobile smartphone is "world's fastest"
• Windows Mobile to get "desktop" Flash player?
• USB 3.0 debuts


MOST POPULAR (last 90 days)
• "Netbook" uses Intel's Atom N270
• Windows CE takes on Linux in low-end netbooks
• Windows Mobile 6.1 phone has GPS
• T-Mobile's Touch Diamond clone does HSUPA
• iPhone-like Windows Mobile device has 16GB of storage
• HTC phone has slide-out keyboard and TV output
• Windows Mobile trouncing the iPhone?
• HTC releases Touch Diamond ROM upgrade
• Sprint upgrades HTC Touch, Mogul
• Intel's Atom powers mini-ITX board
MOST POPULAR (Classics from the vault)
Windows XP Embedded USB boot
Troubleshooting Windows XPe's blue screen "Stop 0x0000007B" error
Asus reveals $190 mini notebook
Windows Mobile 6 SDKs available for download
Windows Mobile VPN client plays with Cisco
HTC adds GPS to Windows Mobile Touch line
Microsoft unveils Windows Mobile 6.1
Guide to HTC's Windows Mobile smartphone platforms
Customizing Windows XP Embedded thin clients
Visual Studio 2008 adds mobile application features

Also visit our sister sites:


Sign up for WindowsForDevices.com's...

news feed

Home  |  News  |  Articles  |  Polls  |  Forum  |  Directory  |  About  |  Contact
 

Ziff Davis Enterprise Home | Contact Us | Advertise | Link to Us | Reprints | Magazine Subscriptions | Newsletters
Tech RSS Feeds | White Papers | ROI Calculators | Tech Podcasts | Tech Video | VARs | Channel News

Baseline | Careers | Channel Insider | CIO Insight | DesktopLinux | DeviceForge | DevSource | eSeminars |
eWEEK | Enterprise Network Security | LinuxDevices | Linux Watch | Microsoft Watch | Mid-market | Networking | PDF Zone |
Publish | Security IT Hub | Strategic Partner | Web Buyer's Guide | Windows for Devices

Developer Shed | Dev Shed | ASP Free | Dev Articles | Dev Hardware | SEO Chat | Tutorialized | Scripts |
Code Walkers | Web Hosters | Dev Mechanic | Dev Archives | igrep

Use of this site is governed by our Terms of Service and Privacy Policy. Except where otherwise specified, the contents of this site are copyright © 1999-2008 Ziff Davis Enterprise Holdings Inc. All Rights Reserved. Reproduction in whole or in part in any form or medium without express written permission of Ziff Davis Enterprise is prohibited. Windows is a trademark or registered trademark of Microsoft Corporation in the United States and/or other countries and is used by WindowsForDevices under license from owner. All other marks are the property of their respective owners. WindowsForDevices is an independent publication not affiliated with Microsoft Corporation.