Preparation Guide for Exam 70-552

UPGRADE: MCAD Skills to MCPD Windows Developer by Using the Microsoft .NET Framework

Updated: September 8, 2008

Save 40 percent on select upgrade exams

This exam is now 40 percent off the retail price. To take advantage of the price reduction, simply register for the exam—no promotion code is required.

Related Links

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

Exam 70-552: UPGRADE: MCAD Skills to MCPD Windows Developer by Using the Microsoft .NET Framework became available in May 2006. This is a professional (PRO) upgrade exam for those who have obtained the Microsoft Certified Application Developer (MCAD) certification.


Top of pageTop of page

Audience profile

Candidates for this exam work on a team in a medium-sized 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 Windows-based applications by using the Microsoft .NET Framework. Candidates should have a working knowledge of Visual Studio 2005.

Candidates should have at least three to four years of on-the-job experience dedicated to Windows-based application development and should have worked in the following phases of 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-552: UPGRADE: MCAD Skills to MCPD Windows Developer by Using the Microsoft .NET Framework, you complete the requirements for the following certifications:

Microsoft Certified Professional Developer: Windows Developer

Microsoft Certified Technology Specialist: .NET Framework 2.0 Windows Applications

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

Workshop 2541: Core Data Access with Microsoft Visual Studio 2005 (three days)

Workshop 2542: Advanced Data Access with Microsoft Visual Studio 2005 (two days)

Workshop 2546: Core Windows Forms Technologies with Microsoft Visual Studio 2005 (three days)

Workshop 2547: Advanced Windows Forms Technologies with Microsoft Visual Studio 2005 (two days)

Collection 2546: Core Windows Client Development with Microsoft Visual Studio 2005 (18-hour series)

Collection 2547: Advanced Windows Client Development with Microsoft Visual Studio 2005 (12-hour series)

Collection 2541: Core Data Access Development with Microsoft Visual Studio 2005 (18-hour series)

Collection 2542: Advanced Data Access Development with Microsoft Visual Studio 2005 (12-hour series)

Note Collection 2956 is now offered as two collections:

Collection 5160: Core Development with the Microsoft .NET Framework 2.0 Foundation (formerly part of Collection 2956) (16-hour series)

Collection 5161: Advanced Development with the Microsoft .NET Framework 2.0 Foundation (formerly part of Collection 2956) (14-hour series)

MCTS Self-Paced Training Kit (Exam 70-526): Microsoft .NET Framework 2.0 Windows-Based Client Development (ISBN: 9780735623330)

MCTS Self-Paced Training Kit (Exam 70-536): Microsoft .NET Framework 2.0—Application Development Foundation (ISBN: 9780735622777)

MCPD Self-Paced Training Kit (Exam 70-548): Designing and Developing Windows-Based Applications Using the Microsoft .NET Framework (ISBN: 9780735623392)

CLR via C#, Second Edition (ISBN: 9780735621633)

Debugging Microsoft .NET 2.0 Applications (ISBN: 9780735622029)

Programming Microsoft Visual Basic 2005: The Language (ISBN: 9780735621831)

Programming Microsoft Visual C# 2005: The Language (ISBN: 9780735621817)

Programming Microsoft ADO.NET 2.0 Core Reference (ISBN: 9780735622067)

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 rich client applications, targeting the Windows Forms platform using .NET Framework 2.0. Before taking the exam, you should be proficient in the job skills listed in the following table. The table lists Official Microsoft Learning Products that may help you reach competency in the skills being tested in the exam.

KEY:The course provides a general introductory overview of this task. You will need to supplement the course with additional work. = The course provides a general introductory overview of this task. You will need to supplement the course with additional work.    The course includes some material to prepare you for this task. You will need to supplement the course with additional work. = The course includes some material to prepare you for this task. You will need to supplement the course with additional work.    The course includes material to prepare you for this task. = The course includes material to prepare you for this task.
Skills measured by Exam 70-552Workshop 2541Workshop 2542Workshop 2546Workshop 2547 2956E (now Collections 5160 and 5161)
Section 1     
Developing applications that use system types and collections      

Manage data in a .NET Framework application by using .NET Framework 2.0 system types. (Refer System namespace)

