Smartphone and Pocket PC Development Q: What tools are available for development?
A: To build applications, you should use Visual Studio 2005. See
WhichVersion for more detals.
The previous development suite consisted of Microsoft® eMbedded Visual C
+® 4.0, Microsoft® eMbedded Visual C+® 4.0 Service Pack 3, and the Pocket PC or Smartphone 2003 Software Development Kit. You can download the eMbedded Visual C++ tools and the Pocket PC / Smartphone 2003 SDK. The Windows Mobile 2003 Second Edition emulator pack enables you to test your application on Second Edition devices. Note that the Pocket PC / Smartphone 2003 SDK does not support Microsoft® eMbedded Visual Basic® development. To build managed code applications, you could use Visual Studio .NET 2003 and the Pocket PC / Smartphone 2003 SDK. To build mobile web applications, use the ASP.NET Mobile Controls in Visual Studio .NET 2003.
However, all these products have been superceded by Visual Studio 2005.
Developing with older tools Q: Will Pocket PC 2002 applications work on Pocket PC 2003 devices?
A: Well-behaved Pocket PC 2002 applications that have used documented
APIs are expected to run without recompile on Pocket PC 2003 devices.
Q: Why is eVB development no longer supported for Pocket PC 2003?
A: We will continue to support the eVB run-time in Pocket PC 2003 devices as a RAM installable component, so that older eVB applications will be able to run on the new device, but new eVB development for Pocket PC 2003 devices will not be supported leaving way for more powerful and robust development experiences with Visual Basic® .NET, Visual C#® .NET, and the Microsoft®.NET Compact Framework.
Based on customer feedback, the Pocket PC 2003 devices will include the .NET Compact Framework in ROM. The .NET Compact Framework is a subset of the full .NET Framework that is specifically designed for smart devices. It is a far more comprehensive, language neutral application engine than the eVB specific runtime that was provided in the Pocket PC 2000 and Pocket PC 2002 devices.
Q: How do I migrate from eVB to Visual Basic .NET?
A: The move from eVB to Visual Basic .NET is not easy but the benefits of migrating far outweigh the costs:
*Richer data types: eVB has only a 16-byte VARIANT; Visual Basic .NET uses the .NET Framework common type system.
*Faster execution: eVB is interpreted; Visual Basic .NET is JIT (just in time) compiled to native code prior to execution
*Better error handling: eVB only supports "On Error"; Visual Basic .NET supports structured exception handling
*Support for structures: not in eVB; Visual Basic .NET supports namespaces, classes, and structures
*Object-oriented: eVB is procedural; Visual Basic .NET supports full OOP (object orientated programming)
*First-class citizen: eVB is always playing catch-up with MFC; Visual Basic .NET is core .NET
*Native XML Support: not in eVB; Visual Basic .NET has native support for XML and XML Web services
*Better data model: ADOCE is far surpassed by ADO.NET; our best data model yet
*Safer, more reliable execution: eVB is a scripting language; Visual Basic .NET is managed code
*And much, much, more!
As well, there are a wide variety of resources to help developers make this transition, from porting labs to technical articles. One example is a technical article that outlines the advantages and how-to of moving from eVB to Visual Basic .NET: Moving from eMbedded Visual Basic to Visual Basic .NET.
Q: Is MFC or ATL available for Smartphone 2002 development?
A: No, MFC and ATL development is not supported in Smartphone 2002.
Q: Can eMbedded Visual Basic 3.0 be used to build applications for Smartphone 2002?
A: No, there is no support for eVB development targeting Smartphone 2002.
Q: What tools are available for programming Microsoft's Smartphone 2003?
A: With the release of Smartphone 2003 you have two options for development , either native code through eMbedded Visual C++ 4.0 with Service Pack 3 or managed code through Visual Studio .NET 2003. In both cases you will need to download the Smartphone 2003 SDK. The Windows Mobile 2003 Second Edition emulator pack enables you to test your application on Second Edition devices.
Both eMbedded Visual C++ 4.0 and the Smartphone 2003 SDK are available at Windows Mobile Developer.
Q: What version of the .NET Compact Framework is available on Smartphone 2003?
A: Smartphone 2003 allows developers to code against the .NET Compact Framework 1.0 Service Pack 1. The .NET Compact Framework will be available in ROM on Smartphone 2003. .NET Compact Framework 1.0 Service Pack 2 is available in ROM on Smartphone 2003 Second Edition.
Q: Will Smartphone 2002 applications work on Smartphone 2003 devices?
A: Well-behaved Smartphone 2002 applications that have used documented
APIs are expected to run without recompile on Smartphone 2003 devices.
Q: What are example Smartphone 2002 and Smartphone 2003 devices?
A: The original Orange SPV and Orange SPV e100 run Windows Mobile 2002. The MPX200 on both Orange and AT&T are both Windows Mobile 2002-based Smartphones. The Orange SPV e200 runs Windows Mobile 2003.
Q: Is MFC or ATL available for Smartphone 2003 development?
A: MFC is not available for Smartphone 2003. You can use ATL 4.0 to develop for Smartphone 2003. Please refer to the SDK documentation for more information about ATL 4.0.
Q: Where can I find more information about the Smartphone application security model?
A: To help developers understand the Windows Mobile-based Smartphone application security model, we have created a white paper. See http://msdn.microsoft.com/library/en-us/dnsmtphn2k3/html/smartphone_security.asp.
Q: What is prompt mode?
A: An OEM or operator can include prompt mode in their Smartphone application security policy to allow the user to decide whether to install or run an application at install or run time.
Q: Can eMbedded Visual Basic 3.0 be used to build applications for Smartphone 2003?
A: No, there is no support for eVB development targeting Smartphone 2003. If you want to leverage Visual Basic development skills consider using Visual Basic .NET and targeting the .NET Compact Framework.
Q: What resources are there for developing for Windows Mobile 2003 Second Edition?
Download the new Windows Mobile Developer Resources
packagehttp://www.microsoft.com/downloads/details.aspx?FamilyId=6A34DC83-C3CE-4A4C-AB83-491FD5729551&displaylang=en, which includes white papers and new and updated code samples.
You can test your application using new emulator packages.
eMbedded Visual C++ 4.0 developers should download Service Pack 3 for eMbedded Visual C++ 4.0.
Q: What is Microsoft eMbedded Visual Tools 3.0?
A: eMbedded Visual Tools 3.0 is an Integrated Development Environment (IDE) that mobile developers use to write software applications for 32-bit devices based on the Microsoft Windows CE operating system. Included are full versions of the Microsoft eMbedded Visual C++ 3.0 language, Microsoft eMbedded Visual Basic 3.0 language, platform-specific
SDKs, remote tools, and documentation.
Q: What device platforms do the eMbedded Visual Tools 3.0 support?
A: eMbedded Visual Tools 3.0 - 2002 Edition comes with
SDKs for the Pocket PC 2000, Pocket PC 2002, and Smartphone 2002 and supports development for custom Windows CE 3.0 devices.
Note: The Pocket PC 2002 SDK can be used with both eMbedded Visual Basic 3.0 and eMbedded Visual C++ 3.0, whereas the Smartphone 2002 SDK is supported only by eMbedded Visual C++ 3.0.
Q: What is eMbedded Visual C++ 4.0?
A: eMbedded Visual C++ 4.0 is a powerful development tool that offers considerable benefits to companies building native code applications for the next generation of Windows CE-based devices, including the Pocket PC 2003 and Smartphone 2003. This stand-alone integrated development environment (IDE) brings a new level of productivity to Windows CE development without compromising flexibility, performance, or control. To build applications for Pocket PC 2003 and Smartphone 2003 using the eMbedded Visual C++ tools, you will also need eMbedded Visual C++ 4.0 Service Pack 3 and the Pocket PC 2003 and Smartphone 2003
SDKs. Download the eMbedded Visual C++ 4.0 tools.
Q: Can I use eMbedded Visual C++ 4.0 to develop applications for Pocket PC or Smartphone?
A: eMbedded Visual C++ 4.0 with Service Pack 2 can be used to develop applications for the Pocket PC 2003 and Smartphone 2003 including Windows Mobile 2003 Second Edition. It can not be used to develop applications for Pocket PC 2002 or Smartphone 2002.
Q: Can I use the Windows CE Standard SDK to develop applications for Pocket PC or Smartphone?
A: The Windows CE SDK provides a common subset of features that allow an application written to conform to the Standard SDK to run on custom display-based Windows CE .NET platforms. In order to build smart device applications for Pocket PC and Smartphone that take advantage of the rich device feature set offered by these platforms, use the device-specific
SDKs. Q: What is the difference between eMbedded Visual Tools 3.0 and Visual Studio .NET?
A: eMbedded Visual Tools 3.0 is a stand-alone development environment aimed specifically at mobile and embedded developers. For Pocket PC and Smartphone, use eMbedded Visual Tools with the appropriate platform
SDKs to build rich "native code" client applications. Visual Studio .NET is Microsoft's latest version of its most popular desktop development tool. Use Visual Studio .NET 2003 to build .NET Compact Framework-based Pocket PC smart client applications. Also, use Visual Studio .NET and the ASP.NET mobile controls for browser-based applications that target a wide variety of devices, including the Pocket PC and Smartphone class of devices.
Q: Why isn't eMbedded Visual C++ integrated into Visual Studio .NET?
A: Based on customer feedback, our initial efforts have been focused on enabling Visual Basic .NET developers to more easily program devices. However, the ability to create device applications using native code (C++) will be integrated into the next version of Visual Studio.
Q: What is the .NET Compact Framework?
A: The .NET Compact Framework is a subset of the .NET Framework that is designed to run on resource-constrained devices, providing support for managed code and for XML Web services. The .NET Compact Framework greatly reduces the development cost of writing applications and services that run on devices such as the Pocket PC. Because the .NET Compact Framework is a subset of the .NET Framework that developers use to write desktop and server applications, they already have all the necessary skills to write applications for Pocket PC and Smartphone 2003 devices.
Q: What are the key benefits of using the .NET Compact Framework?
A: One of the biggest barriers to writing device applications today is that most devices require developers to learn different
APIs and use different programming tools than they would use for desktop applications. Because the .NET Compact Framework uses the same .NET Framework programming model and the same Visual Studio .NET development tools that developers are already using on desktops and servers, it greatly reduces the cost of developing device applications and increases developer productivity. These gains, in turn, enable companies to use smart devices in new ways that enhance their business. The .NET Compact Framework is also the only mobile development platform with native support for XML Web services.
Q: What devices can run the .NET Compact Framework?
A: The .NET Compact Framework 1.0 is available as a RAM install for Pocket PC 2000 and Pocket PC 2002 devices (including Phone Edition), and is in ROM on Pocket PC 2003 devices. Smartphone 2003 devices include the .NET Compact Framework 1.0 Service Pack 1. All Windows Mobile 2003 Second Edition devices contain the .NET Compact Framework 1.0 Service Pack 2.
Q: When will the .NET Compact Framework be available?
A: Version 1.0 of the .NET Compact Framework is available as part of the Visual Studio .NET 2003 release. For more information, see Device Development.
Q: Can the .NET Compact Framework run all .NET languages?
A: Initially the .NET Compact Framework will run Visual C# and Visual Basic. Other .NET languages will also run as long as they conform to the subset of the common language runtime that the .NET Compact Framework supports.
Q: Will .NET Compact Framework applications perform as well as eMbedded Visual C++ applications?
A: In most cases, applications written with eMbedded Visual C++ will run faster than those written using Visual Basic .NET or Visual C# .NET. However, for computationally intensive portions of their application, developers will see a substantial improvement of their Visual Basic .NET applications over their eMbedded Visual Basic equivalents.
Q: What's the difference between the .NET Compact Framework and the ASP.NET Mobile Controls?
A: There are two different approaches to programming devices. One approach is to place the application on the smart device. The other approach is to place the code on the server and present the user interface via a browser. The .NET Compact Framework enables the former, and the ASP.NET Mobile Controls (formerly known as Microsoft Mobile Internet toolkit) enables the latter.
Building mobile applications using code on the device enables an application to continue to function in the absence of an Internet connection. Applications that run directly on the device also enable much richer user interfaces, as well as the opportunities to integrate with assets available on the operating system, such as multimedia and other applications. Using the .NET Compact Framework enables a highly productive model for building smart device applications.
Building mobile applications where the code lives on the server also has its advantages. This architecture is highly useful for when the widest range of Internet-enabled mobile devices must be reached. These applications are also not limited in resources, since they run on the same servers as desktop Web applications. Authoring these applications is accomplished using the ASP.NET Mobile Controls within Visual Studio .NET.