Microsoft Learning:

Exam 70-549:

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

Published:May 26, 2006
Language(s):English, French, German, Japanese
Audience(s):Developers
Technology:Microsoft Visual Studio 2005
Type:Proctored Exam
Special Offer:
Find out how you can save 25 percent off the price of this certification exam, and help advance your career.
About this Exam
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
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
Credit Toward CertificationExam 70-549: PRO: Designing and Developing Enterprise Applications by Using the Microsoft .NET Framework: counts as credit toward the following certification(s):
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.
Skills Being MeasuredThis exam measures your ability to accomplish the technical tasks listed below.The percentages indicate the relative weight of each major topic area on the exam.
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.
Preparation Tools and ResourcesTo 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" tab.
Classroom Training There is no classroom training currently available.
Microsoft E-Learning There is no Microsoft E-Learning training currently available.
Microsoft Press Books There are no Microsoft Press books currently available.
Practice Tests
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.
Have Questions? For advice about training and certification, connect with peers: For questions about a specific certification, chat with a Microsoft Certified Professional (MCP): To find out about recommended blogs, Web sites, and upcoming Live Meetings on popular topics, visit our community site:

How To Get It

Schedule your exam through the following exam provider:

Related Services