Preparation Guide for Exam 70-549

PRO: Designing and Developing Enterprise Applications by Using the Microsoft .NET Framework

Published: April 29, 2008
On This Page
Exam newsExam news
Audience profileAudience profile
Credit toward certificationCredit toward certification
Code languagesCode languages
Preparation tools and resourcesPreparation tools and resources
Skills measuredSkills measured

Exam news

This Professional Developer (PRO) exam, Exam 70-549: PRO: Designing and Developing Enterprise Applications by Using the Microsoft .NET Framework, became available on May 15, 2006.

Top of pageTop of page

Audience profile

Candidates for this exam work on a team in a medium or large development environment that uses Microsoft Visual Studio .NET 2003 Enterprise Developer or Visual Studio 2005. Candidates should have at least two years of experience developing Microsoft Windows or Web-based applications by using the Microsoft .NET Framework. Candidates should have a working knowledge of Visual Studio 2005.

An enterprise application developer can operate as a Microsoft Windows-based or Web-based client application developer and can develop middle-tier data or business logic components. Candidates should have at least three to five years of on-the-job experience dedicated to enterprise application development.

Candidates should have worked in the following phases in the application life cycle:

Technical envisioning and planning

Design and development

Stabilizing and releasing

Top of pageTop of page

Credit toward certification

When you pass Exam 70-549: PRO: Designing and Developing Enterprise Applications by Using the Microsoft .NET Framework, you earn credit toward the following certification:


Top of pageTop of page

Code languages

When the exam begins, you can choose the programming language in which the code segments will appear. The available code languages for this exam are:

Microsoft Visual Basic 2005

Microsoft Visual C# 2005

Microsoft Visual C++ 2005

Top of pageTop of page

Preparation tools and resources

To help you prepare for this exam, Microsoft Learning recommends that you have hands-on experience with the product and that you use the following training resources. These training resources do not necessarily cover all of the topics listed in the "Skills measured" section.

Classroom trainingMicrosoft E-LearningMicrosoft Press booksPractice tests

There is no classroom training currently available.

There is no Microsoft E-Learning training currently available.

MCPD Self-Paced Training Kit (Exams 70-549): Designing and Developing Enterprise Applications Using the Microsoft .NET Framework

Debugging Microsoft .NET 2.0 Applications

CLR via C#: Applied Microsoft .NET Framework Programming, Second Edition

MeasureUp (Measureup.com)

Self Test Software (Selftestsoftware.com)

Microsoft online resources

Learning Plan: Get started by creating a step-by-step study guide that is based on recommended resources for this exam.

Microsoft Learning Community: Join newsgroups and visit community forums to connect with your peers for suggestions on training resources and advice on your certification path and studies.

TechNet: Designed for IT professionals, this site includes how-to instructions, best practices, downloads, technical resources, newsgroups, and chats.

MSDN: Designed for IT professionals, this site includes how-to instructions, best practices, downloads, technical resources, newsgroups, and chats.

Top of pageTop of page

Skills measured

This certification exam measures your ability to develop and implement n-tier solutions, targeting both Web and rich client user experiences. Before taking the exam, you should be proficient in the job skills listed in the following table.

Skills measured by Exam 70-549
Envisioning and Designing an Application

Evaluate the technical feasibility of an application.

Determine whether MSMQ should be used for this application.

Determine whether remoting should be used for this application.

Evaluate the technical specifications for an application to ensure that the business requirements are met.

Translate the functional specification into developer terminology, such as pseudo code and state diagrams.

Analyze suggested component type and layer.

Evaluate the design of a database.

Recommend a database schema.

Identify the stored procedures that are required for an application.

Evaluate the logical design of an application.

Evaluate the logical design for performance.

Evaluate the logical design for maintainability.

Evaluate the logical design for extensibility.

Evaluate the logical design for scalability.

Evaluate the logical design for availability.

Evaluate the logical design for security.

Evaluate the logical design against use cases.

Evaluate the logical design for recoverability.

Evaluate the logical design for data integrity.

Evaluate the physical design of an application. Considerations include the design of the project structure, the number of files, the number of assemblies, and the location of these resources on the server.

Evaluate the physical design for performance.

Evaluate the physical design for maintainability.

Evaluate how the physical location of files affects the extensibility of the application.

Evaluate the physical design for scalability.

Evaluate the physical design for availability.

Evaluate the physical design for security.

Evaluate the physical design for recoverability.

Evaluate the physical design for data integrity.

Designing and Developing a Component

Establish the required characteristics of a component.