Value types

Reference types

Attributes

Generic types

Exception classes

Boxing and UnBoxing

TypeForwardedToAttributes class





The course includes some material to prepare you for this task. You will need to supplement the course with additional work.

Manage a group of associated data in a .NET Framework application by using collections. (Refer System.Collections namespace)

ArrayList class

Collection interfaces

Iterators

Hashtable class

CollectionBase class and ReadOnlyCollectionBase class

DictionaryBase class and DictionaryEntry class

Comparer class

Queue class

SortedList class

BitArray class

Stack class





The course includes some material to prepare you for this task. You will need to supplement the course with additional work.

Improve type safety and application performance in a .NET Framework application by using generic collections. (Refer System.Collections.Generic namespace)

Collection.Generic interfaces

Generic Dictionary

Generic Comparer class and Generic EqualityComparer class

Generic KeyValuePair structure

Generic List class, Generic List.Enumerator structure, and Generic SortedList class

Generic Queue class and Generic Queue.Enumerator structure

Generic SortedDictionary class

Generic LinkedList

Generic Stack class and Generic Stack.Enumerator structure





The course includes some material to prepare you for this task. You will need to supplement the course with additional work.

Implement .NET Framework interfaces to cause components to comply with standard contracts. (Refer System namespace)

IComparable interface

IDisposable interface

IConvertible interface

ICloneable interface

INullableValue interface

IEquatable interface

IFormattable interface





The course includes some material to prepare you for this task. You will need to supplement the course with additional work.

Embedding configuration, diagnostic, management, and installation features into a .NET Framework application      

Embed configuration management functionality into a .NET Framework application. (Refer System.Configuration namespace)

Configuration class and ConfigurationManager class

ConfigurationSettings class, ConfigurationElement class, ConfigurationElementCollection class, and ConfigurationElementProperty class

Implement IConfigurationSectionHandler interface

ConfigurationSection class, ConfigurationSectionCollection class, ConfigurationSectionGroup class, and ConfigurationSectionGroupCollection class

Implement ISettingsProviderService interface

Implement IApplicationSettingsProvider interface

ConfigurationValidationBase class

Implement IConfigurationSystem interface





The course includes some material to prepare you for this task. You will need to supplement the course with additional work.

Debug and trace a .NET Framework application by using the System.Diagnostics namespace.

Debug class and Debugger class

Trace class, CorrelationManager class, TraceListener class, TraceSource class, TraceSwitch class, XmlWriterTraceListener class, DelimitedListTraceListener class, and EventlogTraceListener class

Debugger attributes





The course includes some material to prepare you for this task. You will need to supplement the course with additional work.

Implementing serialization and input/output functionality in a .NET Framework application      

Serialize or deserialize an object or an object graph by using runtime serialization techniques. (Refer System.Runtime.Serialization namespace)

Serialization interfaces

Serialization attributes

SerializationEntry structure and SerializationInfo class

ObjectManager class

Formatter class, FormatterConverter class, and FormatterServices class

StreamingContext structure





The course includes some material to prepare you for this task. You will need to supplement the course with additional work.

Control the serialization of an object into XML format by using the System.Xml.Serialization namespace.

Serialize and deserialize objects into XML format by using the XmlSerializer class.

Control serialization by using serialization attributes.

Implement XML Serialization interfaces to provide custom formatting for XML serialization.

Delegates and event handlers provided by the System.Xml.Serialization namespace





The course includes some material to prepare you for this task. You will need to supplement the course with additional work.

Access files and folders by using the File System classes. (Refer System.IO namespace)

File class and FileInfo class

Directory class and DirectoryInfo class

DriveInfo class and DriveType enumeration

FileSystemInfo class and FileSystemWatcher class

Path class

ErrorEventArgs class and ErrorEventHandler delegate

RenamedEventArgs class and RenamedEventHandler delegate





The course includes some material to prepare you for this task. You will need to supplement the course with additional work.

Compress or decompress stream information in a .NET Framework application (refer System.IO.Compression namespace), and improve the security of application data by using isolated storage. (Refer System.IO.IsolatedStorage namespace)

IsolatedStorageFile class

