Mobile Apps Go Faster, Smaller, Better
Get in on programming's current sweet spot.
Mobile computers and their smaller cousins such as PDAs and cell phones are the sweet spot and growth area in today's computing environment.
The desktop computer has its place, but many longtime computer users—myself included—want the power and functionality of the desktop in a portable container. They want to be able to cart the power of the desktop on the road, but also around the house as it suits their fancy. I've never seen a study on the subject, but I'd wager $10 a good percentage of laptops rarely, if ever, leave home. They are simply carted from room to room, per the needs of their users.
Users want more than powerful laptops. They also want ultra-powerful PDAs and, increasingly, phones that deliver a rich user experience. For example, the version of Word included on a Pocket PC is nice enough, but it would be nicer to use revision marks and other features that you've grown accustomed to using in desktop versions. It might well be that the typical desktop has reached a point of significantly diminishing returns in terms of power and features—hardware and software manufacturers believe (and hope to convince you) otherwise, of course—but that isn't remotely true of portable devices. The gap in functionality between small portable and desktop devices is glaring and obvious.
It is a gap that developers at Microsoft and other companies are attempting to fill at a frantic pace. Microsoft introduced its latest iteration of mobile development tools at its Microsoft Mobile & Embedded DevCon (MEDC) earlier this month. Newly christened Windows Mobile 5.0, the developer tools mark a break from the recent convention of naming Microsoft's products and tools after the year they are (ostensibly) released. About the only real significance of this change to me is that it signals that the mobility tools, while remaining full partners in Visual Studio .NET, are on a separate development track. Of course, this has always been the case; the name change merely acknowledges it explicitly.
One significant feature targeted at Visual Studio developers is the ability to choose between native code (C++) and managed code (VB.NET or C#) for creating mobile applications. Writing in C++ gives you direct hardware access, better performance, and the ability to hold down the size of your app's footprint. C# and VB.NET are better suited for creating UI-centered apps where your preference is developer productivity, as opposed to raw performance. Microsoft also recommends managed code for simplified access to Web services and data.
Windows Mobile 5.0 also expands the number of ASP.NET mobile controls that ship with Microsoft's mobile development tools. These controls are typically smaller, streamlined versions of common ASP.NET controls, and you can use them to target a variety of devices with a single code set.
For example, you can use the same control to target a Pocket PC–style PDA or a mobile phone, depending on the circumstances, without having to customize the control for each specific type of device. The benefit of this is obvious: There's been an explosion in the number of types of portable devices, and there is no way you could track them all and target them with custom code. Instead, you can rely on the testing Microsoft does to ensure app compatibility across a much broader array of devices than you could ever manage on your own. Sure, there might be circumstances where the rendering is less than ideal, but that problem set is reduced to something exponentially smaller than it would be otherwise.
Other features include a new device emulator, new UI and data designers, improved support for wireless technologies such as Bluetooth, and multiple platform support, which means you can target multiple devices and platforms with a variety of languages from within the same project.
I've mentioned some highlights, but they touch on only a handful of the features introduced with this version. You can find more information on Windows Mobile 5.0 at http://msdn.microsoft.com/mobility. From this Web page, you can drill down on more information about the developer tool itself, as well as information on additional SDKs and best practices for mobile developers.
Patrick Meader is editor in chief of Visual Studio Magazine.