Exam 70-521:

Upgrade: Transition your MCPD .NET Framework 3.5 Windows Developer Skills to MCPD .NET 4 Windows Applications Developer

Published:October 05, 2010
Language(s):English
Audience(s):Developers
Technology:Microsoft Visual Studio 2010
Type:Proctored Exam

How To Get It: Schedule your exam through the following exam provider:

Take exam

Preparing for an Exam
This exam is scheduled to retire July 31, 2014.
The Microsoft Certification website and this preparation guide contain a variety of resources to help you prepare for an exam. Preparing for and Taking an Exam — FAQ provides answers to frequently asked questions about exam registration ,preparation ,scoring ,and policies , including:
  • The most effective way to prepare to take an exam.
  • The relationship between Microsoft training materials and exam content.
  • Microsoft policy concerning the incorporation of service pack and revision updates into exam content.
  • Exam question types and formats.
  • Exam time limits and number of questions asked.
We recommend that you review this preparation guide in its entirety and familiarize yourself with the FAQs and resources on the Microsoft Certification website before you schedule your exam.
Exam Topics Covered
This exam is designed for candidates who current hold an MCPD certification as a Windows Developer on .NET 3.5 to upgrade to the MCPD Windows Applications Developer 4.
Audience Profile
Candidates for this exam should have experience with developing applications for the Windows desktop using Visual Studio 2010 or earlier.  Candidates should also have experience with Windows Presentation Foundation (WPF), Windows Forms, ADO.NET, and Windows Communication Foundation (WCF).
Credit Toward CertificationWhen you pass Exam 70-521: Upgrade: Transition your MCPD .NET Framework 3.5 Windows Developer Skills to MCPD .NET 4 Windows Applications Developer, you complete the requirements for the following certification(s):
MCTS: .NET Framework 4, Windows Applications
MCTS: .NET Framework 4, Service Communication Applications
MCTS: .NET Framework 4, Data Access
MCPD: Windows Developer 4
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.The higher the percentage, the more questions you are likely to see on that content area on the exam.

The information after “This objective may include but is not limited to” is intended to further define or scope the objective by describing the types of skills and topics that may be tested for the objective. However, it is not an exhaustive list of skills and topics that could be included on the exam for a given skill area. You may be tested on other skills and topics related to the objective that are not explicitly listed here.
Building a User Interface by Using BasicTechniques
  • Choose the most appropriate control class.
    This objective may include but is not limited to: evaluating design requirements and then selecting the most appropriate control based on those requirements; recognizing when none of the standard controls meet requirements; item controls, menu controls, content controls
    This objective does not include: designing a custom control
  • Implement screen layout by using nested control hierarchies.
    This objective may include but is not limited to: using panel-derived controls, attaching properties
    This objective does not include: items controls, control customization
Enhancing a User Interface by Using Advanced Techniques
  • Manage routed events in WPF.
    This objective may include but is not limited to: tunneling vs. bubbling events, handling and cancelling events
    This objective does not include: simple event handling; creating custom events
  • Configure WPF commanding.
    This objective may include but is not limited to: defining WPF commands based on RoutedCommand; associating commands to controls; handling commands; command bindings; input gestures  
    This objective does not include: creating custom commands by implementing ICommand
  • Implement user-defined controls.
    This objective may include but is not limited to: deciding whether to use a user/composite, extended, or custom control ; creating a user/composite control; extending from an existing control
    This objective does not include: creating a custom control by inheriting directly from the Control class and writing code
Managing Data at the User Interface Layer
  • Implement data binding.
    This objective may include but is not limited to: binding options, static and dynamic resources, element bindings, setting the correct binding mode and update mode; binding to nullable values
    This objective does not include: binding to a specific data source
  • Implement data validation.
    This objective may include but is not limited to: handling validation and providing user feedback via the error provider (WinForms) or data templates (WPF), IDataErrorInfo, validation control, form validation and control validation
  • Prepare collections of data for display.
    This objective may include but is not limited to: filtering, sorting, and grouping data; LINQ; CollectionView (WPF), BindingSource object (WinForms)
  • Implement data-bound controls.
    This objective may include but is not limited to: using the DataGridView (WinForms) or DataGrid (WPF) control to display and update the data contained in a data source, implementing complex data binding to integrate data from multiple sources; ItemsControl-derived controls (WPF)