IsolatedStorageFileStream class

DeflateStream class

GZipStream class





The course includes some material to prepare you for this task. You will need to supplement the course with additional work.

Improving the security of .NET Framework applications by using the .NET Framework 2.0 security features      

Implement access control by using the System.Security.AccessControl classes.

DirectorySecurity class, FileSecurity class, FileSystemSecurity class, and RegistrySecurity class

AccessRule class

AuthorizationRule class and AuthorizationRuleCollection class

CommonAce class, CommonAcl class, CompoundAce class, GeneralAce class, and GeneralAcl class

AuditRule class

MutexSecurity class, ObjectSecurity class, and SemaphoreSecurity class





The course includes some material to prepare you for this task. You will need to supplement the course with additional work.

Implement a custom authentication scheme by using the System.Security.Authentication classes. (Refer System.Security.Authentication namespace)

Authentication algorithms and SSL protocols





The course includes some material to prepare you for this task. You will need to supplement the course with additional work.

Encrypt, decrypt, and hash data by using the System.Security.Cryptography classes. (Refer System.Security.Cryptography namespace)

DES class and DESCryptoServiceProvider class

HashAlgorithm class

DSA class and DSACryptoServiceProvider class

SHA1 class and SHA1CryptoServiceProvider class

TripleDES and TripleDESCryptoServiceProvider class

MD5 class and MD5CryptoServiceProvider class

RSA class and RSACryptoServiceProvider class

RandomNumberGenerator class

CryptoStream class

CryptoConfig class

RC2 class and RC2CryptoServiceProvider class

AssymetricAlgorithm class

ProtectedData class and ProtectedMemory class

RijndaelManaged class and RijndaelManagedTransform class

CspParameters class

CryptoAPITransform class

Hash-based Message Authentication Code (HMAC)





The course includes some material to prepare you for this task. You will need to supplement the course with additional work.

Control permissions for resources by using the System.Security.Permission classes. (Refer System.Security.Permission namespace)

SecurityPermission class

PrincipalPermission class

FileIOPermission class

StrongNameIdentityPermission class

UIPermission class

UrlIdentityPermission class

PublisherIdentityPermission class

GacIdentityPermission class

FileDialogPermission class

DataProtectionPermission class

EnvironmentPermission class

IUnrestrictedPermission interface

RegistryPermission class

IsolatedStorageFilePermission class

KeyContainerPermission class

ReflectionPermission class

StorePermission class

SiteIdentityPermission class





The course includes some material to prepare you for this task. You will need to supplement the course with additional work.

Control code privileges by using System.Security.Policy classes. (Refer System.Security.Policy namespace)

ApplicationSecurityInfo class and ApplicationSecurityManager class

ApplicationTrust class and ApplicationTrustCollection class

Evidence class and PermissionRequestEvidence class

CodeGroup class, FileCodeGroup class, FirstMatchCodeGroup class, NetCodeGroup class, and UnionCodeGroup class

Condition classes

PolicyLevel class and PolicyStatement class

IApplicationTrustManager interface, IMembershipCondition interface, and IIdentityPermissionFactory interface





The course includes some material to prepare you for this task. You will need to supplement the course with additional work.

Access and modify identity information by using the System.Security.Principal classes. (Refer System.Security.Principal namespace)

GenericIdentity class and GenericPrincipal class

WindowsIdentity class and WindowsPrincipal class

NTAccount class and SecurityIdentifier class

IIdentity interface and IPrincipal interface

WindowsImpersonationContext class

IdentityReference class and IdentityReferenceCollection class





The course includes some material to prepare you for this task. You will need to supplement the course with additional work.

Implementing interoperability, reflection, and mailing functionality in a .NET Framework application      

Send electronic mail to a Simple Mail Transfer Protocol (SMTP) server for delivery from a .NET Framework application. (Refer System.Net.Mail namespace)

MailMessage class

MailAddress class and MailAddressCollection class

SmtpClient class, SmtpPermission class, and SmtpPermissionAttribute class

Attachment class, AttachmentBase class, and AttachmentCollection class

SmtpException class, SmtpFailedReceipientException class, and SmtpFailedReceipientsException class

