I-MODE Client and Mobile Programming in VB.NET
In this article I will explain you about Mobile Programming & the I-MODE Client in VB.NET.
In today's technological world, mobile devices often are a basic requirement for running a successful business, and thus mobile programming has grown in importance. Until now, developing mobile applications has been a tedious task. As a developer, you had to address many issues, such as device capabilities, various markup languages, and physical capabilities of handheld device. Now, however, developing mobile applications using Microsoft .NET and its supported languages is no longer a monumental undertaking. Microsoft .NET has introduced a mobile SDK along with its .NET SDK. The mobile SDK is also known as the Mobile Internet Toolkit.
In this article, you will gain an understanding of the basics of the Mobile Internet Toolkit, the requirements for mobile programming with .NET, and the setup for different wireless clients. You will also learn how to work with mobile forms, user interface and mobile controls, validation controls, and utility controls. Finally, you will build a simple mobile application.
Following are the basic requirements for developing mobile applications with .NET:
Microsoft Windows 2000 Server; Microsoft Windows 2000 Advanced Server; or Microsoft Windows 2000 Professional (including Internet Information Services), Service Pack 1
Microsoft Internet Explorer 5.5
.NET Framework (including Premium ASP.NET)
Microsoft Mobile Internet Toolkit Version 1.0.
The WAP Client
Briefly, the Wireless Application Protocol (WAP) is an open standard for developing wireless applications. All major players in the wireless market collaborated to come up with a standard for extending the Web to mobile devices. Applications for WAP-enabled devices usually are written in Wireless Markup Language (WML), but Microsoft .NET provides a framework to deal with WML and a higher level of abstraction to access the low-level tasks. The current version of the Mobile Internet Toolkit takes care of generating output that complies with the WML 1.1 specification.
A logical perspective of the WAP environment is illustrated in Figure 24.1.
Figure 24.1: Diagram of WAP Communication
A WAP gateway, also called a WAP server, acts as a bridge between a mobile phone and the application server. The application server here is either Internet Information Server (IIS) or Personal Web Server (PWS). Here is how a wireless device's request actually works.
The user sends a request from her mobile phone to a WAP gateway for a specific URL. This request goes to the WAP gateway using the wireless protocol. The WAP gateway generates a conventional HTTP request and sends it on to the Web server. The Web server generates an HTML response and sends it back to the WAP server. Here the Web server's response is translated into a WML deck, with the added HTTP headers.
Before getting any deeper into this, let's discuss the basics of a deck and its cards. The basic unit of WML is the card, which specifies a single interaction between the user-agent and the user. Cards are grouped together into decks. A deck is the smallest unit of WML that a Web server can send to the user-agent. In many ways, a deck can be thought of as a Hypertext Markup Language (HTML) page. When a user-agent receives a deck, it typically activates the first card in the deck, although it can be directed to any particular card in the deck. The <wml> tag defines a deck and encloses all the information and cards in a deck. The <card> tag indicates the general layout and user schemes in the user-agent.
Let's look at a sample WML document (see Listing 24.1) to make things clearer.
Listing 24.1: Sample WML Code
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN""http://www.wapforum.org/DTD/wml12.dtd ">
<card id="Card1" title="Welcome">
<p> Welcome to Mobile Programming </p>
A valid WML deck is a valid Extensible Markup Language (XML) document and therefore must contain an XML declaration and a document type declaration, in this case WAP 1.1, as shown in the first two lines of the listing. While the deck is the unit between the <wml> tag and the card is defined in the <card> tag, you can have any number of cards in a deck unit.
The WAP gateway verifies the HTTP header and the WML content, then encodes them into a binary format. The gateway builds the WAP response, consisting of WML, and sends it back to the mobile phone. The mobile phone receives the WAP response, parses the WML, and displays the contents.
As you see from this model, you need a Web server and a WAP-enabled mobile device to write and test mobile applications. You can test your applications on your desktop using a WAP toolkit, as major wireless companies provide a toolkit for testing applications on the desktop. In our examples, we will be using the Nokia WAP toolkit. The toolkit and documentation are available at http://forum.nokia.com.
The I-MODE Client
Nippon Telephone and Telegraph Docomo (NTT Docomo), a Japanese company, developed i-mode, a wireless technology that enables users to access Internet services via their cellular phones. In imode, the "i" stands for information based on packet data transmission technology. This means that even if an i-mode client is always online, the user is charged only for the information that is received. i-mode can be used to exchange e-mail with computers, personal digital assistants (PDAs), and other i-mode cellular phones. An important difference between an i-mode and a WAP client is the markup language employed. A WAP-enabled device uses WML, while i-mode draws on Compact HTML (CHTML).
There is one major distinction between the two protocols: WAP is an open standard, whereas imode is a proprietary service owned by NTT Docomo. There are two types of sites running with imode protocol. First are the official sites hosted by NTT Docomo, which have a link from the official i-mode site menu. Then there are the unofficial sites, which must be accessed by typing the URL in the device.
Many other wireless devices with different specifications are available on the market. Some of them support Handheld Markup Language (HML) or Mobile Markup Language (MML), but you can take a generic approach when you develop applications with the Mobile Internet Toolkit. The generated output conforms to a device's protocol specifications.
The Mobile Internet Toolkit supports WML 1.1, HTML 3.2, and CHTML 1.0, and it has been tested extensively for the following devices:
Limited testing has been done with many other simulators and devices. While that does not cover all devices, it can said that the toolkit is the most generic approach for developing mobile applications.
Hope this article would have helped you in understanding Mobile Programming & the I-MODE Client in VB.NET.