Archive for July, 2007

Development Tools for Windows Mobile Devices

Sunday, July 8th, 2007

Photo of box for Microsoft Windows CE Toolkit for Visual C++ 6.0 productA common question asked in online support forums is which version of Microsoft development tools are required for a device powered by a particular version of Windows Mobile. With the pace technology is changing, there are numerous Microsoft products which can be utilised to develop mobile applications.

Native Development
If you are developing in native code (C or C++) you have a number of choices. Back in the early days (before Pocket PC or Windows Mobile), development was achieved via an extension to the desktop version of Visual Studio 6.0. This extension was called the Microsoft Windows CE Toolkit for Visual C++ 6.0.

The first Microsoft development environment targeted specifically for mobile developers was called Embedded Visual C v3 (EVC3). This IDE was specifically designed for developers working on Windows CE and Pocket PC devices. The functionality and UI was very similar to Visual Studio 6.0, but was slightly extended to support development against multiple device types and deployment/debugging on actual devices. Embedded Visual C version 3, via the installation of additional SDKs supported producing applications for Pocket PC 2000 and 2002 devices as well as older Handheld PC (HPC) and Palm PC platforms.

The next upgrade was to Embedded Visual C v4 (EVC4) which was released in 2003, and only supports Windows Mobile 2003 devices. This is not to say that applications developed with EVC3 would not run on Windows Mobile 2003 devices, the Windows Mobile operating system is highly backwards compatible, meaning that applications developed for previous versions of the operating system will in most cases still run on newer versions of the operating system unmodified.

However developing applications for newer versions of the operating system using older tools which don’t explicitly support them has two main problems.

  • Lack of debugging and deployment support – you can compile applications which will run on the new operating system version, but the IDE will not be able to automatically deploy your application to a device, and you will not be able to debug your application running on a real device.
  • Lack of access to new APIs and features – For example Windows Mobile 2003 SE introduced dynamic screen orientation support (toggling between landscape and portrait), but if you use EVC3 and utilise the Pocket PC 2002 SDK you will not have easy access to the APIs which support this, since the Pocket PC 2002 header and library files will not include the information required to use them.

EVC3 and EVC4 are very old tools, which are reasonably unsupported by Microsoft at this stage. EVC3 is effectively unsupported and EVC4 is very close to being near the end of it’s mainstream support life-cycle (see Microsoft Support Lifecycle for Development Tools page for further details). They are fairly non functional under Windows Vista for instance, with Microsoft’s recommended practice being to use the tools within a Virtual Machine running a copy of Windows XP, which has its own problems.

The replacement for Embedded Visual C has been Visual Studio 2005. Visual Studio 2005 is the first version of Visual Studio .NET which has included support for C and C++ development for smart devices, which is Microsoft’s current term for PDAs and embedded devices running Windows CE. While EVC3 and EVC4 were available as free downloads, Smart Device development is not available in the free versions of Visual Studio (such as Visual Studio 2005 Express), meaning developers must purchase a copy of Visual Studio 2005 Standard or higher to develop for Mobile devices (see Microsofts’s Product Feature Comparision page for further details on the various SKUs of Visual Studio 2005).

Out of the box Visual Studio 2005 only supports developing applications for Windows Mobile 2003 devices. However additional SDK downloads enable you to develop applications targeting the additional features present in the Windows Mobile 5.0 and Windows Mobile 6 releases of the operating system, with full debugging support etc.

In summary for native development you are best to

  • use EVC3 for Pocket PC 2000, 2002 (and older)
  • use EVC4 for WM 2003
  • use VS2005 for WM2003, WM5.0, WM6

Managed Development
Visual Studio .NET 2002 saw the start of Compect Framework support within Visual Studio. Support was included via an additional download which was called the Smart Device Extensions (SDE) which was only available as a beta. This development environment supported development for Pocket PC 2002 devices which utilised Compact Framework version 1.0.

Visual Studio .NET 2003 was the first version of Visual Studio .NET to officially support the Compact Framework, having the Smart Device Extensions functonality included in the core product. Although it was functional it was not tightly intergrated, for example the GUIs designed in the form designer had little resemblance to the look and feel of the controls used on the actual device.

Visual Studio 2005 introduced a number of improvements for managed developers, as well as a significantly improved forms designer which had the same look and feel as actual devices, it also included additional support for Compact Framework version 2.0, as well as the existing support for version 1.0.

Visual Studio 2008 will support Compact Framework v2.0 and Compact Framework v3.5 which will be released in the same timeframe. For those wondering, there will be no version 3.0 of the Compact Framework. The Compact Framework team decided to skip version 3.0 in order to keep “in sync” with the versioning of the desktop variant of the .NET framework which has already had a version 3.0 release.