SendCompletedEventHandler delegate

LinkedResource class and LinkedResourceCollection class

AlternateView class and AlternateViewCollection class





The course includes some material to prepare you for this task. You will need to supplement the course with additional work.

Implementing globalization, drawing, and text manipulation functionality in a .NET Framework application      

Enhance the user interface of a .NET Framework application by using the System.Drawing namespace.

Enhance the user interface of a .NET Framework application by using brushes, pens, colors, and fonts.

Enhance the user interface of a .NET Framework application by using graphics, images, bitmaps, and icons.

Enhance the user interface of a .NET Framework application by using shapes and sizes.





The course includes some material to prepare you for this task. You will need to supplement the course with additional work.

Section 2      
Creating a UI for a Windows Forms Application by Using Standard Controls      

Manage control layout on a Windows Form.

Group and arrange controls by using the Panel control, GroupBox control, TabControl control, FlowLayoutPanel control, and TableLayoutPanel control.

Use the SplitContainer control to create dynamic container areas.



The course includes material to prepare you for this task.



Add and configure a Windows Forms control.

Use the integrated development environment (IDE) to add a control to a Windows Form or other container control of a project at design time.

Add controls to a Windows Form at run time.

Configure controls on a Windows Form at design time to optimize the UI.

Modify control properties.

Configure controls on a Windows Form at run time to ensure that the UI complies with best practices.

Create and configure command controls on a Windows Form.

Create and configure text edit controls on a Windows Form.

Create and configure text display controls on a Windows Form.

Use the LinkLabel control to add Web-style links to Windows Forms applications.

Provide a list of options on a Windows Form by using a ListBox control, a ComboBox control, or a CheckedListBox control.

Configure the layout and functionality of a Windows Form to display a list of items.

Implement value-setting controls on a Windows Form.

Configure a WebBrowser control.

Add and configure date-setting controls on a Windows Form.

Display images by using Windows Forms controls.

Configure the NotifyIcon component.

Create access keys for Windows Forms controls.



The course includes some material to prepare you for this task. You will need to supplement the course with additional work.

The course provides a general introductory overview of this task. You will need to supplement the course with additional work.


Create and configure menus.

Create and configure a MenuStrip component on a Windows Form.

Change the displayed menu structure programmatically.

Create and configure the ContextMenuStrip component on a Windows Form.



The course includes some material to prepare you for this task. You will need to supplement the course with additional work.

The course provides a general introductory overview of this task. You will need to supplement the course with additional work.


Integrating Data in a Windows Forms Application      

Implement data-bound controls.

Use the DataGridView control to display and update the tabular data contained in a data source.

Use a simple data-bound control to display a single data element on a Windows Form.

Implement complex data binding to integrate data from multiple sources.

Navigate forward and backward through records in a DataSet in Windows Forms.

Define a data source by using a DataConnector component.

Create data forms by using the Data Form Wizard.



The course includes some material to prepare you for this task. You will need to supplement the course with additional work.

The course provides a general introductory overview of this task. You will need to supplement the course with additional work.


Manage connections and transactions.

Configure a connection to a database by using the Connection Wizard.

Configure a connection to a database by using Server Explorer.

Configure a connection to a database by using the Connection class.

Connect to a database by using specific database Connection objects.

Enumerate through instances of Microsoft SQL Server.

Open an ADO.NET connection to a database.

Close an ADO.NET connection to a database by using the Close method of the Connection object.

Protect access to data source connection details.

Create a connection designed for reuse in a connection pool.

Control a connection pool by configuring ConnectionString values based on database type.

Use the Connection events to detect database information.

Handle exceptions when connecting to a database.

Perform transactions by using the Transaction object.

The course includes material to prepare you for this task.





Read, write, and validate XML by using the XmlReader class and the XmlWriter class.

Read XML data by using the XmlReader class.

Read all XML element and attribute content.

Read specific element and attribute content.

Read XML data by using the XmlTextReader class.

Read node trees by using the XmlNodeReader class.

Validate XML data by using the XmlValidatingReader class.

Write XML data by using the XmlWriter class.

The course includes material to prepare you for this task.





Enhancing Usability      

Create, configure, and customize user assistance controls and components.