Enhancing the Functionality and Usability of a Solution
  • Implement asynchronous processes and threading.
    This objective may include but is not limited to: implementing asynchronous programming patterns; marshalling between threads; freezing UI elements; using timers; Task Parallel Library; parallel LINQ; using the dispatcher; BackgroundWorker component
  • Implement security features of an application.
    This objective may include but is not limited to: configuring Software Restriction Policy (SRP); full trust and partially trusted security; interoperability with legacy CAS policy; User Account Control (UAC)
  • Manage user and application settings.
    This objective may include but is not limited to: creating application settings; creating user settings; loading and saving settings
    This objective does not include: persisting to database
  • Implement dependency properties.
    This objective may include but is not limited to: enabling data binding and animation, property metadata, property change callbacks
Stabilizing and Releasing a Solution
  • Implement a WPF test strategy.
    This objective may include but is not limited to: automation peer, UI automation, IntelliTrace
  • Debug XAML by using the WPF Visualizer.
    This objective may include but is not limited to: accessing the Visualizer, drilling down into the visual tree, viewing and changing properties
    This objective does not include: setting a breakpoint and stepping through code
  • Create and configure a Windows Installer project.
    This objective may include but is not limited to: configuring a setup project to add icons during setup, setting deployment project properties, configuring conditional installation based on operating system versions, setting appropriate Launch Conditions based on the .NET Framework version, adding custom actions to a setup project, adding error-handling code to a setup project
  • Configure deployment security settings.
    This objective may include but is not limited to: configuring and integrating UAC by using ClickOnce deployments; setting appropriate security permissions to deploy the application
Creating Services
  • Create service and operation contracts.

    This objective may include but is not limited to: one-way, duplex, and request reply; creating and specifying  fault contracts; configuration-based contracts; exposing service metadata; selecting serialization (e.g., data contract serializer vs. XML serializer)
    This objective does not include: designing service and operation contracts; transactions, instantiation, security-related attributes
  • Create data contracts.

    This objective may include but is not limited to: managing Known Types; controlling data serialization; using required and order attributes on data members; implementing versioning using IExtensibleDataObject; POCOs

    This objective does not include: using custom serializer (ISerializationSurrogate)
  • Implement RESTful services.

    This objective may include but is not limited to: accessing HTTP context; WebGet/WebInvoke, UriTemplates; JSON/POX
Hosting and Configuring Services
  • Create and configure endpoints.

    This objective may include but is not limited to: default and standard bindings; custom bindings created from standard binding elements; standard endpoints; transports including HTTP, TCP, named pipes, UDP, MSMQ code-based service configuration; message encoding

    This objective does not include: creating a custom binding element; creating new standard endpoints, loading configuration from a location other than the default application configuration file, security, transaction, reliable sessions
  • Configure Behaviors.

    This objective may include but is not limited to: applying service, endpoint, and operation behaviors in configuration and code

    This objective does not include: creating a custom behavior; creating and using dispatch behaviors, loading configuration from a location other than the default application configuration file
Consuming Services
  • Create a service proxy.

    This objective may include but is not limited to: using a proxy class or channel factory to create a proxy; creating a proxy for an asynchronous communication; creating a proxy for a duplex communication
    This objective does not include: SvcUtil command-line switches
  • Consume RESTful services

    This objective may include but is not limited to: access HTTP context; JSON/POX
Securing Services
  • Configure secure Bindings.

    This objective may include but is not limited to: transport, message, mixed mode
  • Configure message security.

    This objective may include but is not limited to: specifying protection levels on different message parts
