Mobile and compact devices become more and more popular in our society. Each of us faces with them every day. Certainly each of us has mobile phone, hand-held computers or other hi-tech devices.
All of these devices have different mobile platforms. There are such known platforms as Windows MobileM, iPhone, BlackBerry, Symbian OS, Android, Maemo, OpenMoko etc. All of them have different history and advantages and failings.
These article is devoted to the Windows Mobile application development. Here we’ll talk about different nuances of building and testing custom applications for different types of devices.
Microsoft Company released its first platform for inbuilt devices at the end of the 90th. In 2002 Windows CE.NET platform appeared. And at that time Pocket PC based on Windows CE 3.0 platform and higher were released. Further development of wireless communication technologies managed to combine telephone and personal computer. Thus Pocket PC 2002 Phone Edition appeared which supported the standards of GSM, GPRS, Bluetooth and wireless HS network access.
In the same time another device concept was developing that was much similar to the above mentioned but was closer to the telephone then to personal computer. This device was named SmartPhone 2002. Fundamental difference between Smartphone and Pocket PC is that Pocket PC has touch screen while Smartphone has only control buttons. They also had different application scopes and supported different standards and technologies.
1. Development Tools
There are a few models of development of applications for Windows Mobile:
- Win32 API
- .NET Compact Framework.
Microsoft Co gives developers all necessary tools for development of applications for PDA, Pocket PC; and Smartphone.
Here are some advices about different code type choosing.
- Use Native Code for achieving the burst performance, direct work with hardware, and also for minimization of system resource requirements.
- Use Managed Code for development of GUI-oriented applications which main requirements are development and market deployment terms. Managed Code is also good for the easy work with web-services.
- Use Server-Side Code for work with different devices through a single code base, and also if wide stable communication channel with a device is present.
Below are the reviews of present development tools for PDAs, Pocket PCs and Smartphones.
eMbedded Visual C++ 4.0
Microsoft eMbedded Visual C++ 4.0 development environment is meant to create applications for devices with Windows CE .NET 4.2 operating system and also (with package of updates SP3) for PDA and Smartphones on the Windows Mobile 2003 Second Edition platform. The development environment eMbedded Visual C++ 4.0 is good for creation of native code for mobile and inbuilt devices with Windows CE .NET 4.2 OS. It allows developer to perform Just-In-Time Debugging for diagnostics of unhandled exceptions, Attach-to the process for the extended debugging of processes, and also interaction with an emulator.
2. Building Windows Mobile Applications for Windows Mobile devices using MS Visual Studio .NET
Visual Studio development environment together with Compact Framework enable to develop applications using a vast graphic interface, databases, archiving and encrypting tools, USB, Serial, Bluetooth, and also wireless network connections and telephony. All of these is provided by SDK as well as libraries and heading files from Platform Builder.
3. Deployment and installation
Development of applications for Windows Mobile supposes also their assembling and creation of installation package. For this purpose there is such concept as Сabinet (.cab) file in Windows Mobile. It is a common archive but it is a installation package also (a sort of MSI package). It is assembled by means of Cab Wizard (cabwiz.exe) from MS VisualStudio (or from a command line). This utility creates processor dependent «.cab» file.
WinCEApplicationManager transmits and starts CAB on a device, so user can install the application using instructions appearing on device screen. It is also possible to create the project of MSI Installation which includes CAB file by means of Visual Studio. This built package will be started on user computer and then transmit СAB installation on a device to continue installation process.
4. Security Model for Windows Mobile 5 and Windows Mobile 6
Devices based on Windows Mobile receive, send and analyze potentially important information which should be protected from unsafe applications. To protect device the starting of unknown applications is disabled, the access to some API is restricted and some registry parts changing is forbidden. Units can be marked as Trusted and Untrusted and system uses this information to prevent starting of unauthorized applications and limit their access to the system. Also the access to the system by means of RAPI (Remote API) through ActiveSync can be restricted. Security Certificates Security Rights are used for the executable units (EXE, DLL) and for CAB-files.
Protection Against Threats and Risks
The followings options help to protect devices:
- Strict password protection.
- PIN code protection.
- Devices corrupt deleted information to prevent access to it (WM 6).
- Devices corrupt deleted information on memory cards to prevent access to it (WM 6).
- Storages encryption and Advanced Encryption Standard for SSL (WM 6).
- Own certificates usage.
Most applications have Normal model. They do not have access to the trusted API and do not have the complete control of the system. Application can not be started at all if it has “Blocked” status. It means that it’s not signed with the proper certificate or user forbade the start by the proper warning of the system.
Analogical situation is with Cab-files. The executable units with Normal status can start Privileged DLL but then they will work as Normal. However Privileged executable units can not start the units having Normal status.