Datasheet
Platform Dependencies
After you compile a Visual Basic application into IL, you use the CLR to execute the IL code. Microsoft
provides support to use those libraries on Windows platforms, but, in theory, you could run on any plat-
form that provides run-time support for IL.
The Mono project (
www.mono-project.com) is an Open Source effort to support .NET applications in
various operating systems. Currently, Mono lets you build and run .NET applications on Windows,
Unix, Linux, Solaris, and Mac OS X. It also supports Java, Python, and other languages, in addition to C#
and Visual Basic. See the Mono Web site
www.mono-project.com for more information.
Between .NET’s native support on Windows and Mono, .NET applications should run on the vast major-
ity of PCs in use. An application written in Java or another Web-based language can run on those operat-
ing systems, and also on any other system that supports modern Web browsers, so such an application
would have slightly greater portability.
Often, desktop applications built with Visual Basic provide a better user experience than those built with
Java. Desktop applications have fewer restrictions than Java applications, and some things that are triv-
ial in Visual Basic are much more difficult in Java, particularly if the Java application needs to run in a
browser that doesn’t support the same features available on the desktop.
However, there seems to be a growing feeling that “good enough is good enough” — that the restrictions
imposed by Java are worth the ability to run by simply pointing a browser at the appropriate URL.
I prefer the performance and flexibility you usually get from desktop applications rather than Java, but
there’s much to recommend the “good enough is good enough” philosophy. When Visual Basic 3 was
released, I had spent just over a month working on a C++ application. When I gave Visual Basic 3 a try,
I was able to reproduce everything I had built within that month in only four days. There were some
things that Visual Basic 3 could not do that were possible in C++, but they meant extra work and were
things I was willing to live without for the sake of a 75 percent reduction in development time. I moved
to Visual Basic because it was good enough, so I can understand the idea that Java is good enough for
some applications.
Upgrading from Visual Basic 6
Visual Basic .NET includes an upgrade wizard that converts Visual Basic 6 code into Visual Basic .NET.
Unfortunately, the wizard isn’t very good. Microsoft claims the wizard can handle as much as 85 percent
of Visual Basic 6 code without intervention, but in practice, the results aren’t very good and a typical
application requires a lot of manual rewriting.
However, this is still better than nothing. Even if the wizard converts only a small fraction of the code
correctly, it’s a head start that you wouldn’t get if you wanted to port a Visual Basic 6 application to C++
or Java.
GUI Building
Believe it or not, the fact is that building graphical user interfaces (GUIs) in Visual Basic is so easy that it
can actually cause problems. It’s extremely easy for an inexperienced developer to slap together an awk-
ward interface that’s difficult for users to understand.
8
Part I: Design
05_053416 ch01.qxd 1/2/07 6:28 PM Page 8