In the April 17 Mobile & Wireless UPDATE, I shared some best practices for working with the Windows .NET Compact Framework. This week, I want to continue looking at best practices, this time focusing on usability and deployment.

When you develop mobile applications within the Compact Framework, usability is a key consideration. Users navigate mobile applications quite differently from the way they use desktop, laptop, and even Web applications. If you design a mobile application's interface correctly, the application will be intuitive and require little training and ongoing support. Here are some usability tips:

- Avoid requiring intensive data entry. Best practice is to let users select options and data. If you can't get around a certain amount of data entry, you can have users use the Software Input Panel (SIP), but I've found that users prefer using the Pocket PC Transcriber for natural handwriting input.

- Enable device hardware buttons whenever possible, and avoid requiring the use of the stylus for repetitive and general actions. The up and down spinner buttons and the select button are examples of hardware buttons that let the user easily navigate lists and select options.

- Avoid presenting too many options to the user on each form. If you reduce the number of options, the user can more easily determine what he or she needs to do next. If you must provide additional options, place them in secondary menus to which the user can navigate, if necessary.

- Whenever possible, use large buttons so that users can easily make selections. Consider that many field users wear gloves or work in outdoor conditions. The easier a button is to press, the better.

To conclude this discussion of best practices for the Compact Framework, I want to talk about deployment. Remember that Compact Framework applications run locally on the mobile device and most often use local data storage. You need to get the application to the device for local usage. Therefore, you need to consider the best way to initially deploy the application to mobile devices and how to redeploy updated applications. Here are some deployment tips:

- Avoid using Microsoft ActiveSync from a desktop computer to deploy applications. Desktop ActiveSync requires that you have a PC, and you can deploy to only one device at a time.

- Use automatic distribution mechanisms--such as emailing compressed cabinet format (CAB) files or Web downloading CAB files--or other advanced software-distribution mechanisms, such as Microsoft Systems Management Server (SMS) or XcelleNet's Afaria. In my experience, using a Web interface to download CAB files is a simple but effective approach. Doing so involves creating an administrative Web site that contains links to relevant CAB files: You connect to the site from Microsoft Pocket Internet Explorer (IE), click the appropriate link, and can then download and automatically install and reinstall applications.

- Use separate CAB files for prerequisites and individual applications. Separate CAB files let you separately download and install the prerequisites such as Compact Framework core components, Microsoft SQL Server 2000 Windows CE Edition 2.0, and other base functionality. After you install these core components, you can easily deploy and redeploy specific applications.

If you heed these best practices for developing and implementing Compact Framework applications, you'll be able to develop rapidly, access data effectively, ensure efficient application performance, and deploy applications to end users quickly. Nearly 300,000 developers are working on Pocket PC applications worldwide. Considering that more than 7 million Windows developers can now use the Compact Framework and Microsoft Visual Studio .NET 2003 to rapidly develop mobile applications, I'm sure we'll start seeing many powerful solutions from many companies.

In the April 17 Mobile & Wireless UPDATE, I shared some best practices for working with the Windows .NET Compact Framework. This week, I want to continue looking at best practices, this time focusing on usability and deployment.

When you develop mobile applications within the Compact Framework, usability is a key consideration. Users navigate mobile applications quite differently from the way they use desktop, laptop, and even Web applications. If you design a mobile application's interface correctly, the application will be intuitive and require little training and ongoing support. Here are some usability tips:

- Avoid requiring intensive data entry. Best practice is to let users select options and data. If you can't get around a certain amount of data entry, you can have users use the Software Input Panel (SIP), but I've found that users prefer using the Pocket PC Transcriber for natural handwriting input.

- Enable device hardware buttons whenever possible, and avoid requiring the use of the stylus for repetitive and general actions. The up and down spinner buttons and the select button are examples of hardware buttons that let the user easily navigate lists and select options.

- Avoid presenting too many options to the user on each form. If you reduce the number of options, the user can more easily determine what he or she needs to do next. If you must provide additional options, place them in secondary menus to which the user can navigate, if necessary.

- Whenever possible, use large buttons so that users can easily make selections. Consider that many field users wear gloves or work in outdoor conditions. The easier a button is to press, the better.

To conclude this discussion of best practices for the Compact Framework, I want to talk about deployment. Remember that Compact Framework applications run locally on the mobile device and most often use local data storage. You need to get the application to the device for local usage. Therefore, you need to consider the best way to initially deploy the application to mobile devices and how to redeploy updated applications. Here are some deployment tips:

- Avoid using Microsoft ActiveSync from a desktop computer to deploy applications. Desktop ActiveSync requires that you have a PC, and you can deploy to only one device at a time.

- Use automatic distribution mechanisms--such as emailing compressed cabinet format (CAB) files or Web downloading CAB files--or other advanced software-distribution mechanisms, such as Microsoft Systems Management Server (SMS) or XcelleNet's Afaria. In my experience, using a Web interface to download CAB files is a simple but effective approach. Doing so involves creating an administrative Web site that contains links to relevant CAB files: You connect to the site from Microsoft Pocket Internet Explorer (IE), click the appropriate link, and can then download and automatically install and reinstall applications.

- Use separate CAB files for prerequisites and individual applications. Separate CAB files let you separately download and install the prerequisites such as Compact Framework core components, Microsoft SQL Server 2000 Windows CE Edition 2.0, and other base functionality. After you install these core components, you can easily deploy and redeploy specific applications.

If you heed these best practices for developing and implementing Compact Framework applications, you'll be able to develop rapidly, access data effectively, ensure efficient application performance, and deploy applications to end users quickly. Nearly 300,000 developers are working on Pocket PC applications worldwide. Considering that more than 7 million Windows developers can now use the Compact Framework and Microsoft Visual Studio .NET 2003 to rapidly develop mobile applications, I'm sure we'll start seeing many powerful solutions from many companies.