Managing the Service Instance Life Cycle
  • Manage sessions.

    This objective may include but is not limited to: code and configuration; session management attributes; throttling; reliable sessions; transport-level and application-level sessions; invoking a callback contract
  • Manage concurrency.

    This objective may include but is not limited to: single, multiple, and reentrant concurrency modes; SynchronizationContext and CallbackBehavior

    This objective does not include: deadlocks and other multithreading issues
Monitoring and Troubleshooting Distributed Systems
  • Configure message logging.

    This objective may include but is not limited to: configuring message listeners; logging level; message filters; configuring logging known PII
    This objective does not include: secure message logs
  • Configure diagnostics.

    This objective may include but is not limited to: WMI; performance counters; event logging
Modeling Data
  • Map entities and relationships by using the Entity Data Model.

    This objective may include but is not limited to: using the Visual Designer, building an entity data model from an existing database, managing complex entity mappings in EDMX, editing EDM XML, mapping to stored procedures, creating user-defined associations between entities, generating classes with inheritance and mapping them to tables
    This objective does not include: using MetadataWorkspace
  • Create and customize entity objects.

    This objective may include but is not limited to: configuring changes to an Entity Framework entity, using the ADO.NET EntityObject Generator (T4), extending, self-tracking entities, snapshot change tracking, ObjectStateManager, partial classes, partial methods in the Entity Framework 
Managing Connections and Context
  • Create and manage a data connection.

    This objective may include but is not limited to: connecting to a data source, closing connections, maintaining the life cycle of a connection
  • Configure ADO.NET Data Services.

    This objective may include but is not limited to: creating access rules for entities, configuring authorization and authentication, configuring HTTP verbs
Querying Data
  • Execute a SQL query.

    This objective may include but is not limited to: DBCommand, DataReader, DataAdapters, DataSets, managing data retrieval by using stored procedures, using parameters, System.Data.Common namespace classes
  • Create a LINQ query.

    This objective may include but is not limited to: syntax-based and method-based queries, joining, filtering, sorting, grouping, aggregation, lambda expressions, paging, projection
    This objective does not include: compiling queries
  • Query data by using ADO.NET Data Services.

    This objective may include but is not limited to: implementing filtering and entitlement in ADO.NET Data Services, addressing resources, creating a query expression, accessing payload formats, Data Services interceptors
Manipulating Data
  • Create, update, or delete data by using SQL statements.

    This objective may include but is not limited to: Create/Update/Delete (CUD), using DataSets, calling stored procedures, using parameters
  • Create, update, or delete data by using DataContext.

    This objective may include but is not limited to: CUD, calling stored procedures, using parameters
    This objective does not include: ObjectTrackingEnabled
  • Create, update, or delete data by using ObjectContext.

    This objective may include but is not limited to: CUD, calling stored procedures, using parameters, setting SaveOptions
Developing and Deploying Reliable Applications
  • Monitor and collect performance data.

    This objective may include but is not limited to: logging generated SQL (ToTraceString), collecting response times, implementing performance counters, implementing logging, implementing instrumentation
  • Handle exceptions.

    This objective may include but is not limited to: resolving data concurrency issues (handling OptimisticConcurrency exception, Refresh method), handling errors, transaction exceptions, connection exceptions, timeout exceptions, handling an exception from the Entity Framework disconnected object, security exceptions
  • Protect data.

    This objective may include but is not limited to: encryption, digital signature, hashing, salting, least privilege
  • Synchronize data.

    This objective may include but is not limited to: online/offline Entity Framework, synchronization services, saving locally
