There seems to be a lot of confusion of terminology when it comes to personal digital assistants. For example, many people use the terms Pocket PC and Smartphone to mean the same thing. There are distinct differences between these terms.
A Pocket PC runs a smaller version of Microsoft Windows, such as Windows Mobile 2002 or 2003 for Pocket PCs. These operating systems are often called Pocket PC 2002 or Pocket PC 2003. Pocket PCs typically have a larger screen and focus on the PDA functionality, although they may also have an integrated phone. Pocket PCs enable you to manage your contacts, calendar, and tasks; surf the Internet; plus run mini versions of programs such as Microsoft Word and Microsoft Excel.
A Smartphone, on the other hand, runs Windows Mobile 2002 or 2003 for Smartphones, also called Smartphone 2002 or 2003. Smartphones typically have a smaller screen and focus on the phone functionality, although they also have integrated PDA features. Smartphones allow you to access your contacts, calendar, and tasks, and surf the Internet, but they cannot run programs such as Microsoft Word or Microsoft Excel.
You can find more general information about the Windows Mobile operating system for both Pocket PCs and Smartphones at www.microsoft.com/windowsmobile.
With the latest version of the Microsoft development tools, such as Visual Studio .NET 2002 and 2003, you can easily write programs that will run on newer Pocket PCs or Smartphones that can run the .NET Compact Framework, such as those running Windows Mobile 2002 or 2003. Furthermore, you can also enable those mobile device applications to call Web APIs, as long as they have an Internet connection. The .NET Compact Framework provides rich support for XML, SOAP, and other Web services concepts. As you have already learned in earlier chapters, calling a SOAP Web service can be as easy as adding a Web reference to the Web service WSDL location and then working with the service in your code. The .NET Compact Framework works the same way.
The .NET Compact Framework enables you to write programs in Visual Basic .NET or C# using the same tools and techniques as you do for desktop programs that use the .NET Framework. What is great about using Visual Studio .NET is that you can write the application one time for the desktop, and then use a large portion of that same code to write one or more mobile versions of the program to run on a Pocket PC and/or Smartphone. Because of the memory, database, and screen-size limitations imposed by mobile devices, you usually have to rework some of the code. After a mobile version of a program has been designed, it is pretty easy to use that same code for both Pocket PCs and Smartphones. As a general rule, approximately 85 percent of the code is the same between a Pocket PC version of a program and the Smartphone version of the program; and in most cases, the differences occur because of changes to accommodate the user interface.
Visual Studio .NET 2003 and later versions have what is referred to as Smart Device Programmability (SDP) features. What this really means is that the .NET Compact Framework has been integrated with VS .NET 2003 and comes preinstalled. For Visual Studio .NET 2002, you have to download the .NET Compact Framework separately and install it. Later in this chapter, you create two sample mobile device applications using Visual Studio .NET so you can see how this works.
When you want to write native applications that are optimized in memory and speed, you may choose to use a language such as C++ or Visual Basic. At other times, you may want to write a mobile device program without using Visual Studio .NET. Microsoft offers eMbedded Visual Tools to allow you to create applications in a separate environment from VS .NET. The eMbedded Visual Tools come with the necessary compilers, debugging tools, and documentation, and they can be downloaded for free from the Microsoft Web site.
For more information about the .NET Compact Framework and eMbedded Visual Tools, visit the following Microsoft Web site: http://msdn.microsoft.com/mobility/windowsmobile/default.aspx.
Was this article helpful?