Exam Reviews

Programming Perfection

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.

Visual FoxPro 6.0 Desktop (70-156)
Reviewer’s 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 design.”

Title: Designing and Implementing Desktop Applications with Microsoft Visual FoxPro 6.0

Number of questions in reviewed version of exam: 83; fewer in live exam.

Time allowed for exam: Three and a half hours for the beta; probably 90 minutes in the live version.

Current status: Live as of February 2000.

Who should take it? Counts as a core or elective for the MCSD track.

What classes 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 a goal.

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 integrity.

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 parent classes.

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 tasks.

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( ) method.

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.

Additional Information

Final Words

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!

comments powered by Disqus

Redmond Tech Watch

Sign up for our newsletter.

I agree to this site's Privacy Policy.