Designing the Layers of a Solution
  • Design a loosely coupled layered architecture.

    This objective may include but is not limited to: separation of concerns including presentation, business logic, and data; minimizing logical dependencies; deciding how layers connect (e.g., content-based vs. context-based filtered routing)
  • Design service interaction.

    This objective may include but is not limited to: service granularity (cohesiveness); interface granularity (responsibilities of an operation), versioning, data and service contracts (using a message contract rather than a data contract); hosting and protocol; managing data integrity (re-validating data across trust boundaries); evaluating use of RESTful interface (URI/resource structure); choosing a message exchange pattern; choosing synchronous vs. asynchronous operation invocation; deciding whether to use custom SOAP headers
    This objective does not include: interacting with existing/external systems
  • Design the security implementation.

    This objective may include but is not limited to: protecting data during transmission (encryption/hashing algorithm), authentication (client/proxy credential) and authorization (groups, built-in or custom role provider, claims, federated security), designing for least privilege (impersonation and/or delegation), planning for User Access Control (UAC) environments; auditing
  • Design for globalization and localization.

    This objective may include but is not limited to: multi-locale services; designing for time zone, sorting, UI considerations; database design considerations
Designing the Presentation Layer
  • Choose the appropriate Windows Client technology.
    This objective may include but is not limited to: choosing between Windows Forms, WPF, or a combination; choosing an appropriate presentation pattern (Model View Presenter [MVP], Model View/View Model [MV-VM]); identifying areas for possible migration/interoperability from Windows Forms to WPF
  • Design application workflow.

    This objective may include but is not limited to: user navigation, designing wizards, modal vs. non-modal; dependencies among UI elements; designing for input types based on environment and audience (kiosk, very large display, small display, indoors and outdoors)
  • Design data presentation and input.

    This objective may include but is not limited to: designing data validation; designing a data-binding strategy; designing a reporting strategy; choosing media services (audio, video, images, animation); managing data shared between forms
Designing the Data Access Layer
  • Choose the appropriate data access strategy.

    This objective may include but is not limited to:  choosing the appropriate data access technology (Entity Framework, LINQ to SQL, Microsoft ADO.NET); supporting data sources such as XML data, flat files, and relational databases
  • Design data caching.

    This objective may include but is not limited to: managing data cache (lifetime, targets, size, scope), managing data state (change notification, cache invalidation/synchronization)
  • Design for a concurrent multi-user environment.

    This objective may include but is not limited to: planning for concurrency and collision avoidance, optimistic vs. pessimistic locking, cross-tier distributed transactions
Planning a Solution Deployment
  • Define a client deployment strategy.

    This objective may include but is not limited to: recommending an installation method (Xcopy, ClickOnce, MSI, third party); identifying prerequisites (target framework and bootstrap requirements), deploying COM components
  • Plan a database deployment.
    This objective may include but is not limited to: existing or shared instance; remote server; embedded database; deploying new objects (such as tables, stored procedures, and views) to a new or existing database; recognizing database security concerns (such as shared instances and access); remote vs. local database
    This objective does not include: DLL deployment; shared GAC deployment
  • Design a solution update strategy.

    This objective may include but is not limited to: preserving shared components, data integrity, and user customizations; designing an update delivery method (e.g., automated update detection from the client), version mismatch (both local binaries and service interfaces)
  • Plan for n-tier deployment.

    This objective may include but is not limited to: mapping the solution to the topology (required hardware such as servers, routers, and RAM and required software such as OS); determining component installation order; reviewing security requirements
Designing for Stability and Maintenance
  • Design for error handling.
    This objective may include but is not limited to: collecting user feedback when errors occur, handling exceptions across tiers
    This objective does not include: try/catch blocks
  • Evaluate and recommend a test strategy.
    This objective may include but is not limited to: recommending functional testing, recommending reliability testing (performance testing, stress testing, scalability testing, duration testing)
    This objective does not include: unit testing
  • Design a diagnostics and monitoring strategy.

    This objective may include but is not limited to: profiling, tracing, performance counters, audit trails (events and information); usage reporting; deciding where to log events (local vs.centralized reporting)
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.
Learning Plans and 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 There are no practice tests currently available.
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: