Acing VB Desktop Apps
To pass the new Visual Basic 6.0 Desktop exam, you need to know standard VB objects (forms and controls) and the events they fire, ADO, and how to debug and deploy.
You’ll find plenty of similarities
between the Visual Basic Desktop exam and the Visual Basic
Distributed Applications exam, which I helped review in
the January issue. The primary difference: You won’t see
scary Microsoft Transaction Server (MTS) or Internet Information
Server (IIS) questions on this test.
The focus of this exam is building
desktop applications. So you have to ask yourself, what
makes up a typical desktop application? You have a user
interface to handle input and output, data access, and
data storage. These are all glued together by the Component
Object Model (COM). Fling in a few questions about DHTML
and Web questions, and you’re ready.
The focus for this exam consists of
- General Visual Basic programming
- User interface
- Data access
- Developing and using components
- Debugging and deployment
I didn’t find data storage covered
in this exam, though I had to know how to access and manipulate
data sources. And, of course, you’ll be surprised with
a sprinkling of miscellaneous topics, which I’ll cover
Basic 6.0 Desktop Applications (70-176)
Rating: “This is about building
stand-alone desktop applications. Consider
it like the Visual Basic 5.0 exam with
coverage of new Visual Basic 6.0 features.”
and Implementing Desktop Applications
with Microsoft Visual Basic 6.0.
Number of questions
in reviewed version of exam:
Live as of December 1998.
Who should take
it? Developers building full-featured
programs to run on end-user computers.
This exam can be used as an elective
for the MCSD track.
prepare you? Course 1013: Mastering
Microsoft Visual Basic 6 Development.
Available as instructor-led and self-study
You’re going to need a solid background
in VB in order to pass this exam. If you’ve already taken
and passed the Visual Basic 5.0 exam, this should be a
piece of cake. When the exam shows you code snippets,
you’ll want to make sure you understand VB syntax.
The Appearance of Things
The typical desktop application needs
to handle the user’s input as well as display information
to the user. For the test, you’ll need to study up on
forms, controls, and events.
For the forms, know the load and unload
methods, terminate and activate. Also, know how to do
popup menus and add and remove menu items and controls
to a form object. Study the different collections that
are associated with the form (the Controls collection,
For the controls, expect questions
pertaining to the standard VB controls: Status Bar, Progress
Bar, Text Box, Image List, button, label, Tabbed Dialog
Control, and so on. Become familiar with the properties
and events that they have. A few that come to mind are
CausesValidation, Validate, GotFocus, LostFocus, Change,
Key, and Index.
Tip: This portion of the
test has the most code snippets. I’d recommend spending
some time coding some samples using the controls on a
If your programs run in a business
environment, they’ll probably require some type of database
to store your application’s data. As of late, ADO 2.0
(ActiveX Data Objects) is the hot data access tool. VB
6.0 has enriched database capabilities. It includes the
new ADO data control, the Data Environment Designer, the
Data Report Designer, the Hierarchical Flexgrid control,
nested command objects, and other cool database features.
All of these use ADO for data access.
The exam covers the various cursor
types—Forward Only, Static, Dynamic, and the like. Know
when to use them. Would you always need to read and write
to the recordset? Is it for a lookup table only? Also
be familiar with recordset locking options.
Know the different ADO objects, command,
connection, and the recordset. Likewise, have a fundamental
understanding of Error, property, parameter, and filed
objects. Know how to execute a SQL statement and a stored
Know how to use the ADO data control,
refresh the data, and set the data member and data source.
Know how ADO events work and what they’re
Tip: There’s a great article
by Dan Fox covering the old ADO in the July 1998 issue
of Visual Basic Programmer’s Journal called “ADO
2.0 Adds Flexibility, Performance.”
You’re going to need to know how to
develop component-based solutions for your desktop applications.
COM is the glue that puts all of the components together.
VB has several ways to create COM components. You can
create an ActiveX DLL or control (in-process), an ActiveX
.exe (out-of-process), and an Active Document.
Be familiar with the project options
of each type. VB 6.0 includes a new tab for the project
options relative to how your project will be debugged.
Get to know it.
Expect coverage of the instancing of
these objects, early binding vs. late binding, what the
“WithEvents” keyword is used for, and how to work with
COM. Know the basic interfaces Iunknown and IDispatch.
Tip: COM permeates the exam.
It’s inherent in designing, developing, and debugging
the typical VB desktop application. The more you know
about COM, the better off you are.
Debugging and Deploying
You’ll need to know how to test and
debug your desktop application thoroughly, as well as
how to deploy it. Unfortunately, both of these usually
happen last on a project.
Understanding this stuff can pay. I’ve
just spent several days trying to install software to
develop a demonstration for a conference. I spent more
time installing, configuring, and re-configuring the software
than I did developing it. I didn’t just install the software—I
danced for it, whispered softly to it, and begged it to
work. (It was quite disruptive in the office.) Deployment
is important in the real world as well as this exam! Expect
high-level deployment planning questions, such as this
example I’ve made up:
You’ve created “Hot Dawg,” the Super Duper Desktop
Application. You compile your main program and then
you compile your support DLL. You load up a setup script
into the Package And Deployment Wizard to create a setup
program. You test it on your machine, and it works great.
When you give it to your boss to test on his machine,
your application fails, saying that it can’t create
a component. What will you tell your boss?
- “Well, of course, you forgot to run regsvr32 on
your support DLL before running the application.”
- “The DLL was compiled with Project Compatibility
set and was registered with a different GUID than
my program was looking for. I’m sorry.”
- “You’re crazy!”
In many cases C may be true, but B
is always the best answer. The setup program will register
your component. Since you’ve compiled your application
and the support DLL with project compatibility set, your
support DLL was given a different GUID. Since you’ve been
developing on your machine, you’ll wind up having multiple
GUIDs pointing to the same DLL. That won’t be the case
on your boss’ machine. Expect extensive coverage of this
on the exam. Face it: An application that doesn’t install
Also expect plenty of debugging questions.
To develop an application or component in VB, you’ll need
to know the ins and outs of debugging it. VB is a great
tool for debugging. To debug an ActiveX DLL or control,
you can add a standard .exe project to create a group
to do your testing. Create a reference to your DLL or
draw the control on a form in your standard .exe project,
and you’re ready to begin testing. For an ActiveX .exe
you need to run two instances of VB, one with the ActiveX
.exe running and the other to create an instance of your
out-of-process server (typically a standard .exe project).
For the Active Document, you’ll need to use Internet Explorer
to run your document.
The Watch Window, Locals Window, Immediate
Window, and error objects are on this exam’s hit list!
They’re covered well. The proper use of these features
will not only help you ace this exam, but also help you
test and debug your applications much more efficiently.
This same set of topics gets coverage in the VB Distributed
Applications exam as well, so you’ll be prepared twice
Tip: Always check to see
what your compatibility options are—whether your project
is set to build on No Compatibility, Project Compatibility,
or Binary Compatibility. Watch for those, “Why doesn’t
my component register?” or “Why don’t I have the newest
changes after the update?” questions. Typically, if you’re
not using binary compatibility, you’re missing a required
DLL, service pack, or something special to your project.
There have been times when I’ve had to sacrifice a small
chicken to get something to register (but don’t expect
to be tested on that aspect of the job).
A few subjects surprised me, like coverage
of Visual Source Safe and the new Visual Component Manager.
Become familiar with some of the new features of VB 6.
The Data Environment Designer, Data Report Designer, and
ADO Data Control require some study.
Tip: Make sure you’ve tried
Visual Source Safe and the Visual Component Manager.
- You'll find the Preparation Guide
for this exam at www.microsoft.
- Visual Basic Programmer’s Journal
has covered some topics you’ll want
to know about for your exam preparation.
Specifically, I recommend the following
articles: “Move To ADO” in the April
1998 issue; “Simplify Data Access”
in the November 1998 issue, and “VS
6.0 Benchmarks: New Features Don’t
Impact Speed” in the December 1998
Both More and Less
I was expecting more questions regarding
new VB features and a little less about the Package and
Deployment Wizard, which is just an updated version of
the Setup Wizard that shipped with VB 5.0. (Of course,
your version of the exam might have different coverage
of these topics.)
I was also hoping to see more on the
new Visual Component Manager add-in. I’ve been using it
to store frequently-used components, documentation, and
samples into the repository for other developers to access.
It comes in handy. You can store more than just VB code—HTML,
ASP, VC\C++, MFC, ATL, Visual Cobol, or whatever you want.
(I’m joking about the Cobol...)
This exam is pretty straightforward.
As I’ve said before, you’ll need to know basic user interface
elements, data access, the glue that holds these together,
debugging, and deployment.
My final advice to you: Create a sample
desktop application covering the topics in the Preparation
Guide for exam 70-176 from Microsoft, as well as what
I’ve covered in this article, and you should be ready