Decide when to create a single component or multiple components.

Decide in which tier of the application a component should be located.

Decide which type of object to build.

Create the high-level design of a component.

Establish the life cycle of a component.

Decide whether to use established design patterns for the component.

Decide whether to create a prototype for the component.

Document the design of a component by using pseudo code, class diagrams, sequence diagrams, activity diagrams, and state diagrams.

Evaluate tradeoff decisions. Considerations include security vs. performance, performance vs. maintainability, and so on.

Develop the public API of the component.

Decide the types of clients that can consume a component.

Establish the required component interfaces.

Decide whether to require constructor input.

Develop the features of a component.

Decide whether existing functionality can be implemented or inherited.

Decide how to handle unmanaged and managed resources.

Decide which extensibility features are required.

Decide whether a component must be stateful or stateless.

Decide whether a component must be multithreaded.

Decide which functions to implement in the base class, abstract class, or sealed class.

Develop a component feedback mechanism.

Develop a component status feedback technique.

Develop an exception handling mechanism.

Develop the data access and data handling features of a component.

Analyze data relationships.

Analyze the data handling requirements of a component.

Develop a component to include profiling requirements

Identify potential issues, such as resource leaks and performance gaps, by profiling a component.

Decide when to stop profiling on a component.

Decide whether to redesign a component after analyzing the profiling results.

Choose an appropriate mechanism to deliver multimedia data across distributed applications by using Web services and Message Queuing.

Evaluate available multimedia delivery mechanisms. Considerations include bandwidth problems, file formats, and sending large attachments.

Design a multimedia delivery mechanism.

Designing and Developing an Application Framework

Consume a reusable software component.

Identify a reusable software component from available components to meet the requirements.

Identify whether the reusable software component needs to be extended.

Identify whether the reusable software component needs to be wrapped.

Identify whether any existing functionality needs to be hidden.

Test the identified component that is based on the requirements.

Choose an appropriate implementation approach for the application design logic.

Choose an appropriate data storage mechanism.

Choose an appropriate data flow structure.

Choose an appropriate decision flow structure.

Choose an appropriate state management technique.

Choose an appropriate security implementation.

Choose an appropriate event logging method for the application.

Decide whether to log data. Considerations include policies, security, requirements, and debugging.

Choose a storage mechanism for logged events. For example, database, flat file, event log, or XML file.

Choose a system-wide event logging method. For example, centralized logging, distributed logging, and so on.

Decide logging levels based on severity and priority.

Monitor specific characteristics or aspects of an application.

Decide whether to monitor data. Considerations include administration, auditing, and application support.

Decide which characteristics to monitor. For example, application performance, memory consumption, security auditing, usability metrics, and possible bugs.

Choose event monitoring mechanisms, such as System Monitor and logs.

Decide monitoring levels based on requirements.

Choose a system-wide monitoring method from the available monitoring mechanisms.

Testing and Stabilizing an Application

Perform a code review.

Evaluate the testing strategy.

Create the unit testing strategy.

Evaluate the integration testing strategy.

Evaluate the stress testing strategy.

Evaluate the performance testing strategy.

Evaluate the test environment specification.

Design a unit test.

Describe the testing scenarios.

Decide coverage requirements.

Evaluate when to use boundary condition testing.

Decide the type of assertion tests to conduct.

Perform integration testing.

Determine if the component works as intended in the target environment.

Identify component interactions and dependencies.

Verify results.

Resolve a bug.

Investigate a reported bug.

Reproduce a bug.

Evaluate the affect of the bug and the associated cost and timeline for fixing the bug.

Fix a bug.

Deploying and Supporting an Application

Evaluate the performance of an application that is based on the performance analysis strategy.

Identify performance spikes.

Analyze performance trends.

Analyze the data received when monitoring an application.

Monitor and analyze resource usage.

Monitor and analyze security aspects.

Track bugs that result from customer activity.

Evaluate the deployment plan.

Identify component-level deployment dependencies.

Identify scripting requirements for deployment. Considerations include database scripting.

Create an application flow-logic diagram.

Evaluate the complexity of components.

Evaluate the complexity of interactions with other components.

Validate the production configuration environment.

Verify networking settings.

Verify the deployment environment.

Note This preparation guide is subject to change at any time without prior notice and at the sole discretion of Microsoft. Microsoft exams might include adaptive testing technology and simulation items. Microsoft does not identify the format in which exams are presented. Please use this preparation guide to prepare for the exam, regardless of its format.


Top of pageTop of page