elcome to Mobile CoDe.NET
, the regular CoDe Magazine
column dedicated to the development of mobile business solutions using Microsoft .NET mobility technologies. In the last issue, we explored the various Microsoft technologies for mobile development and the field of mobility in general. If you haven't checked it out yet, I strongly suggest you dig out the July/August issue from under your two-month supply of empty pizza boxes and start reading.
The combination of the .NET Compact Framework with the Smart Device Extensions (SDE) in Visual Studio .NET 2003 finally brings us into a mature playing field for mobile application development. The .NET Compact Framework is the mobile arm of the .NET platform, which you can use to develop rich-client applications for Windows CE.
You'll remember I brushed the "Windows vs. Web" topic very rapidly as it applies to mobile development. And while I'm not here to reopen the debate or force you down one path, I'll nonetheless thread the "Windows" path over the next few pages to enlighten you on how to build rich-client mobile applications for Windows CE using the .NET Compact Framework. I promise I'll cover the "Web" path and the ASP.NET Mobile Controls in a future issue.
.NET Device Programming
With the release of Visual Studio .NET 2003 in April, .NET developers can now extend the .NET programming model to software development projects targeting smart devices. By smart device, we usually mean a mobile device of some sort with a relatively low encumbrance factor. This could potentially include notebooks and Tablet PCs, but for the sake of this column, I typically limit the term to the various devices running one inception or another of Windows CE.
The fusion of at least three radically different programming models in .NET was in itself an already amazing feat. No longer would programming practices be limited to a programming language. All .NET languages can now benefit from RAD (Rapid Application Development, both a blessing and a curse) using forms and the composition of graphical controls to design a GUI, which was brought to us by the Visual Basic world. All .NET languages can now use the power of subclassing to inherit and extend the functionality of a library of base classes (à la C++ or Java) thus maximizing the functionality of an application while minimizing code and low-level plumbing. All .NET languages can now be used to build Web-based applications by embedding server-side code inside dynamically generated HTML pages, thus fusing forever the paradigms of Web development and OOP.
|Windows CE or Mobile Web? The .NET world can steer you in two very opposite directions: .NET Compact Framework or ASP.NET Mobile Controls.|
Traditionally, mobile development would introduce yet another programming model specific to the language, the device, the operating system and the development environment. This meant that?with all the device types, OS generations and vendors out there?mobility developers would have to specialize on a single mobility platform or become jacks-of-all-trades on many of them. With .NET, device programming doesn't bring a new programming model, it reuses an existing one: the .NET model, which is the merger of all those models outlined above, taking root in the worlds of Visual Basic, C++, J++, ASP, and others.
You may not have to learn an entirely new programming model here, but you nevertheless have to learn how to think about a new platform. This isn't your cushy little Windows world anymore; you are entering Windows CE territory and your primary vehicle will be the .NET Compact Framework.