Related Topics: XML Magazine, Microsoft Developer

XML: Article

Examining the 70-300 Exam

Examining the 70-300 Exam

In earlier editions of this column, I've covered three new .NET exams; the Windows applications exam, the Web applications exam, and the XML Web services exam. Now, I'll complete the set by discussing the "Analyzing Requirements and Defining Microsoft .NET Solution Architectures" exam, the 70-300. Just like that "Sesame Street" song, "Which of These Things Is Not Like the Others?", you will find few similarities between this exam and the other three. The type of questions, the style of questions, the use of case studies - everything is different.

First of all, the exam is touted as being "technology neutral." While that doesn't mean you should drag out your Oracle or Java books, it does mean that there will be virtually no code on the exam. This is a departure even from its predecessor, the 70-100, which included a selection of very technical questions. (Those of you from the old days may remember that they were usually referred to as WOSA-topic questions.) No more! This exam is truly focused on the art of designing solutions that are fast, secure, scalable, and that conform to "best practices" (as defined by Microsoft).

This sounds like good news, and in general, I would agree. It should be easier for a practicing solution architect to pass this exam than it was to pass the old, DNA-based 70-100 exam. Conversely, it will be harder for a senior developer with minimal experience in architectural design to get through this exam with a passing score. I would hypothesize that this is Microsoft's intent. If you read between the lines, what it also means is that it is harder to substitute book learning for actual experience with this exam than it is for other, more focused exams. It would be like asking, "which is better, Disney's Magic Kingdom or the Epcot Center?" The answer is "it depends." It depends on a lot of things and the experience of having been there goes a long way toward making the right decision based on a combination of requirements.

