Field Guide to Microsoft .NET Mobility Technologies
It's time we set aside operating systems and started discussing mobile development. You've selected a mobile OS; you've picked a device; so how do you build a custom business application for it? What tools do you use? Again, Microsoft has several options for you since various tools have been released alongside each new release of Windows CE and its variants.
Microsoft Embedded Visual Tools 3.0
During the first few years of Windows CE, Microsoft opted for an approach where a special mobility toolkit would be grafted inside of Visual Studio to enable Visual Basic and C++ developers to build mobile applications from within an IDE they were familiar with. While the idea was good, the toolkit lacked features and the integration suffered. Several toolkits were thusly released, either as Visual Studio add-ons or as independent environments, until the last pre-.NET release: Embedded Visual Tools 3.0 (eVT). The Embedded Visual Tools feature a separate development environment and provide two development language options: Embedded Visual Basic 3.0 (eVB) and Embedded Visual C++ 3.0 (eVC). The version number matches the version of Windows CE targeted by these tools.
eVB is an interpreted language that is slightly more powerful than VBScript. It lacks the advanced language features of Visual Basic 6.0 or Visual Basic .NET and provides very few options in terms of GUI custom controls. It requires a runtime which was embedded directly in the OS, but at least provided developers with a quick prototyping tool for mobility projects. eVB has virtually no future in the .NET era, so I won't explore it any further.
|Since the 802.11g hardware available today is based on a draft specification, I would steer clear of "g" hardware until the spec is final if I were you.|
The serious option for mobile development once again rests on C++. Embedded Visual C++, now available in versions 3.0 and 4.0 depending on the version of the targeted OS (i.e., eVC++ 3.0 for Windows CE 3.0 development, and eVC++ 4.0 for Windows CE .NET projects), enables mobility developers to leverage Microsoft's many SDKs for various mobile platforms, such as the SDK for Microsoft Smartphone 2002, SDK for Pocket PC 2002, and others. Note that eVC allows you to build mobile applications for any
Windows CE-based device, and it is the only
option available today for Microsoft Smartphone 2002 development.
Embedded Visual C++ remains a key tool in mobile development on Windows CE and many sources are already available on the topic, but since this column mainly addresses .NET mobility development, I won't mention it too much in the future. To learn more about the Microsoft Embedded Visual Tools, visit the product Web site on the Internet at http://msdn.microsoft.com/vstudio/device/embedded.
Visual Studio .NET 2003
Whenever you start planning for a new software development project, as a business solution developer or architect a philosophical question faces you right away: should the client interface be a Windows-based rich client or a Web-based client? Over the last few years we've all come up with our own guidelines for identifying the pros and cons of both approaches to quickly determine which way to go. Issues like deployment, maintainability, GUI requirements, bandwidth, remote use, and manageability all weigh in the equation.
|Mobile applications are just one more form of business software you have to learn to design and write. Not tomorrow... today!|
With mobile development, you face the same questions: should you deploy local code on your devices or serve them mobile Web pages from a Web server? This may seem like an easy answer, but consider that many of the rules you used to resolve this question on the desktop don't necessarily apply on mobile devices, or if they do, they might yield different results. For example, Web applications have the upper hand in many projects since network connectivityeither LAN-based or using Internet broadbandgreatly facilitate client-server communications 100% of the time. But with mobile projects, wireless connectivity 100% of the time is virtually unheard of. I'll address this local-vs.-Web dilemma in a future installment of Mobile CoDe.NET, so I'll put this debate aside for now and discuss the two basic .NET mobility development technology offerings from Microsoft for local and Web deployment.
Visual Studio .NET 2003Microsoft's latest release of its award-winning development suitebrings you key technologies for mobile development: The .NET Compact Framework
, for local rich-client applications that run on mobile devices, and the ASP.NET Mobile Controls
, which enable Web-based development for mobile devices. Both toolkits require the Professional Edition (and above) of Visual Studio .NET 2003.