Exam Reviews

The Well-Conceived Program

If you've successfully developed Visual C++ applications at some level, you're way ahead of the game with the Visual C++ Desktop exam.

Microsoft boasts on its Web site:

“Nearly all world-class software, from the leading Web browsers to mission-critical corporate applications, is built using Microsoft Visual C++ Development System.”

and I suspect it may be true in part. Perhaps more off-the-shelf software is built with Visual C++ than any other software development system; certainly Microsoft builds most of its software with C++.

I’ve been programming with Microsoft C++ since the first version, before the IDE (Integrated Development Environment) made it Visual C++. Although I’m not using VC++ on my current project (I’m implementing SQL Server data warehouses), I miss it, and I don’t want to lose my hard-earned skills. Thus, I recently took the beta exam for Visual C++ version 6.0. Although I’m both an MCSE and an MCSD, I am, first and foremost, a software developer. I earned my networking skills because that's what my programs run on.

Preparing for the Exam

I have good news and bad news. The good news is that the exam is much easier than developing world-class software. That’s because software development is not about answering fully formed questions, but about generating your own questions and then answering them. Real-world problems are bigger than picking the best answer out of five. Software design is a blank canvas where creative problem-solving plays a huge part. If you have successfully developed C++ applications, you are way ahead of the game in preparing for and taking this exam.

The bad news, especially if you have not successfully developed any C++ applications or if you need a lot of review, is that there are not many certification-specific VC++ resources.

I haven’t taken the three courses Microsoft offers (see the recommended course list below), but there are times when human contact and hands-on classroom experience is the fastest way to learn. Sometimes IDEs are difficult to learn through books because they’re so visual. Your book might say, "Now press the compile button," but you have no idea what the compile button looks like. Classroom learning is recommended if you are missing several of the following:

  • A strong C programming background
  • At least some C++ experience
  • Windows development experience (C with Windows counts for more than Visual Basic experience)
  • Access to an experienced Visual C++ developer—co-workers, members of user groups, or through a Microsoft support contract.
Visual C++ 6.0 Desktop Solutions (Beta 71-016)
Reviewers’ Rating: “This is a challenging, difficult exam, but it doesn’t overwhelm you with trivia. When it gets down to the details, the exam asks about the objects and functions good MFC programmers should know.”

Title: Designing and Implementing Desktop Solutions with Microsoft Visual C++ 6.0

Number of questions in reviewed version of exam:
113 on beta; fewer on actual exam.

Time allowed: expect around 90 minutes for the live exam.

Current Status: Live as of September 1999.

Who should take it? One “desktop applications development” exam is required for the MCSD; this exam is one of the three choices offered.

What classes prepare you?

  • No. 1011, Mastering MFC Fundamentals Using Microsoft Visual C++
  • No. 1012A: Mastering COM Development Using Microsoft Visual C++
  • No. 1015: Mastering MFC Development Using Microsoft Visual C++ 6

I’ve tried Microsoft’s Mastering MFC Development CD and found it decent, with helpful lab exercises. The CD includes sample questions at the end of each chapter, but expect the exam questions to be harder.

I didn’t find the audio-visual material on this CD to be very useful, but perhaps that’s because I’d rather read a book than a computer screen. The information on the CD alone is not enough to pass the exam. As a minimum, supplement it with the Mastering COM Development if you like learning from CDs.

What's new?

The Visual C++ Desktop exam, along with its sister exam on distributed applications, replace exams 70-024, Developing Applications with C++ using the Microsoft Foundation Class Library, and 70-025, Implementing OLE in MFC 4.0 Library Applications.

There’s definitely enough material in MFC development for two exams, but splitting this material into OLE and non-OLE would have made more sense to me than Desktop versus Distributed. [Tom Steele reviews the new Visual C++ Distributed exam (70-015) in this issue.—Ed.] Except for some extra obviously "distributed" material, the requirements are almost the same for the two exams. Some of the distinctions between desktop and distributed seem arbitrary. Why would dynamic HTML be considered desktop? SMS sounds like a distributed topic to me, but it’s considered both.

As far as specifics about what you’ll find on the Desktop exam, you should have an understanding that ranges from the theoretical (such as the benefits of component based development) to very practical (as in the detailed actual screen shots used in the IDE). You should understand the differences between the different libraries that can be used to develop Visual C++ applications: MFC, ATL or the SDK. Also, know the advantages and disadvantages of each of the methods for connecting to a database: ODBC, ADO, DAO, and RDO. suggest you take the overlap in requirements between the two exams into consideration when planning your review. For example, you may want to plan to study for two months, then take both exams, rather than allowing one month for each. This is especially true if you feel strong in the database area (Creating Data Services and Creating Physical Databases). The topics are so inter-related that it’s hard to see where one exam ends and the other begins. This is like the two SQL Server exams. I studied weeks for both of them but took the Implementation exam only a couple of days after the Administration exam.

Why Bother with C++ Certification Anyway?

Here’s a good question that you won’t find on the exam: Why is there so little demand for Visual C++ certification when there’s such strong demand for Visual C++ skills? As a consultant, I’ve worked at many different client sites. I'm active in user groups. I know a lot of programmers. Yet, I know only two other developers who have passed the previous version of this exam (70-024). It's not that people are taking it and failing; they just aren’t taking it. I have yet to have a client ask about me C++ certification (I put it on my resume anyway). Even at interviews for C++ positions, clients have been more interested in my SQL Server or TCP/IP certification.

Maybe the lack of interest is because many C++ programmers come from the Unix world. Unix programmers, as a rule, often don't have a lot of respect for Microsoft. Or perhaps it’s the simple fact that developers aren’t buying into certification the way network people have. Whatever the reason, I like to buck the trend and encourage C++ programmers to get certified.
Patty Pickup

