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