Skip to main content

Past Blast

Featured Products

Windows Mobile Developer Controls
Windows Mobile Developer Controls
Stay in touch using the DEVBUSS RSS feeds.
 

News

Windows Mobile Developer Controls
Windows Mobile Developer Controls

PPC and eVB at PDC

Written by Dwayne Lamb  [author's bio]  [read 33952 times]
Edited by Derek

Page 1  Page 2  Page 3 

Some of the VB.NET benefits

VB.Net brings a lot of great stuff to the table that we have not enjoyed in eVB. For one, it is a strongly typed language; no more variants. It has rich error handling with its Try/ Catch/Finally approach to error handling. VB .Net creates compiled binary files for distribution instead of the text/script files that the eVB compiler spits out. Even though ADO+ represents a change once again in the way we program database connectivity, the good news is, it has much better support for highly distributed mobile applications and is no longer connection based. VB.Net will expose much more of the underlying functionality of the platform than eVB did and it will allow us to use and extend that functionality through sophisticated OO programming techniques like inheritance, polymorphism, encapsulation and abstraction in ways we never could before.

The tool has powerful built-in support for web services technology and new industry standards like XML and SOAP. Visual Studio sports a rich new IDE with a better debugging and development experience. This new development paradigm is also a move away from the side effects of COM, like DLL hell, registration and GUID issues where instead applications are built on a design that relies on self-describing executables. VB.Net also plays much nicer with other languages with powerful new support for integration of code written in multiple languages. Of course there is a substantial learning curve that we will need to work through, but technology's cool and productive advancements have always had some sort of inherent yin yang relationship with obsolescence that has become the understood price that we have to pay.

The basics of how it will work

From a very simplified point of view, let me describe how I understand that the basics will work. We will use the same Visual Studio tools to develop for the Pocket PC as we would use to develop for the desktop. Currently we, need to have the smart device extensions installed but it sounds like they may eventually find their way into the Visual Studio product as part of the standard offering. To create an app for the PPC, you would select a PPC application from the new project menu. (You may be interested to know that you will be able to create projects to build your own controls for the PPC as well.) The development environment will then reference the appropriate compact framework libraries and you would pretty much code in VB.Net the same as you would for a desktop app. Naturally, the IntelliSense stuff would now show PPC specific keywords, properties, methods, etc… but when you go to compile, it will even be the same compiler, creating the same type of IL (Intermediate Language) code that would be used for an application targeted for a desktop machine. As a matter of fact, one Microsoft presenter stated that if you limited yourself to using parts of the framework that were common to both platforms you could in theory deploy an app that ran on both the desktop and a PPC. So, we are really talking about one new .NET development tool and environment with different target platforms. If you are familiar with the new .Net concepts you will know that pure .NET applications will be self-describing and much easier to deploy. Basically, you will be able to drag your app onto a device that has the compact framework on it and your app will run without the need for fancy installation programs or registry entries. Now, if your application is the first .NET app to be installed on a device the user will have to go through the steps of installing the compact framework runtime on the device. The tech preview development environment will install the CLR (Common Language Runtime) on your target development device, but it does not include a tool for bundling the CLR up for general distribution as of yet. Some sort of tool or method of deploying the CLR to devices is expected in later versions.

The CLR itself was described as having two main parts. One part of the CLR code was called the Execution Engine (EE) and the second part was referred to as the common Base Class Libraries. So, for example, we are all familiar with MIPS, SH3 and ARM processors. The Base Class Library code could be the same for three similar but different PPCs where each had a different one of the mentioned processors (assuming no different hardware specific libraries). The EE however would be unique to the processor of each of those PPC's. This would mean that once a device had the appropriate version of the compact framework installed on it, we could distribute the same compiled IL code to a device that used any one of the three processors mentioned. The compact CLR Base Classes would include platform adaptation code that was specific to a family of devices or could be customized for specialty devices. So, the three similar PPC's mentioned above may have similar enough hardware that the platform adaptation part of the CLR might be the same. A smart phone however, would probably have quite different platform adaptation components. For example, smart phones typically will not have a touch screen and the screen they do have will likely be a different resolution from that of a PPC. Although it would be possible to code one version of your app targeted for both the Smart Phone and the Pocket PC, it is not recommended for most applications. The differences in the platforms really call for different user interfaces, different kinds of interaction and ultimately different versions of the software. The good news is that we can still use the same powerful and rich tool set and the same language implementation to write those different device specific versions of our applications. The even better news is that the portable design of the CLR makes it possible to run the actual class libraries on your development machine. The .Net Compact Framework will run on a Windows machine in its own process and will provide a much improved and more realistic device emulator experience.

Of the 45 standard controls currently provided with .Net Windows.Forms only six are not planned to be available to PPC projects. They were the: CheckedListBox, Splitter, MDIClient, PageSetupDialog, PrintPreviewDialog and the RichTextBox. The other 39 controls include the basic controls that you are used to and a variety of new ones to make our lives easier and our applications richer.

Multilingual

For now the smart device extensions support two languages, VB and C#. Eventually other .NET languages will be supported as well. Rumor had it that one of the exhibitors had .NET Cobol code running on an iPAQ in their booth. eVC 4.0 and future versions of C++ will also be an option for those of you who choose to go that way. For those of us who have invested a good part of our career in VB or simply prefer VB, we are about to get empowered big time. We will not need to go to C++ to write powerful rich applications that make full use of the devices' features like graphics and language features like threading.

Previous Page  Next Page