Content by Category
.NET 1.x
.NET 2.0
.NET 3.0
.NET 3.5
.NET 4.0
.NET 4.5
.NET Assemblies
.NET Framework
.NET Getting Started
Accessibility
ADO.NET
Advertorials
Agile Development
AJAX
Amazon Web Services
Analysis Services
Android
Architecture
Arduino
ASP .NET Web API
ASP.NET
ASP.NET MVC
ASP.NET WebForms
Azure
B2B (Business Integration)
BDD
Big Data
Bing
BizTalk
Book Excerpts
Build and Deploy
Business Intelligence
C#
C++
ClickOnce
Cloud Computing
Code Contracts
CODE Framework Info - non Technical
CODE on the Road!
COM+
Community
Conferences
Continuous Integration
Crystal Reports
CSLA.NET
CSS
Data
Debugger
Design Patterns
Development Process
Display Technologies
Distributed Computing
Document Database
DotNetNuke
DSL
Dynamic Languages
Dynamic Programming
Editorials
Enterprise Services ("COM+")
Entity Framework
Events
Expression Blend
F#
Fox to Fox
Frameworks
Functional Programming
Git
Graphics
HTML 5
Internet Explorer 8.0
Interviews
IOS
iPhone
Iron Ruby
Java
Java Script
JavaScript
jQuery
JSON
Lightswitch
LINQ
Linux
LUA
Mac OS X
MDX
Messaging
Metro
Microsoft Application Blocks
Microsoft Business Rules Framework
Microsoft Dynamics
Microsoft Expression
Microsoft Office
Mobile Development
Mobile PC
Mono
MsBuild
MVVM
MySQL
Network
NHibernate
node.js
NOSQL
Nuget
Object Oriented Development
Objective C
Odata
OLAP
Open Source
Opinion
Opinions
Oracle
ORM
Other Languages
Parallel Programming
Patterns
PHP
Podcasts
Post Mortem
PowerPoint
Print/Output
Prism
Product News
Product Reviews
Project Management
Prolog
Python
Q&A
Rails
Rake
Razor
Reporting Services
REST
RIA Services
Ruby
Ruby on Rails
Scheme
Search
Security
Services
SharePoint
SignalR
Silverlight
SOA
Social Networks
Software & Law
Software Business
Source Control
Speech-Enabled Applications
SQL Server
SQL Server 2000
SQL Server 2005
SQL Server 2008
SQL Server 2012
SQL Server CE/AnyWhere/Mobile/Compact
SSIS
Subversion
Sync Framework
Tablet PC
TDD
Team System
Techniques
Testing and Quality Control
TFS
Tips
TypeScript
UI Design
UML
User Groups
VB Script
VB.NET
Version Control
VFP and .NET
VFP and SQL Server
Virtual Earth
Vista
Visual Basic
Visual Basic 6 (and older)
Visual FoxPro
Visual Studio .NET
Visual Studio 11
Visual Studio 2005
Visual Studio 2008
Visual Studio 2010
Visual Studio 2011
Visual Studio 2012
Visual Studio Tools for Office
VSX
WCF
Web Development (general)
Web Services
WebMatrix
WF
Whitepapers
Windows 7
Windows 8
Windows Azure
Windows Live
Windows Phone 7
Windows Phone SDK
Windows Server
Windows Vista
WinForms
WinRT
Workflow
WPF
XAML
Xiine Documentation
XML
XNA
XSLT



SSWUG


XAMALOT
 


SSWUG


Reader rating:
Article source: CoDe (2007 - Vol. 4 - Issue 2 - Mobility)


Article Pages:  1  2 3 - Next >


Adapting Existing Applications to Work on UMPCs

The Ultra-Mobile PC (UMPC) presents a new opportunity for existing applications to extend their potential audience. Microsoft® Windows® desktop applications can mobilize onto the UMPC platform, providing users with desktop functionality while on the move. Windows Mobile™ device applications can take advantage of the larger screen size and storage space of the UMPC to extend the application capabilities.

Whether you are a Windows Mobile device developer or a desktop application developer, the UMPC provides exciting new opportunities for your applications to reach users who might not have previously enjoyed interacting with your software. In order to provide the best user experience on the UMPC, your application is likely to require some user interface changes. If you are looking to extend the reach of your Windows Mobile application, there may also be some functionality changes required.

"
To resolve the lack of hover support, you need to think about what other visual clues you can provide to the user.
"

This article will walk through two scenarios: changing an existing desktop Windows application to work well on the UMPC, and then repeating the process but this time with a Windows Mobile device application. The goal in both scenarios is to maintain a single code base that creates an application that continues to run on the original target platform but also provides a great user experience for a user running on an Ultra-Mobile PC.

You can download all the code for this article from http://Roodyn.com/WorkOnUMPC.ashx