In summary for managed development you are best to

  • use VS2005 for CF1.0 and CF2.0
  • use VS2008 for CF2.0 and CF3.5 (when it becomes available)

Most development tools support atleast two versions of the Windows Mobile operating system. The latest version and the previous one. As new versions of the Windows Mobile devices become available your applications should run on the devices, but you will not be able to debug your applications via the IDE. You will typically need to upgrade to the latest version of Visual Studio for this to function.

The Windows Mobile Team Blog has a posting which manages to condense the information I have outlined here into a neat looking table in a posting titled “Windows Mobile Tool Support Matrix“.

Introductory Compact Framework Presentation – coming soon

Sunday, July 8th, 2007

On August the 8th at 6pm I am presenting at the Christchurch branch of the .NET User Group. I am providing a presentation which is an introduction to development on the .NET Compact Framework aimed at existing desktop developers.

Ths is my first public speaking oppertunity so I am sure closer to the time I will become more nervious etc, but at this stage I am fairly excited about the oppertunity and hope that is is not the last.

If anyone has any tips on public speaking or in creating presentation content I would be glad to hear from them. I like the notes John-Daniel Trask has posted on his blog about his initial experiences in a similiar situation.

Further details, including a registration form should be able to be found on the .NET User Group website within the next few days. I look forward to seeing you there.

Vodafone v1210 – The device which defies description

Wednesday, July 4th, 2007

Vodafone v1210 SmartphoneOne of the disadvanages of leaving Blackbay earlier this year was having to return an iMate KJAM PDA I had been using for a year or so. Wanting to replace my dying personal cellphone I decided I wanted to purchase a Windows Mobile 6 Professional device, the only problem being such devices had only just been announced and devices hadn’t became available yet. What is a geek without geek toys meant to do?

In the end I decided to purchase a Windows Mobile 5.0 smartphone for the short term, to give me time to wait for a desierable Windows Mobile 6 Professional device to reach stores. After some market research I settled on a Vodafone v1210 (also known as a VDA IV) which turned out to be an interesting choice.

One of the attractive features of the v1210 is the cost. The recommended retail price of $569 NZD is approximately half that of other common PDA devices such as the iMate SP5. This makes it competative against tradditional cellphone offerings from the likes of Sony Ericsson etc. However the decrease in list price didn’t come about by magic, as several interesting design tradeoffs have been made to reach it. These tradeoffs help give this device its character and make it hard to describe.

The phone supports bluetooth 1.2 with a number of profiles that allow use in a number of scenarios (bluetooth headsets, dial up modem scenarios etc).

USB is provided as the primary way to activesync the device to a desktop PC. However it is only USB 1.1 which is slower than the USB 2.0 present on most devices. It does make up for this by theoretically having USB host functionality, a feature not present on almost every other PDA – but more on this later…

The lack of any 802.11 WIFI functionality is a little disappointing. While in Las Vagas earlier this year it would have been very handy. I had forgotten to pack the USB sync cable, and although the place was full of free wifi hotspots, they were not able to be used. Global roaming on the 3G cellular network was going to cost approximately $40 NZD per megabyte which made it too prohibitive to deploy the 6 to 8MB worth of CAB files I desired to deploy to my device, leaving me frustrated that I couldn’t transfer files the couple of inches between my laptop and cellphone.

Another thing which surprised me was the lack of infrared support aka IRDA. Although the device has a user interface setting to “receive incoming beams”, the manual does not mention IRDA at all, and it appears not to be supported. This was a pity as recently I had an opportunity to develop some low level OBEX code, and I was surprised when I couldn’t get this device to cooperate.

User Interface
A smartphone is meant to be a cellphone first, PDA second, while a Pocket PC device is tradditional viewed as having these roles reversed. With no touchscreen and only a numeric keypad for user input the navigation of the smartphone’s user interface is all the more important…

The device has a 2.2″ QVGA (240 x 320 pixel) screen which is very clear and bright to read in most lighting conditions, which gets the device off to a good start.

Most navigation within the smart phone user interface is made via the D-Pad, which is in the center of the buttons above the number pad. Items are selected by pushing in the stick. This works reasonably well, but it can be difficult to accurately select specific icons quickly due to the sensitivity of the D-PAD. An alternative mode of navigation which I got used to very quickly was to use the numeric keypad. When presented with a menu or list of icons you can press the 1 key to select the first entry, 2 to select the second entry and so on. I quickly found this to be the quickest and easiest form of navigation, however it has not been applied consistently throughout the operating system and built in applications. For example it cannot be utilised within Pocket Outlook to switch between SMS folders such as the inbox and sent items etc. These inconsistencies are quite jarring when you are utilising the device, especially in situations where you can not place your full attention on your phone, such as when chatting to others at the same time.

