Outfoxing the Visual FoxPro 6.0 Desktop Exam requires razor-sharp programming skills and the ability to design efficient and scalable solutions.
As of late, Visual FoxPro 6.0 has gone
somewhat unnoticed amid the flurry of advances in Visual
Basic, Visual C++, and Visual InterDev. Yet Visual FoxPro
is quite a good development tool for producing database
applications. I’m proud to say that I still use this tool
as a business solution.
I’m an old hand at taking beta exams,
so the three-and-a-half-hour stint with the Visual FoxPro
Desktop exam wasn’t bad. The challenge for me was finding
appropriate materials to assist me in studying. Good books
are few. So I followed my instincts: I got the Visual
FoxPro 6.0 Programmers’ Guide from Microsoft Press and
began a lengthy search of MSDN for pearls of wisdom that
I might use on the test. Even an experienced developer
needs to brush up on seldom-used knowledge, so I took
this opportunity to do just that.
A Modeling Career
If you think that data modeling requires
you to be photogenic, I’d suggest getting a book on the
basics of relational data design and setting up a few
databases on your own. After all, the exam is centered
around developing database applications, a critical skill
for any Visual FoxPro developer. First, you’ll need a
solid background in designing data models. If you’re a
SQL Server guru or have other relational database experience,
this shouldn’t be a problem. Data modeling concerns not
only the development of the schema, but also knowing when
to use referential integrity to enforce business rules
and when to use triggers to do the same thing. You should
also know when to break the rules of normalization and
when to follow them religiously.
Designing Scalable Apps
It seems that Microsoft has been focusing
less on syntax and code on the MCSD exams and more on
high-level design. After all, you can always open up your
handy-dandy copy of MSDN library on your PC and find the
syntax to the function you want; however, you can’t necessarily
look up how to design an application to the specification
that your client needs. Even though this is the desktop
exam, expect to be grilled on different business cases
where a multi-tiered solution might be perfectly viable.
Be able to rationalize why an application’s current design
might adversely affect performance in an enterprise environment.
You should also be aware of Visual
FoxPro’s indexing strategy and how to optimize indexing
to best suit a given environment. The best practice for
these types of questions is to have the battle scars from
real-world experience. Knowing the Microsoft DNA model
and what each layer does is critical for success on this
exam. Any experience with multi-tiered programming will
suffice in this area. As long as you understand how components
communicate across multiple tiers, you’ll be fine.
FoxPro 6.0 Desktop (70-156)
Rating: “This is a well-designed,
fair exam that covers everything a good
Visual FoxPro developer should know, from
COM to data modeling to application deployment
and Implementing Desktop Applications
with Microsoft Visual FoxPro 6.0
Number of questions
in reviewed version of exam:
83; fewer in live exam.
for exam: Three and a half hours
for the beta; probably 90 minutes in
the live version.
Live as of February 2000.
Who should take
it? Counts as a core or elective
for the MCSD track.
prepare you? None available at
the time of this writing.
Serving Up Data
You’d expect data services to be an
important part of this exam. Make sure that you know the
basics of SQL, including INNER JOIN, LEFT OUTER JOIN,
RIGHT OUTER JOIN, and FULL OUTER JOIN statements. Be able
to spot functional SQL statements. Don’t limit yourself
to selecting just the one you’d use. Remember that in
the world of coding, there are many ways to accomplish
Know how to create Visual FoxPro views and how to manipulate
and display data through them. You should be able to discern
when views are necessary and when they would hinder performance.
Visual FoxPro stored procedures are also a must in any
application. Be able to code them as well as tune their
performance when an application isn’t producing the correct
results. Also, triggers can be used in Visual FoxPro to
enforce complex business rules or enforce referential
Tip: Understand that triggers
fire after data modification takes place, not before.
Talking with Your Users
You application interface may prove to be one of its
most important parts. After all, what the user sees—and
whether it’s intuitive or not—is half the battle. The
other half is keeping users from waiting for eons while
data is retrieved. Thus, effective interface design plays
a role in this exam. Be able to create form classes and
manage their appearance and behavior. It’s absolutely
critical that you understand how the form class events
fire and how and when classes inherit events from their
Second, this wouldn’t be a Microsoft exam without coverage
of our favorite ActiveX technologies. Review your Office
object models and know how to instantiate instances of
them from within Visual FoxPro. Also have a rudimentary
understanding of how to call the Win32 API should it be
necessary to access a Windows function.
Finally, no user interface is complete without being
able to report errors back to the client effectively.
This, again, takes us back to Windows DNA and understanding
how the client displays errors occuring on different tiers
of an application. If all else fails, you need to provide
an effective help system to step users through all necessary
Piece By Piece
If you’re an MCSD or MCSD-wannabe,
the Component Object Model (COM) isn’t news to you. It’s
Microsoft’s extremely flexible object-oriented methodology
that allows applications to be distributed to the far
corners of the earth... or localized on one machine. COM
is important in all Windows development because it allows
us to use resources where they’re needed and also where
they provide the best performance. With Visual FoxPro
6.0, we can deploy COM objects that contain business rules
to clients or other servers as needed. Of course, we pay
the price of complexity via performance at times, and
in order for users to bear the fruits of our labor, we
have to toil away to ensure reliability in the end.
As a Visual FoxPro developer, you should
know how to instantiate a COM object from the client as
well as from another COM object. Know how to include error-handling
in objects to return meaningful errors to the client and
clean up any mess it might leave behind. Remember the
differences between the CreateObject( ) function and AddObject(
Finally, be sure you know how to include
a COM component with deployment of an application. Know
how to handle problems that may arise when registering
components on the client machine.
Call the Exterminator
Debugging the application can certainly
be one of the most tedious portions of the entire project.
If you have prior Visual Studio experience, some of this
should be easy. Our tried and true friends, the Watch
window, Locals window, and the Call Stack window, should
get some attention. Also, be sure to review the Coverage
Profiler, a utility that can be used to test performance
and ensure that all lines of code are covered in a run
of the program. Be able to evaluate a piece of code and
give a suggestion as to why it’s not working properly.
General programming skills will go a long way in this
area. For example, it’s important to recognize when a
loop won’t terminate or when a designated function won’t
produce the desired effect.
Through Rain, Snow, Sleet, or Hail
Delivering your application to your
clients is a critical task. If you make a mistake during
the deployment phase of a project, it could cause disaster
for the computers and users. When deploying an application,
you should be intrinsically aware of all the options available
to you and when they should be used. Know whether or not
a Web-based deployment is appropriate. Be able to pick
the best solution for a specific scenario, such as low
bandwidth or lack of media. You should be familiar with
running the setup wizard and creating different types
of deployment packages. Be able to fit COM into the picture,
and register components and ActiveX controls on clients.
A well-designed application deployment
will also include a “failsafe” in case a rollback is needed.
The best way to understand the setup wizard is to get
some practice with it. Create a simple application that
includes an ActiveX control. Run the setup wizard in different
ways and see how it works.
Controlling Your Code
Programming an application in a team
environment can prove to be nearly impossible without
some form of source code control. Understand how Visual
FoxPro integrates with Visual SourceSafe and what you
must do to ensure that code gets updated properly without
ruining your computer—or the project itself. This is one
area where it helps to know step-by-step how to perform
the task. Also know how to manage a team environment.
For example, what would you do if you had a team of developers
who had to use the same machine but with their own settings?
Know how to configure Visual FoxPro to operate in these
and other team-oriented environments.
By and large, I believe this exam is
passable if you have some experience developing applications
with Visual FoxPro and databases in general. Be sure to
spend some time focusing on the “big picture” rather than
solely on syntax. Good luck!