Adapting a PC Application to the UMPC

A UMPC is a full PC, running the full version of the Windows operating system. This implies that a PC application should “just run” on a UMPC and it will. However, there is a slight hitch; most PC applications are built with a view that the user will be driving the application with a mouse, the screen size will be at least 1024 x 768 pixels, a keyboard is attached to the computer, and users eyes will be approximately between 20 and 30 inches from the screen.

A user is likely to drive a UMPC application with either their finger or a stylus. The default resolution for the UMPCs available today is 800 x 480 pixels. Many of today’s UMPCs will not have a keyboard attached. Microsoft designed the UMPC to be held in the hand and the user’s face is likely to be approximately 10 to 15 inches from the screen. With these differences in mind, you can create a UMPC version of an application.

The sample PC application converted in this article is a simple picture viewer that allows the user to build collections of pictures to browse-think of the collections as playlists for pictures. Figure 1 shows the application running on a UMPC before it has been converted. You can see that the window has been squashed to try and fit it within the screen size and the right edge of the window is off the screen. The toolbar buttons are small; unless you have delicate little fingers these would cause an issue for most users.

Click for a larger version of this image.

Figure 1: Windows application running on a UMPC.

If you run this application on a PC with a larger screen and a mouse you will notice that the default size for the main windows is a quite large 1000 x 700. You will also notice that each toolbar button shows a tooltip when the mouse pointer hovers over the button. These tooltips provide the user with information as to the function of each button. With a UMPC being operated by finger there is no concept of hover. Unlike an active digitizer Tablet PC, the UMPC touch digitizer provides no means to hover with a stylus or your finger. Tooltips, such as those used on the toolbar buttons, are useless for a UMPC application.

The TreeView and Menu controls will also likely present some issues for a UMPC user using their finger to interact with the screen. You can address the size of the buttons, TreeView control nodes, and the menu by simply increasing their respective sizes and font sizes. Microsoft provides a document on MSDN® called the “Mobile PC User Experience Guidelines for Developers” (http://msdn2.microsoft.com/en-gb/library/ms695565.aspx), which addresses many issues such as control sizing.

To resolve the lack of hover support you need to think about what other visual clues you can provide to the user. In this case, changing the toolbar button style from Image to ImageAndText provides informative text on the buttons.

You can resolve the issue with sizing the form by ensuring the form is never bigger than the working area of the screen. You should then position the form in the center of the screen. The code in Listing 1 provides an example of a simple approach you should consider. In order to support features, such as changes in screen orientation, you will need to get a little bit smarter. I will explain this further in the next section as Windows Mobile applications need to deal with orientation changes as well.

You can see the final result of these changes in Figure 2. The controls are far more finger friendly. As the UMPC is a full PC there will be no issues with functionality needing to be changed; it is simply a case of ensuring the user interface provides a better experience for your users.

Click for a larger version of this image.

Figure 2: Windows application after the user interface changes.

&

By: Neil Roodyn

Dr. Neil is an independent itinerant consultant, trainer, and author. He travels the world working with software companies. Dr. Neil loves Australia, where he spends the summer enjoying the Sydney lifestyle and helping software development teams get more productive. Dr. Neil spends his other summer each year flying between northern Europe and the USA working with software teams and writing about his experiences.

Neil brings his business and technical skills to the companies he works with to ensure he has happy customers.

You can find out more from his Web site http://www.Roodyn.com.

Fast Facts

Using the .NET Framework, it is now possible to build a single assembly that can run on all of your machines, from a Windows Mobile Smartphone through to a server, with no need to recompile. As the UMPC is a full PC in a small form factor, you can extend the reach of your application to a new target audience.



Listing 1: Resize the form
private void ResizeForm()
{
    Rectangle screenRect = Screen.GetWorkingArea(this);
            
    if (this.Width > screenRect.Width)
    {
        this.Width = screenRect.Width;
    }
    if (this.Height > screenRect.Height)
    {
        this.Height = screenRect.Height;
    }
    Point location = new Point(
        (screenRect.Width / 2) - (this.Width / 2),
        (screenRect.Height / 2) - (this.Height / 2));
    this.Location = location;
}


Article Pages:  1  2 3 - Next Page: 'Adapting a Pocket PC Windows Mobile Application to the UMPC' >>

Page 1: Adapting Existing Applications to Work on UMPCs
Page 2: Adapting a Pocket PC Windows Mobile Application to the UMPC
Page 3: Adapting a Pocket PC Windows Mobile Application to the UMPC (con't)

How would you rate the quality of this article?
1 2 3 4 5
Poor      Outstanding

Tell us why you rated the content this way. (optional)

Average rating:
2.8 out of 5

5 people have rated this article.

TOWER 48

      LearnNow

 

SSWUG