Porting woes - what to do about the PropertySheet?

Much as we try to reduce the differences between the Pocket PC and Smartphone, there are still some things that are unique to each of these flavors of Windows Mobile from a developer’s perspective. These differences cause problems when porting a Pocket PC application to Smartphone, or maintaining a single binary that runs on both devices.

One of these lingering differences is the PropertySheet control. Although you can technically use a PropertySheet in a Smartphone application, it is best suited for touch-enabled Pocket PC devices due to various usability issues. It is against our design guidelines to use PropertySheet controls in a Smartphone application and therefore you won't find any of the built-in applications use them. So how do you port a Pocket PC application to Smartphone when it has a user interface (UI) like this:

Pocket PC screenshot

There are a couple of options I can think of, each with its own advantages and tradeoffs:

If you have several pages in your PropertySheet (3 or more) with many controls on each page, create a UI like this (with or without the numeric shortcuts):

  

You may have noticed many of our Smartphone applications including the settings dialog work this way. This allows you to keep each group of controls in its own dialog and thus gives you PropertySheet-like logical separation. This may also be ideal if the controls are related with complex validation rules so the code can be kept in separate dialogs.

One disadvantage of this option is that there is no built-in ListBox that gives you the numeric shortcut functionality. I remember seeing some sample source code to accomplish this but can't locate it anymore (please point it out if you have a link).

If you have fewer pages, you can simply combine all the controls into a single dialog like this:

This removes the logical separation, but is very easy to implement. It simplifies your user interface since there is a single parent window instead of multiple property pages to manage. It's even easier because Smartphone dialogs give you automatic scrolling when there are more controls than can fit in a viewable area. At design time, you can simply drop your controls on a dialog resource, add the WS_VSCROLL style, and you get automatic vertical scrolling without writing any additional code.

Given these tradeoffs, which option should you use for long term application compatibility? I don't have a good answer at this time, but I'd like to pose this question back to you, our developer customers. As you might have heard, our goal is to eventually unify Pocket PC and Smartphone into a single Windows Mobile platform. As a result of this unification, some controls may be removed or modified if they cannot be supported on all Windows Mobile devices (touch and non-touch enabled). We haven't made a decision about the PropertySheet control yet but it's one of the things we have to consider.

We want to hear from you about how extensively you use the PropertySheet control, what you feel about the above options and if you have any alternate suggestions.

-Mel Sampat