Exam 70-565 Prep Guide

Some of you are asking about information on what this exam will cover and the prep guides are not updated on the public pages yet.  In the meantime, I have posted the prep guide information here.

 

Target Audience

Candidates for this exam work on a team in a development environment that uses Microsoft Visual Studio® .NET 2008 and the .NET Framework 3.5 to build enterprise applications. Candidates should have at least one to two years of experience developing enterprise applications by using Microsoft ASP.NET, Windows® Forms, Windows Presentation Foundation (WPF), Microsoft ADO.NET, Windows Communication Foundation (WCF), and distributed technologies in .NET 3.5.

Additionally, the candidate should be able to demonstrate the following by using the .NET Framework 3.5:

• A solid understanding of the ASP.NET applications event model

• Experience creating ASP.NET and Windows applications that access data sources

• A solid understanding of the Windows applications event model

• Experience using client-side scripting techniques

• Experience configuring and deploying applications

• Experience with .NET Remoting, WCF, and Web services technologies

 

1. Envisioning and Designing an Application

1.1. Analyze and refine the logical design of the application.

This objective may include but is not limited to: clarify logical design; evaluate the layers; evaluate application workflow; evaluate data flow diagrams; evaluate performance; evaluate maintainability; evaluate extensibility; evaluate availability; evaluate design against use cases; evaluate recoverability; evaluate data integrity

1.2. Analyze and refine the physical design of the application.

This objective may include but is not limited to: evaluate the tiers; evaluate migration strategy; clarify physical design; evaluate component specification; evaluate performance; evaluate maintainability; evaluate extensibility; evaluate scalability; evaluate availability; evaluate recoverability; evaluate data integrity

1.3. Analyze and refine the database design of the application.

This objective may include but is not limited to: evaluate stored procedure requirements; evaluate schema requirements; identify whether triggers are required; identify required data types

1.4. Analyze and refine the integration strategy.

This objective may include but is not limited to: evaluate integration of application with other systems; internal vs. external integration; enable future integration with other systems; evaluate WCF as an integration component

1.5. Identify the appropriate technology.

This objective may include but is not limited to: identify the technology and format for transport; identify the technology and format for messages; identify the technology and format for required client interoperability; choose a platform—Windows vs. Web; choose a communication technology—Windows Communication Foundation (WCF), Web services, Remoting, message queueing; define a component communication strategy; recommend build vs. buy; choose a platform—Windows Presentation Foundation (WPF), ASP.NET, AJAX, Windows Forms, Windows service

1.6. Analyze technical feasibility.

This objective may include but is not limited to: develop a proof of concept; perform a technical risk assessment; recommend changes to the design to meet the same technical goals; analyze feasibility of design in planned environment; determine whether the proposed design could integrate with other systems by using WCF

1.7. Analyze security requirements.

This objective may include but is not limited to: recommend an authentication method; recommend an authorization method; recommend a secure communication method

2. Designing and Developing an Application Framework

2.1. Choose an appropriate implementation approach for the application design logic.

This objective may include but is not limited to: choose data storage mechanisms; choose data flow structure; choose decision flow structure; state management techniques; security implementation; finalize component specification

2.2. Define the interaction between framework components.

This objective may include but is not limited to: determine types of clients that will access the application; define data APIs, security APIs, abstract classes, class interfaces, and data contracts; map data to object model; messaging and transport methods such as WCF, Remoting, Web services, MSMQ, Enterprise Services

2.3. Define a validation strategy.

This objective may include but is not limited to: define where in the framework each type of validation will happen; choose a validation method

2.4. Define an event-logging strategy.

This objective may include but is not limited to: choose a storage mechanism for logged events; choose a systemwide event logging method; decide logging levels based on severity or priority; define a reporting strategy

2.5. Define a monitoring strategy for specific characteristics or aspects of an application.

This objective may include but is not limited to: decide whether to monitor data; decide which characteristics to monitor; choose event monitoring mechanisms; decide monitoring levels based on requirements; choose a system-wide monitoring method from the available monitoring mechanisms; define a reporting strategy

3. Designing Application Components

3.1. Create the high-level design of a component.

This objective may include but is not limited to: establish the life cycle of a component; define user interface for each component; define interoperability requirements; identify and extract reusable components; document the design of a component by using pseudo code, class diagrams, sequence diagrams, activity diagrams, and state diagrams; decide whether to require constructor input

3.2. Define the internal architecture of a component.
This objective may include but is not limited to: decide whether existing functionality can be implemented or inherited; decide how to handle unmanaged and managed resources; decide which extensibility features are required; determine state management implementation; decide whether a component must be multithreaded; decide which functions to implement in the base class, abstract class, or sealed class

3.3. Define the data handling for a component.
This objective may include but is not limited to: define data access; analyze data relationships; analyze the data handling requirements of a component

3.4. Consume components.

This objective may include but is not limited to: identify reusable components; handle unmanaged components; identify whether a component needs to be extended; identify whether a component needs to be wrapped; identify whether any existing functionality needs to be hidden; test that reused components meet the specifications

3.5. Define a strategy for exceptions and other component feedback.

This objective may include but is not limited to: identify expected exceptions; decide how to deal with expected exceptions; decide how to deal with unhandled exceptions; decide how to deal with WCF faults; define other component feedback, such as events, callbacks, and messages; define a reporting strategy

4. Stabilizing and Testing an Application

4.1. Define a performance testing strategy.

This objective may include but is not limited to: define how you will test an application's performance under a specified load; define how you will test an application's behavior when specified load is exceeded

4.2. Define a functional testing strategy.

This objective may include but is not limited to: identify component interactions and dependencies; define how you will test a component in isolation; define how you will test a component's interactions with other components

4.3. Perform integration testing.

This objective may include but is not limited to: run integration tests to determine whether the component interacts with other components as expected; verify results; test that endpoints are correct and service references are updated for communication methods such as WCF, Remoting, Web services, MSMQ, and Enterprise Services

4.4. Perform a code review.

This objective may include but is not limited to: perform a security review; perform a functional review; perform a performance review; perform a regulatory compliance review

4.5. Resolve a bug.

This objective may include but is not limited to: analyze root cause for problems in code, such as exception handling issues, performance problems, security issues, resource usage issues, and features that do not perform as expected

5. Migrating, Deploying, and Maintaining an Application

5.1. Create a deployment plan.

This objective may include but is not limited to: identify component-level deployment dependencies; identify location of specific components for deployment; determine a deployment method; identify required assembly registration; document the physical deployment of the application

5.2. Analyze the configuration of the production environment.

This objective may include but is not limited to: security environment; database environment; networking environment; .NET Framework versions; IIS versions; hardware and software requirements

5.3. Analyze performance monitoring data.

This objective may include but is not limited to: identify performance spikes; identify performance trends; monitor and analyze resource usage; monitor and analyze security aspects

5.4. Analyze logs.
This objective may include but is not limited to: review logs during deployment phase; review logs to determine source of failure; trace data to identify source of error

 

Gerry