Configure the PropertyGrid component.

Configure the ProgressBar control to indicate progress graphically.

Display status information by using the StatusStrip control.

Configure the ToolTip component.

Configure the ErrorProvider component.

Configure the HelpProvider component.

Play system sounds and audio files by using the SoundPlayer.

Configure the Timer component to raise an event at regular intervals.

Enable scrolling by using the HScrollBar and VScrollBar controls.



The course includes some material to prepare you for this task. You will need to supplement the course with additional work.

The course provides a general introductory overview of this task. You will need to supplement the course with additional work.


Implementing Asynchronous Programming Techniques to Improve the User Experience      

Manage a background process by using the BackgroundWorker component.

Run a background process by using the BackgroundWorker component.

Announce the completion of a background process by using the BackgroundWorker component.

Cancel a background process by using the BackgroundWorker component.

Report the progress of a background process by using the BackgroundWorker component.

Request the status of a background process by using the BackgroundWorker component.



The course includes material to prepare you for this task.



Configuring and Deploying Applications      

Configure the installation of a Windows Forms application by using ClickOnce technology.

Install a Windows Forms application on a client computer by using ClickOnce deployment.

Install a Windows Forms application from a server by using ClickOnce deployment.

Configure the required permissions of an application by using ClickOnce deployment.



The course includes some material to prepare you for this task. You will need to supplement the course with additional work.



Section 3      
Envisioning and Designing an Application      

Evaluate the technical feasibility of an application design concept.

Evaluate the proof of concept.

Recommend the best technologies for the features and goals of the application.

Weigh implementation considerations.

Investigate existing solutions for similar business problems.






Create a proof-of-concept prototype.

Evaluate the risks associated with the proposed technology or implementation.

Validate that the proposed technology can be used in the application.

Demonstrate to stakeholders that the proposed solution will address their needs.






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 UML diagrams.

Suggest component type and layer.






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 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 security.

Evaluate the physical design for recoverability.

Evaluate the physical design for data integrity.






Designing and Developing a User Interface      

Choose an appropriate layout for the visual interface.

Decide the content flow within the application.

Evaluate user navigation needs.

Identify the goal of the UI.

Ensure the congruency and consistency of the user experience throughout the application.

Choose techniques to control the layout.






Evaluate a strategy for implementing a common layout throughout the UI.

Suggest an applicable UI standard based on the application specification. Considerations include MDI, SDI, control grouping, and so on.






Choose an appropriate control based on design specifications.

Evaluate the type of data that must be captured or displayed.

Evaluate available controls. Considerations include standard .NET Framework controls and custom, internally developed, and third-party controls.

Evaluate the manner in which available controls are implemented in previous and ongoing projects or applications.

Evaluate the user demographic.

Evaluate the user environment.






Choose an appropriate data validation method at the UI layer.

Choose a validation method based on the data type provided.

Decide how to report the feedback. Considerations include callbacks, exceptions, and writing to an event log.

Identify the source of invalid data.

Identify the cause of an invalid entry.

Evaluate whether invalid data can be prevented.

Evaluate whether an exception must be thrown.

Evaluate whether an exception must be logged.

Evaluate whether visual feedback, such as a message box or color, is required.






Choose appropriate user assistance and application status feedback techniques.

Design a user assistance mechanism.

Choose an appropriate application status feedback technique based on available control types.

Choose an appropriate application status feedback technique to support accessibility.

Design an application status feedback mechanism.






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 a 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 multithreaded.

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






Develop an exception handling mechanism.

Decide when it is appropriate to raise an exception.

Decide how a component will handle exceptions. Considerations include catching and throwing a new exception; catching, wrapping, and throwing the wrapped exception; catching and terminating, and so on.






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.






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 based on the requirements.






Choose an appropriate exception handling mechanism.

Evaluate the current exception handling mechanism.

Design a new exception handling technique.






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 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 upon severity and priority.






Evaluate the application configuration architecture.

Decide which configuration attributes to store.

Choose the physical storage location for the configuration attributes.

Decide in which format to store the configuration attributes.






Testing and Stabilizing an Application      

Perform a code review.






Evaluate the testing strategy. </