Databases: A Critical Part of Windows Mobile Software Development

Databases are an integral part of applications; programs depend on databases for all manner of operations including storing program data, making it accessible to the user, and even just keeping track of high scores in the case of games. If you do mobile development, it will not be long before you need a database. In fact, Microsoft has done a developer tracking study over the last 10 years and found that 96% of all software uses a database (http://www.nantz.org/Blog/tabid/57/EntryID/173/Default.aspx). There are a number of databases available to the programmer. But how do you choose which one is right for you and your application? The answers are not cut and dried, but this article will lay out the choices, and offer observations on each system's strengths and weaknesses.

Mobile Considerations

Mobile development is different than desktop development in one very important way: mobile devices are limited in resources. In desktop development almost any database will do, but for mobile development you have to be aware of the resource limitations in order to design a system that performs adequately.

There are two features that must be evaluated for a mobile database: the size of the install and memory consumption. As a mobile developer, you cannot assume that your users necessarily have the large file storage cards available today, unless that is a user-acceptable requirement. Then, you have to do performance testing to guarantee that the longer access times for removable memory are acceptable. This also requires that the users always have that memory card installed when using your application. Perhaps more importantly, you must be aware of the memory available for running programs. This memory is not easily expandable, though device memory can in some cases be upgraded by companies like Pocket PC Techs (http://www.PocketPCtechs.com).

Five criteria for your choice

First, I am assuming that you are developing for Windows Mobile 5. If you are starting a development project this is what you must be doing. I don't know how long Microsoft will support Pocket PC 2003SE. They have an unofficial five and five support policy. That is, they offer five years of mainline support for older products after a new product is released, and then five years of optional support available for premium purchase. Does that mean that they will stop supporting 2003SE in 2008? Your guess is as good as mine. Especially when you add in OEMs and cell phone carriers, support and upgrading is not nearly as clear as it is for desktop operating systems. (Also, note that the continuing widespread worldwide use of Windows 98se has meant that Microsoft has opted to continue supporting that operating system with security updates well beyond Microsoft's normal support window.)

Second, I assume you are using the. NET Compact Framework. While you can use Visual Studio.NET 2005 to do C++ native development (which is much better than eVC++), you can't do rapid development when you have to manage memory yourself. On the positive side, native development produces smaller files to distribute and better runtime performance. This is yet another decision that you have to make in development. I have chosen .NET development because it is possible to keep one set of code (or close to it) that works on both desktop, Web, Pocket PC and Smartphone. This is impossible to do with pure native development: you don't have the automatic progression from the abstraction of the virtual machine, to the real-time compile, to the code for the different platforms and processors.

 

Syndicate content
 

Flash®