Software Packages
The standard Windows Mobile 5.0 platform for Smartphone does not support Pocket Word, Excel or Powerpoint. To cover this discrepancy the device from Vodafone comes pre-packaged with ClearVue’s document viewer applications for Microsoft Word, Excel, Power Point and Adobe PDF file formats. These are ideal applications for displaying the contents of files emailed to the device etc, but do not provide any ability to author or edit content.

Likewise a licensed copy of Opera’s web browser is included, which some people prefer when compared against the standard Pocket Internet Explorer which is also present.

Special Features
The one thing which defines the Vodafone v1210 is the lack of features and choice of components.

The device uses an Intel PXA270 running at 312Mhz and had 128MB Flash coupled with 64MB RAM. Storage memory can be expanded by a microSD card slot situated underneath the battery compartment (near the SIM card).

No camera means no photo blogging applications are viable, and video calls which are often a selling point for 3G phones are not available. I don’t personally count this as a negative for this device as I haven’t heavily utilised the feature on my earlier PDAs, and on the odd occasion where I have the quality of the pictures has left much to be desired.

One feature which the geek in me was very excited about was the fact that the device apparently has a USB host. This capability should mean that USB pen drives, keyboards, mice and other devices should be able to be connected to the phone, provided you find a suitable USB cable to connect the two devices together. I have a number of interesting electronics projects I would like to investigate if I can succeed in getting this feature working, however so far I haven’t managed this. Although the marketing material, user manuals and device appear to confirm that you should be able to connect a pen drive or keyboard I have not succeeded in getting the device to detect them when connected. Peeking into the windows directory and system registry of the device appears to confirm that the device drivers required for this functionality are present, but to my knowledge no one has got this feature to work, as others have tried and failed as well.

Use as a cellphone
The phone is a GSM tri-band device (900, 1800 and 1900 Mhz) for voice, and GPRS/UMTS (2.5G / 3G) for data. Without a camera the 3G data capabilities are really only of use for internet access, either for built in applications or for when the device is used as a modem for a laptop or UMPC etc.

This device was the first time that I have utilised the Smartphone variant of Windows Mobile operating system outside of the device emulator. My initial opinion is that the operating system is not as polished as some other cellphone operating systems. For example the process of canceling out of creating a text message is kind of naff, until you get the hang of it, requiring a couple of key presses which are not really necessary.

Audio quality etc is about average. My biggest complaint of using the device as a cellphone would have to be volume. The ring tones, alarm and in call audio is quiet even at the loudest volume settings. I find it quite easy to sleep through the alarms for instance, and there doesn’t appear to be much I can do about it at a device wide level.

Other Reviews
A couple of New Zealand bloggers have also written reviews of the Vodafone v12110 including Mauricio Freitas’s review on Geekzone and Lukas Svoboda. Both of these reviews come up with similiar conclusions on this device.


This is a device which I would definitely purchase again. The device’s price makes it hard to beat at present, and it’s easy to dismiss most of it’s negatives due to this.

Three pluses

  • Low cost
  • Excellent LCD quality
  • Good value added software

Three negatives

  • Very quiet – easy to miss alarms/calls and low battery warnings
  • Lack of knowledge of product within retail stores.
  • Haven’t managed to get USB host functionality working

My experience purchasing this device wasn’t too difficult, but I did struggle to describe to the shop assistant what product I was looking for. After asking if they had any Vodafone v1210s available, I was told “all phones sold here are Vodafone phones, who is the manufacturer of the phone you are looking for?”. Explaining that the phone was branded as a Vodafone device, and it’s ODM was ASUS only made the situation worse. Eventually I managed to explain the situation sufficiently, and after checking with the manager of the store they discovered they had some in the stock room. I imagine this situation may have improved now, as at the time this was a relatively new device (which was why there were none on the shop floor), and staff now have knowledge that Vodafone actually sell cellphones under their own brand etc.

With Vodafone New Zealand informerly announcing that a Windows Mobile 6 upgrade will be available later this year (see first comment in the GeekZone review) this device is only going to improve with time. The largest negative is perhaps the lack of wifi.

PS: Has anyone managed to get the USB host functionality working? I am very very keen to hear from anyone who has success with this, as being a true geek at heart I have a lot of ideas for devices to interface to this port and I’m itching to work on them…