The release of uniPaaS 1.8 will be significant news for those seeking to develop Rich Internet Applications (RIA) for Windows Mobile devices.
With uniPaaS 1.8, you can expand your IT offering by supporting Windows Mobile devices alongside stationary desktops. Smartphones have become enterprise-class, making this a top 2009 priority for many IT departments and a key part of their IT strategy. With the metadata-centered productivity principles of uniPaaS, you can now easily produce highly interactive mobile applications. Existing Magic applications can be upgraded to uniPaaS and deployed as Windows Mobile applications. Most of the changes required to your application will obviously be in the graphical user interface. New applications destined for Windows Mobile can be quickly generated from the data table structure you design for your application.
As Michael Singer and I have pointed out in many previous webinars, developing mobile applications with uniPaaS is very similar to developing RIA for desktop display. Obviously, the main difference between desktop RIA and Mobile RIA is the consideration of the mobile devices’ viewing area and the expected user experience, such as touch screens and styles, and the deployment methodology. The new documentation for uniPaaS 1.8 highlights a number of important considerations.
First, there are a few prerequisites you should take into consideration. RIA applications require that you install the .NET Compact Framework and the Smart Device Framework on the mobile device. The Rich Client Deployment Builder generates an HTML that contains links to these framework files for easier installation. This means that you can simply browse the mobile device to the HTML file and install everything needed from there. Once the installation completes, the browser is no longer needed. Direct installation to the mobile device is also possible by following instructions that came with the device.
The RIA development paradigm for Windows Mobile is similar to the RIA development paradigm for other Windows versions; with these caveats: mobile devices have smaller screen sizes. Consequently, navigation is more complicated. Applications screens need to be designed to account for the much smaller "real estate" of the mobile device. Because mobile devices have unique screen resolutions, use of placement is recommended.
For the popular QVGA screen format, it is recommended to use Microsoft Sans Serif 8 font in the form properties. In addition, a width of 49 and height of 20.5 is ideal.
You should also keep in mind that mobile devices perform more slowly than desktop PCs. Good application design will find the right balance between client side operations (where the performance is slower) and server side operations (whose results require communication time and consume bandwidth). Try to avoid approaches that push large amounts of data to the client or call on the mobile client to perform extensive calculations. The good news is that bandwidth is improving all the time, with megabit throughput levels reliably available through networks such as WiMAX, EV-DO Rev A, and HSPA.
Keep in mind that the .NET Compact Framework does not include all of the functionality of the .NET framework. You will see that Mobile applications work differently. For example, the main menu opens from the bottom of the screen up in a mobile application. If only two options are possible in a menu, the items are displayed in smartphone style with the first item on the left and the second on the right side, both selectable by the corresponding smartphone key. I won't get into all the differences between .NET and .NET compact here, but you should look carefully at the uniPaaS Mobile Deployment – Supported Properties page in the uniPaaS documentation contained in the help file.
A new uniPaaS function called IsMobileClient allows you to see whether or not the client is a mobile device or not. In this manner, you can optimize your application to perform differently for mobile devices and desktop devices. Since you will have designed all of your underlying business functions using components, this really only effects the user interface layer of your application. You can use this function, for example, if you need to dynamically select a form suitable for a mobile device, or to process some logic differently based on the fact that the user is known to be mobile.
There are many, many more improvements in uniPaaS 1.8, including of course support for the use of any .NET control or assembly within your uniPaaS application. You can upgrade the look and feel of your Rich Internet Application by directly placing new .NET controls into your RIA user interface. You can also enhance the functionality of your RIA by integrating any .NET assembly. We will take a much closer look at this and other features of uniPaaS 1.8 in a future article.