Tools

The requirements list mentions several products that are not properly part of Visual C++, as well as tools that come with Visual Studio: Spy++, Depends, MSMQ, MTS, SQL, SMS, and Visual Source Safe. You don’t need to know these tools thoroughly but you need to know when one or the other would be appropriate. Try them all out. Incorporate them into your current project if you can.

  • Hint #1. One of the exam requirements is "Evaluate the need for beta testing." If you get a question that asks if beta testing is appropriate or if version control is a good idea, lean toward the answer most like "yes" or "always." It's like your dentist asking you to "Evaluate the need for flossing." You know what they want to hear. Consider it a gift question.

  • Hint #2. Another requirement suggests "Use Depends." This does not mean you should wear an adult incontinence product to the test site. I assure you that will not help you pass this exam.

Example Code

Microsoft Access is to Northwind as SQL Server is to Pubs as Visual C++ is to what? Scribble!

Scribble, of course, is the sample Visual C++ Etch-a-Sketch application. There are others; they’re each worth a review. Any classes in these sample applications are common enough that you should probably know them in detail, along with specific classes mentioned in the requirements. Reading the code could remind you of some areas that you need to review, such as mapping modes or handling database access.

Practice Tests

When you’re trying to teach yourself, you don't know what you don't know. Practice tests help point out your weak areas. Since this is a beta exam, I didn’t expect to find practice tests, but you could use practice exams from previous versions. However, it’s hard to find practice tests for any version of an MFC exam. I checked the Web sites of all the test vendors that advertise in MCP Magazine, MCP Magazine's Web site, and did some additional Web searching. What I found is that there’s plenty of stuff for the MCSE core exams, but nothing for this exam. Two practice test vendors say they have MFC tests in development, but only one (VFX Technologies) is currently selling an MFC test.

Microsoft at one time had practice exams for MFC and OLE that you could download. I still have a copy—the Sylvan Prometric Assessment Test Launcher Version 2.3, or LNCHTST.EXE. Microsoft's new test software (called uengine.exe, developed by Self Test Software) does not have an MFC module or an OLE with MFC module. The VB run time module (VBRUN300.DLL) delivered with it, however, makes me believe that someone at Microsoft is not eating their own dog food.

Books

I'd like to see a book specifically for Visual C++ certification, with lab exercises and practice questions at the end of every chapter, like the books they have for Visual Basic and (it seems) every other exam. Most bookstores I visit seem to have a large amount of bookshelf space devoted to C++, and another large area devoted to Microsoft certification, but there’s no overlap. It seems there’s currently no book on C++ certification, although Amazon.com and FatBrain.com both report three Visual C++ certification books that are unavailable as I write this.

If I were to recommend just one book to prepare, it would be Kruglinski’s Programming Microsoft Visual C++. Be sure to get the fifth and latest edition; it has sections that were not in earlier editions but that are required for the exam: ISAPI, Dynamic HTML, ATL and OLE DB, to name a few. Kruglinski even has a chapter on Visual C++ for Windows CE (not required for the exam).

I also like Prosise's Programming Windows 95 with MFC, (the "Petzold for MFC"). It’s a clearly written and well-organized tutorial. Don’t attempt to use these books as a sole resource to pass the exam, however.

For starters, Prosise doesn’t cover the IDE at all. Nor does he explain how to use AppWizard or ClassWizard to generate code. You don’t really need it to use the code in his book, since all of the code is on the CD inside the back cover. The wizards aren’t difficult to use, but if you haven't used them because you’ve created your own MFC extensions or have simply gotten used to cutting and pasting text, I suggest you refresh your memory. Some of the exam questions show actual wizard screens. You are asked to select the controls that must be set to create an application that meets certain requirements or to create a class that meets certain requirements. Know generally what code is generated for every radio button, list box or other control on the wizard dialogs.

Secondly, Prosise doesn’t cover COM or OLE or Active X at all. And you cannot pass this exam if you do not understand COM inside out. In fact, even with Kruglinski, you’ll probably want to supplement your reading on COM and ActiveX.

Finally, be aware that things have been added to MFC and Visual C++ since Prosise came out in 1996. The book is Windows-95 specific and doesn’t deal with either Windows 98 or Windows NT. (A second edition of this book came out between the time this article was written and when it was published. I have not had time to read this book but it claims to cover COM, OLE and ActiveX. Although it does not claim to cover the IDE or ATL, I feel confident in claiming, sight unseen, that it should be a good if incomplete resource for this exam.)

There are lots of books on Visual C++ itself, many giving the broad overview you need as part of your preparation for this exam. There’s even a Visual C++ for Dummies, but don’t expect me to recommend it. Visual C++ is not something “dummies” should be playing with. (Forgive me, but that’s who Visual Basic is for.) Whatever book you select, I suggest that you go through the topics in Microsoft's preparation guide (see below). If the topic isn’t covered, go find it in the help files or MSDN, print it out, and highlight the relevant parts.

Additional Information

You'll find the preparation guide for this exam at: www.microsoft.com/
trainingandservices/exams/examasearch.asp?PageID=70-016
.

Read Tom Steel's review of the Visual C++ Distributed Applications exam at http://mcpmag.com/Reviews/Exams/article.asp?EditorialsID=65.

Conclusion

The ideal exam would discriminate between someone who has the knowledge to develop quality software with C++ and someone who doesn't. This exam does that without requiring that you debug or program during the test. This is a challenging, difficult exam, but it doesn’t overwhelm you with trivia. When it gets down into the details, the exam asks about the objects and functions good MFC programmers should know.

comments powered by Disqus
Most   Popular