Microsoft eMbedded Visual Tools
Perhaps the most surprising thing about Microsoft's eMbedded Visual Tools 3.0 tool suite is the cost: It's free! eMbedded Visual Tools consists of eMbedded Visual C++ and eMbedded Visual Basic, special versions of Microsoft's most popular development tools designed for the Windows CE operating system. In addition to these tools, a "platform SDK" is required for each platform for which you intend to build applications. For instance, after downloading and installing the eMbedded Visual Tools suite, my system was also populated with Platform SDKs for the Handheld PC Pro, Palm-Size PC 1.2, and the Pocket PC. Each of these SDKs includes a realistic emulator to be used in testing your application on your local Windows 2000/XP development system before deploying to an actual device. Each SDK also includes a wealth of examples that can be compiled, installed, and tested on your target device, helping to considerably smooth the learning curve.
eMbedded Visual C++
eMbedded Visual C++ (see Figure 1) will be very familiar to anyone who has ever developed in Microsoft Visual C++. There is one notable exception: eMbedded VC++ developers can choose between installed SDK targets (HPC, Palm-Size PC, and Pocket PC) and can then drill down to a specific target CPU type and default runtime test device! In addition to these capabilities are many of the features that have made Visual C++ the most popular C++ development tool. These include the familiar Visual Studio (pre-.NET!) IDE, Source Browser, VC++ tools (Spy++, Registry Editor, Heap Walker, Process Viewer, Zoomin, and File Viewer), and powerful editor. Microsoft recommends using Visual C++ if you're writing device drivers, require native applications performance (for example, for games), or need to build COM servers or ActiveX controls.
Figure 1 eMbedded Visual C++ 3.0.
eMbedded Visual Basic
eMbedded Visual Basic (see Figure 2) is also a virtual clone of its Win32 desktop counterpart. Like eVC++, the eVB developer can choose a specific target device and test/deploy to that target device from within the IDE. One hurdle that experienced VB developers (and code to be ported) must clear is the lack of strong data typing for VB on the WinCE platform. Only variant types are supported, eliminating useful quasi-OO concepts such as VB classes. eVB also lacks the availability of a mass market of existing software components. (There are a few available for eVB, but nowhere near the number of ActiveX components that are available for Win32.) Other than that, though, eVB is clearly the premier rapid application development tool for the Windows CE platform, allowing a developer to quickly prototype, compile, and deploy a forms-based application in a matter of days or weeks.
Figure 2 eMbedded Visual Basic 3.0.