There have been many articles on various aspects of Pocket PC development in this site. This article is different in the sense that it tries to give an overview on things which we would like to know before entering into the world of Pocket PC development namely information regarding the operating system, development tools etc.
History of Windows CE
In 1996, Microsoft scaled down their Windows NT operating system and announced a modular version for a broad range of communication, entertainment and mobile computing devices like PDAs, Digital Internet Phones, Auto PCs etc. Windows CE can not only scale up to the power of feature rich devices like PDAs but also scale down to less than 1 MB to provide basic yet relatively powerful system services in very compact devices like Digital Internet Phones. A custom version of Windows CE can be configured by using a tool called Platform Builder provided by Microsoft for use to OEMs. From 1996, Windows CE has come a long way in terms of features and Microsoft just released Windows CE 4.2 this year sometime back.
A 'Pocket PC' is a PDA running a specification of Windows CE called 'Pocket PC edition'. This specification comes with additional shell extension and applications specific to PDA. Likewise, PDAs coming with Digital Internet Phone features run another specification of Windows CE called 'Pocket PC Phone Edition'. Microsoft also has a specification called Smartphone edition used in Digital Internet Phones. Pocket PCs are high end devices requiring a memory of at least 16 MB. Currently there are Pocket PCs in the market which have upto 128 MB memory. All information in PDAs are stored in memory or RAM. There is nothing like hard disk in PDAs. Currently the latest version is Pocket PC 2003 edition which is a specification of Windows CE 4.2.
Development tools offered by Microsoft
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 at Windows Mobile - Developer downloads section. More information about eMbedded Visual Tools is available at Embedded Visual Tools section. The Pocket PC 2003 SDK can be downloaded separately at Download details: Pocket PC 2003 SDK.
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. 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. 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
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. 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 from Developer Downloads.
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 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 phones, 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.
ASP.NET Mobile Internet Toolkit can be downloaded at Download details: Mobile Internet Toolkit. 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 downloading the latest version of SQL Server CE database, please go to Download details: SQL Server CE. For more information about SQL Server CE, see Build Better Applications with SQL Server CE 2.0.
Other development tools
Sybase Pocket PowerBuilder
Pocket PowerBuilder provides a highly productive 4GL Integrated Development Environment (IDE) for mobile application development. Providing PowerBuilder developers with the same best-in-class rapid application development (RAD) platform that they currently rely upon, it’s designed to simplify and accelerate the creation of mobile and wireless enterprise applications targeting Windows® CE-based environments. The following are the key features of Pocket PowerBuilder.
Supports Microsoft Pocket PC, Pocket PC 2002 and Pocket PC 2003 devices
Tight database integration with Sybase Adaptive Server Anywhere (ASA) database
Powerful and patented DataWindow technology—complex SQL, workhorse data access, and sophisticated data presentation features
Allows developers to leverage their existing PowerBuilder skill set
Application migration assistant for migrating PowerBuilder applications and vice versa
Supports connectivity to enterprise databases including Sybase Adaptive Enterprise (ASE), Oracle, Microsoft SQL Server and IBM DB2
To get more information regarding Pocket PowerBuilder, please visit the Sybase website. The evaluation version of this software can be downloaded from Download Details: Pocket PowerBuilder
SQL Anywhere Studio
SQL Anywhere Studio is a comprehensive package that provides data management and enterprise data synchronization to enable the rapid development and deployment of database-powered applications for mobile, embedded and small to medium sized business (SMB) environments. It extends the reach of corporate data, information and applications to anywhere business transactions occur. SQL Anywhere Studio’s MobiLink synchronization technology provides for the secure, bidirectional exchange of information between remote Adaptive Server Anywhere or UltraLite databases and a variety of enterprise data sources including Adaptive Server Anywhere, Sybase Adaptive Server Enterprise, Oracle, Microsoft SQL Server and IBM DB2. Remote systems connect via standard Internet protocols to the MobiLink synchronization server, which communicates to the backend database. Optional strong 128-bit encryption technology can be used to ensure data is fully protected during transmission.
SQL Anywhere Studio features 2 powerful database servers.
Adaptive Server® Anywhere
Optimized for use on small to medium sized business servers, laptops and handheld devices, and supports both single user and multi-user implementations
Provides unmatched reliability and power, with rich enterprise functionality including full transaction processing, referential integrity, SQL and Java stored procedures, triggers, row-level locking, automatic event scheduling and automatic recovery
Self-administering and self-tuning, requiring minimal DBA involvement
Includes 128-bit strong encryption options
Supports a wide range of operating systems, including Windows (32 or 64 bit), Mac OS X, Netware, a range of UNIX variants and Linux (32 or 64 bit) and popular handheld platforms such as Microsoft Windows CE and the Palm Computing Platform to provide the highest flexibility in deployment
Supports many standards for easy, high-performance data access, including ADO.NET, SOAP, XML, OLE DB, ODBC, JDBC™, Sybase OpenClient™ and Embedded SQL for high-performance data access
Provides an ideal solution for memory-constrained environments such as handheld devices and smart phones
Supports a wide range of platforms including Windows CE (Pocket PC/Handheld PC), Palm Computing Platform and Java
Strong database encryption
Broad programming tools support including AppForge MobileVB, Metrowerks CodeWarrior, Microsoft Visual C++, Visual Studio .NET and Borland JBuilder
UltraLite Dynamic SQL eases development for SQL programmers looking to create dynamic data-driven applications
To get more information regarding SQL Anywhere Studio please visit the Sybase website. The evaluation version of this software can be downloaded from Download Details: SQL Anywhere Studio
AppForge MobileVB software integrates seamlessly into Visual Basic 6.0 enabling you to immediately write applications, using the Visual Basic programming language, that will run on over 90% of the world's handheld, mobile, and wireless devices. The following are the key features of AppForge MobileVB.
Supports application development in multiple platforms such as Palm OS (Palm, Handspring, Sony, IBM, Kyocera, HandEra, Samsung, Symbol), Pocket PC (iPaq, Jornada, Casio, NEC, Symbol, Toshiba), Symbian OS (Sony Ericsson, Nokia)
Ships with more than 30 standard controls, as well as modules and libraries for database synchronization, telephony, and gaming.
Applications can be tested from within the IDE and compiled into single-file installation packages for distribution
Includes the UltraLite Database with Synchronization Development Environment (UltraLite DB with MobiLink)
To get more information regarding AppForge MobileVB please visit the AppForge site. The evaluation version of this software can be downloaded from Download Details: AppForge Mobile VB.
Java based development tools
Waba is a programming language resembling Java used for developing applications for small devices. However, Waba is not a derivative of Java and has no connection to Sun Microsystems, the owner of the Java brand and related trademarks. The syntax of the Waba programming language is a strict subset of the syntax of the Java language. This allows developers who are familiar with Java to quickly start programming in Waba. Waba has a set of foundation classes designed to be as small as possible while still containing the functionality needed to write fully featured programs for small devices. Waba applications can run on a PalmPilot device, Windows CE device or any machine that supports Java (either the JDK 1.02, 1.1, 1.2 or 2.0). To get more information regarding Waba, please visit the WabaSoft site. Waba Virtual Machine can be downloaded freely from Download Details: Waba.
Superwaba first began as Waba and with addition of new classes became Superwaba. To know more about Superwaba, please visit the SuperWaba site. SuperWaba Virtual Machine can be downloaded freely from Download Details: SuperWaba.
Application deployment tools
If you are planning to deploy your Pocket PC applications to various devices, you should be having this software. This software is freely downloadable. For downloading the latest version of ActiveSync, please go to Download details: Activesync 3.7. ActiveSync supplies following features for Windows CE based devices:
Backing up and restoring device data
Installing and removing Pocket PC applications
ActiveSync supports the following interactions between desktop computers and Windows CE based devices through add-ins called Service Providers which runs within the ActiveSync framework. To get more information regarding ActiveSync, please refer the online help which comes with Pocket PC development environments.
Testing/Debugging Pocket PC applications
For testing Pocket PC applications, you have the Pocket PC Emulator which gets installed and integrated automatically with the development environment software when it is installed. But currently the emulator coming with Pocket PC 2003 edition has to be downloaded separately.
I hope you found this article useful in starting with Pocket PC development. I have included some links to EVB/EVC/.NET Compact framework articles on Pocket PC development. Awaiting your valuable feedback.
Pocket PC development resources
Microsoft Embedded Operating System Development Center
Microsoft Mobility & Embedded Developer Center
.NET Compact Framework QuickStart Tutorials
Mobile Internet Toolkit Quickstart Tutorials
opennetcf.org - .NET Compact Framework articles/libraries/controls/utilities
developmentor - .NET Compact Framework articles/utilities/samples
Pocket PC Developer Network - EVC/EVB/.NET Compact Framework articles/libraries/books
DEVBUZZ.COM - EVB/.NET Compact Framework articles
business anyplace - EVB/.NET Compact Framework articles/samples
Developer.com - General Pocket PC development articles
Codeguru CE Programming section - EVC++ articles