Adding AJAX Support to Windows Mobile Applications
Introduction
Web applications designed for browsers on desktop computers have already for a long time used scripts to create more usable user interfaces. Add AJAX support on top of this, and you are getting close to the rich set of features available in traditional desktop applications. However, the world is getting more and more mobile, and users start to utilize your web applications from their mobile phones.
Because the browsers available in mobile phones have been previously quite limited, using advanced scripting functionality has been difficult. However, Microsoft's Windows Mobile platform includes the Pocket or Mobile Internet Explorer browser (usually abbreviated PIE or WMIE), and the most recent versions of this browser support AJAX. AJAX support has been available in a limited way already since Windows Mobile 5.0, and the later 6.0 versions already contain nice support for AJAX applications. This brings many possibilities for application developers.
In this article, you are going to learn how you can use Visual Studio 2008 (Windows Mobile development is not currently available in the beta releases of Visual Studio 2010) and C# to develop a simple AJAX-enabled web application that works on a Windows Mobile Professional 6.0 phone or later. For testing purposes, you are going to learn how to use a phone emulator. This makes at least initial testing easier, as you don't need to have a real phone right away.
Getting ready to develop web applications for WM 6.0
When Visual Studio 2008 became available a few years ago, Windows Mobile 5 was the main mobile platform that the tool supported out of the box. This means that if you are interested in developing applications for Windows Mobile 6.0, you would need to separately download the Windows Mobile 6.0 SDK package, and install it on top of Visual Studio 2008 SP1.
The SP1 (Service Pack 1) for Visual Studio is also required to test the code shown in this article. For information on where to download both Visual Studio 2008 SP1 and the Windows Mobile 6.0 SDK, see the Links section at the end of this article.
Figure 1. The Windows Mobile 6.0 SDK can be freely downloaded from Microsoft's web pages
Installing both the Mobile SDK and the SP1 for Visual Studio is straightforward, although installing especially the SP1 can take a long time. Even on a fast computer, it can take an hour or more to get both installed. However, the process is highly automatic, and your intervention is basically needed only to launch the installation process or log in after a reboot.
Once the installation is complete, you can start Visual Studio (you will need to close it to install the updates) and create a new project for your web application. Since the focus of this article is on adding AJAX functionality to ASP.NET web applications, you do not need to start a Visual Studio Smart Device (Windows Mobile) project, but instead a regular web project.
For the purposes of this article, you will see how you can use ASP.NET MVC for web application development, but you are free to use the more traditional WebForms model just as well. Even so, the new MVC model contains good support for AJAX, and if you haven't already investigated this new technology, it is a good time to start. Remember that ASP.NET MVC is not a native part of Visual Studio 2008, and thus you will need to separately download a small installation package for it, too.
Creating a simple MVC application skeleton
To get started with development, create or open an
ASP.NET MVC project. Then, add a new controller class to the
Controllers folder in the project, and give it an
appropriate name, such as
"MobileAJAXController". The name of the
controller indicates that it will handle requests for the
relative path /mobileAJAX. This information becomes handy
later.
Since you need to be sure a Windows Mobile phone can connect to your ASP.NET MVC application, it's best to initially create a very simple controller action method to serve content to the mobile phone. ASP.NET MVC supports, in the simplest scenario, action methods that return plain strings. You could then add the following method for testing purposes. You can later on improve it to do some real work:
public string Hello()
{
return "Hello, World!";
}
If you want, you can test that your MVC application works
as expected by hitting the F5 key in Visual Studio (or by
choosing the Start Debugging command from the menu) and
testing the controller action you just added in your
computer's browser. The address should be something like
http://localhost:1234/mobileAJAX/hello. The
port number will change dynamically, but Visual Studio will
automatically launch your browser with the correct URL.
If your tests succeed, the next step would be to make sure the application is running on a real web server, namely IIS. IIS is required so that you can really test the application on a mobile phone; the development web server that comes with Visual Studio will not allow network connection from outside localhost.
Because of this limitation, you will need to find a server running IIS (preferably a Windows Server 2008 system with IIS 7.0 or 7.5, as these versions contain best support for ASP.NET MVC applications).
Figure 2. IIS must be properly configured to test mobile applications, even with the emulator
This article will not focus on setting up IIS for MVC applications, but you can find detailed instructions from the MVC documentation. The following sections assume that you have IIS installed, and that you can access the application with an URL such as:
http://myserver/mobileAJAX/hello
Of course, your real URL will vary, so be sure to adjust the URL accordingly when testing.

Comments
There are no comments yet. Be the first to comment!