Before we proceed, I should say that I found the exam, as is always the case, to be true to the study guide provided by Microsoft ( You may want to print it out and have it handy as you read the rest of this article.

Seven Areas of Design
Microsoft cut the exam study outline up into seven distinct areas. The way items are divided up is different than on its predecessor, the 70-100. While that makes little difference when taking the exam, it might influence our study plan. Let's look at each and how we could prepare for the exam.

Envisioning the Solution
In order to prepare for envisioning questions, I would be prepared to ask yourself two questions each time you read a case study:

  • What functional modules will this solution require? In other words, what is in scope and what is out of scope?
  • What risks exist in this solution? (Be prepared to prioritize them).

    These seem to be favorite topics of the exam, and well they should be. All true solution architects ask themselves this question repeatedly as they design solutions. Often the answer changes as time passes. On the exam, time stands still as the case study only discusses a point in time. This should help.

    Other more "fuzzy" subtopic areas exist, such as "feasibility," but if you know the project's risks, you are very close to understanding what parts of your proposed design are feasible from a business, technical, and operational viewpoint.

    Note: If you want some practice reading case studies, check out Microsoft's repository of case studies at casestudies/default.asp.

    Gathering Requirements
    Some of us know this as analyzing the gap between "as is" and "to be." Requirements are generally a bit soft, but some study time on the value of use cases and the eight nonfunctional design goals (covered later in the column) would be advised.

    What are the business requirements (as defined in the case study)? What are the distinct user requirements? Is there some special user interface need like kiosk support, international language support, or sophisticated graphics? Are there any obvious operational requirements (e.g., 100% uptime)? Requirements are generally technology neutral. Don't get caught up in technical solutions yet.

    Developing Specifications
    Ah, we finally get to talk technical. Questions about specifications are often where we see multiple-choice questions that require us to pick certain technologies. For example, BizTalk, Commerce Server, XML, SSL, SQL Server, and so on might be the answer to a question about specifications. If 100% uptime is called for in the requirements, this might be where we spec out a multiserver Web farm with firewall software.

    While you won't be asked to code or implement any of the products in the Microsoft stable, it's wise to read the overview pages for each on the MSDN site to understand their capabilities - what they can and cannot do, when to use them, and when to use something else.

    Conceptual Design
    This is a completely new topic for Microsoft exams. Conceptual design is primarily focused on the use of ORM (Object Role Modeling). ORM is a modeling language that has been around for a while, but is new to the Microsoft Developer's Toolkit. It comes as an add-in to Visio 2002 and is part of the "Enterprise Architect" version of Visual Studio .NET.

    The exam is most likely to ask you one of two types of questions about ORM: "from a group of exhibits (pictures), choose the ORM diagram that best represents the answer to a question posed, or "from a list of multiple-choice questions, choose the ORM fact statement that best answers the question." While it would seem unlikely that there would be more than a few ORM questions on the released exam, it would be good to do a little reading. If you have access to the ORM add-in, spend some time experimenting and playing with it. There are three sources that come to mind. The first is to go to the Microsoft site and read their white papers and watch the "movie" version (

    The second approach is to go to your favorite search engine and do a search for "ORM". You might also want to include the name "Terry Halpin" in your search, as he seems to be the Microsoft ORM expert and has published quite a few papers over the years.

    The third way is to rely on one of the various "exam prep" books to get you up to speed.

    Logical Design
    This is my favorite area of design, what I call "boxes and lines." Here we make the decisions that make or break a solution. As for the exam, this is where you would likely be asked to choose between implementing a Web application, a Web service, or a Windows client application. You probably shouldn't expect any questions on "how many tiers?" because n-tier seems to be so pervasive these days that it isn't even a discussion point. You might be asked to design an object interface, separating properties from methods from events.

    Of course, this topic includes database schema design. This area seemed to trip up many people on the 70-100 exam, even former DBAs. I suggest that you know the normalization rules up to about third form, know the main relationships (one-to-many, one-to-one, etc.), and know what makes a good primary key. I found the drag-and-drop schemas that we were asked to build on the exam easier than those on the previous exam. If the schema was complicated, the exam usually presented four exhibits from which to choose instead of having the exam-taker build it from scratch. This was a welcome relief and made the exam go faster.

    One last item before we move on. Never before has it been so easy to support multilingual applications than with .NET. The .NET Framework provides rich support for multicultural and multilanguage applications. Spend some time reading up on what it takes to create a localized solution, one in which a single code base can support an almost unlimited number of languages. As someone who has had to support a global solution in the COM, Visual Basic 6.0 technology, I can tell you that life is good in .NET. Expect a question or two in this area on the exam.

    Physical Design
    Physical design is the intersection of specifications with logical design. This is where we actually build an infrastructure that supports performance, availability, and other design goals.

    It seems reasonable to expect that you might see one or two system schematics of a Web farm and be asked to choose the one that solves the specific needs of the case study. This is also where you might be asked to drag-and-drop to create a flow diagram that documents how data flows through your solution and what protocols are being used at each junction point.

    Standards & Processes
    This is another new area. Two items seem to dominate this topic on the exam:

    • Coding standards
    • Enterprise templates
    It will pay to read the Microsoft MSF white paper on coding standards (MSDN Library, .NET Development hive; search on "Design Guidelines for Class Library Developers"). Microsoft has a free, downloadable tool called FxCop that checks your code against their published standards. This is further than Microsoft has ever gone toward defining standards and best practices as an absolute. While your team might not agree with all these standards, it would pay to study them for the exam as there could be a couple of questions in this area.

    The more .NET does to make a developer more productive, the better it looks as a profitable choice for application building. Therefore, expect a few questions aimed at developer productivity. Enterprise templates top the list. Reusable frameworks might also make an appearance on the exam.

    While that was a very quick trip through the exam areas, my space is limited. Let me briefly cover the eight design goals that are prominent in the exam study guide.

    Eight Nonfunctional Design Goals
    In addition to the seven major topic areas, eight design goals feature prominently throughout the exam study guide (and the exam itself). Let's visit each briefly.

  • Performance: Are there any statements in the case study that give hints about expectations around response time or performance? Are there any obvious bottlenecks in either our logical or physical design? Are there commonsense performance guidelines that are not stated explicitly, but exist nonetheless?

    Note: A word of caution - it is dangerous on Microsoft exams to read too much between the lines. As a general rule of thumb, if it is not spelled out in the case study, it is probably not an aspect of the solution that you need to be concerned with.

  • Availability: Are there any stated uptime requirements?
  • Security: Security is an area that cannot be skipped when studying for any current Microsoft exam. In this exam, the focus is primarily on three areas: authentication, authorization, and data security (encryption, SSL, etc.). Microsoft has several good white papers on .NET and security; one is over 600 pages. Do not short yourself in your study in this area.
  • Scalability: While performance is how your application handles a single user, scalability is how gracefully performance degrades (if it does) as more users are added. Scalability has become a much bigger issue with the increase in Web applications than it was with fat client/server applications.
  • Maintainability: Is the application designed in such a way that several developers can be working in different areas at the same time (componentization)? Is tracing, debugging, logging, and exception handling in place to make it easy to find errors?
  • Accessibility: While accessibility has always been a design goal, it is getting greater focus in exams as of late. With more and more features available in the newer Windows operating systems, we need to build solutions that support users with hearing, visual, or physical challenges, to the best of our ability.
  • Deployability: A lot has been written about .NET's new XCOPY deployment model. While not all applications will deploy that easily, it certainly is easier across the board to deploy .NET applications (assuming that the .NET Framework is already in place) than it was to deploy COM applications. Know MSI (Microsoft Software Installer) and the Visual Studio .NET packaging wizard.
  • Extensibility: Extensibility is the ability to enhance our solution in the future. I don't personally recall any questions in this area. I would just advise keeping an eye out for phrases that are suggestive of future releases or iterative design.

    In Closing...
    Some people taking this exam may not have gone through the 70-100 exam, which is somewhat similar. So as a warning, I want to briefly explain the different format. First, each section is preceded by a case study. It may take some time to read the case study, but I propose that you give it a fast read and jot a few notes down on the provided scratch paper to speed things along. Of course, you can flip back to the case study at any time. For some reason, I prefer to stay on the "All" tab and just work from there. For each case study, you may get 15 or 20 questions. Try to take your breaks at the end of a section instead of the beginning of a section.

    In addition to the standard multiple-choice questions, there are a few "novelty" question types. There is drag-and-drop, where you are presented with boxes and connectors and need to build something. This usually ends up being a database schema or a system flow diagram. There is also a "build a tree" section, where you get a TreeView control that you need to complete. This seems to be mostly focused on creating a single table, dividing fields by Primary Key, Foreign Key, and Attributes. The other use of the tree is to design a class, dividing properties, methods, and events.

    The "Create a list" question style is where you are given statements and need to sort them into an ordered list. The final question style I'll mention is the "exhibit" question. You get four images and must choose the most appropriate one. This is a blessing for those who took the 70-100, as these are the questions where you used to have to build the diagram yourself, instead of choosing from a set.

    Keep in mind for all these questions that there might be items that are not used, that are only there to mislead. Don't panic if you have some leftover parts.

    If you are deep into the exam and it appears to be more about reading comprehension than anything else, you are pretty close to the mark. Search for the answer in the case study; you will find a surprising number of answers explicitly spelled out in the case study.

    If you narrow your choices down to two, but have no idea beyond that, select the one that reflects most favorably on .NET and on Microsoft. There is clearly a marketing aspect to the exam. Also, know that partially correct answers will get partial credit. This is especially important (and encouraging) on the novelty question types.

    In the questions, look for key phrases like "choose the simplest approach" or "with the least amount of code." This can be the telling difference between two answers that are otherwise both correct.

    Use the MSDN Library ( as one of your main study resources (especially the ".NET Development" and "Enterprise Development" hives). Additionally, at the end of this article I list several other excellent sources of information on the Internet to include in your study plan.

    Finally, use the product. Microsoft offers a free, three-hour online trial of Visual Studio .NET, Enterprise Architect Edition at

    If you can find a good practice exam, it would probably help, but at the time I wrote this column, the links on the Microsoft exam site led to sample questions that seemed too easy to be representative of those on the real exam.

    By the time you read this article, there should be several exam prep books on the market for this exam. I coauthored one of them, published by Que under the "Exam Cram" series. While I obviously hope that you'll consider purchasing my book, and believe it to be the "best of breed," I recommend that you select one of these books to assist you in filling in any weak areas. It is a tall order to expect any of us to know everything about everything. Those of you who do know who you are.

    Good luck on the exam and, as always, if you have any comments or would like to share any stories, feel free to write me at


  • The .NET Show:
  • Microsoft Webcast archive:
  • .NET Patterns & Practices:
  • .NET Architecture page:
  • Comments (0)

    Share your thoughts on this story.

    Add your comment
    You must be signed in to add a comment. Sign-in | Register

    In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.