The Great Big Microsoft Certification 70-487 Study Guide


Update: I passed the exam, so this guide isn’t completely useless :). I’ve also posted two files that I used to help me better prepare for the exam. You can find them here.


I’ve been fairly busy lately studying for the Microsoft Certification 70-487 which I plan to pass in the near future (hence the lack of recent blog posts). In the course of studying I have compiled a list of links which provide information on (nearly) all the topics which, according to the Microsoft Learning website, may appear on the test.

Before we get to the list, a quick disclaimer: I have not yet taken the test, and as such cannot make any guarantee as to the usefulness of these links. I am deliberately posting this before taking the exam so that in no way this can constitute a violation of Microsoft Learning’s NDA.

So, with that taken care of, here are the links!


Accessing Data (24%)

Choose data access technologies

###Choose a technology (ADO.NET, Entity Framework, WCF Data Services) based on application requirements

Implement caching

###Cache static data, apply cache policy (including expirations)

###Use CacheDependency to refresh cache data

###Query notifications

Implement transactions

###Manage transactions by using the API from System.Transactions namespace

###Implement distributed transactions

###Specify transaction isolation level

Implement data storage in Windows Azure

###Access data storage in Windows Azure

###Choose data storage mechanism in Windows Azure (blobs, tables, queues, SQL Database)

###Distribute data by using the Content delivery network (CDN)

###Handle exceptions by using retries (SQL Database)

###Manage Windows Azure Caching

Create and implement a WCF Data Services service

###Address resources

###Implement filtering/Create a query expression

###Access payload formats (including JSON)

###Use data service interceptors and service operators

Manipulate XML data structures

###Read, filter, create, modify XML data structures

###Manipulate XML data by using XMLReader, XMLWriter, XMLDocument, XPath, LINQ to XML

###Transform XML by using XSLT transformations

Querying and Manipulating Data by Using the Entity Framework (20%)

Query and manipulate data by using the Entity Framework.

###Query, update, and delete data by using DbContext

###Build a query that uses deferred execution

###Implement lazy loading and eager loading

###Create and run compiled queries

###Query data by using Entity SQL

Query and manipulate data by using Data Provider for Entity Framework

###Query and manipulate data by using Connection, DataReader, Command from the System.Data.EntityClient namespace

###Perform synchronous and asynchronous operations

###Manage transactions (API)

Query data by using LINQ to Entities.

###Query data by using LINQ operators (for example, project, skip, aggregate, filter, and join)

###Log queries

###Implement query boundaries (IQueryable vs. IEnumerable)

Query and manipulate data by using ADO.NET

###Query and manipulate data by using Connection, DataReader, Command, DataAdapter, DataSet

###Perform synchronous and asynchronous operations

###Manage transactions (API)

Create an Entity Framework data model

###Structure the data model using Table per type, table per class, table per hierarchy

###Choose and implement an approach to manage a data model (code first vs. model first vs. database first)

###Implement POCO objects

###Describe a data model by using conceptual schema definitions, storage schema definition, and mapping language (CSDL, SSDL, MSL)

Designing and Implementing WCF Services (19%)

Create a WCF service

###Create contracts (service, data, message, callback, and fault)

###Implement message inspectors

###Implement asynchronous operations in the service

Configure WCF services by using configuration settings

###Configure service behaviors

###Configure service endpoints

###Configure bindings

Specify a Service Contract

Expose service metadata (XSDs, WSDL and metadata exchange endpoint)

Configure WCF services by using the API

###Configure service behaviors

###Configure service endpoints

###Configure bindings

###Specify a service contract

###Expose service metadata (XSDs, WSDL and metadata exchange endpoint)

###WCF routing and discovery features

Secure a WCF service

###Implement message level security

###Implement transport level security

###Implement certificates

Consume WCF services

###Generate proxies by using SvcUtil;

###Generate proxies by creating a service reference;

###Create and implement channel factories

Version a WCF service

###This objective may include but is not limited to: Version different types of contracts (message, service, data)

###Configure address, binding, and routing service versioning

Create and configure a WCF service on Windows Azure

###Create and configure bindings for WCF services (Azure SDK– extensions to WCF)

###Relay bindings to Azure using service bus endpoints

###Integrate with the Azure service bus relay

Implement messaging patterns

###Implement one way, request/reply, streaming, and duplex communication

###Implement Windows Azure Service Bus and Windows Azure Queues

Host and manage services

###Manage services concurrency (single, multiple, reentrant)

###Create service hosts

###Choose a hosting mechanism

###Choose an instancing mode (per call, per session, singleton)

###Activate and manage a service by using AppFabric

###Implement transactional services

###Host services in an Windows Azure worker role

Creating and Consuming Web API-based services (18%)

Design a Web API

###Define HTTP resources with HTTP actions

###Plan appropriate URI space, and map URI space using routing

###Choose appropriate HTTP method (get, put, post, delete) to meet requirements

###Choose appropriate format (Web API formats) for responses to meet requirements

###Plan when to make HTTP actions asynchronous

Implement a Web API

###Accept data in JSON format (in JavaScript, in an AJAX callback)

###Use content negotiation to deliver different data formats to clients

###Define actions and parameters to handle data binding

###Use HttpMessageHandler to process client requests and server responses

###Implement dependency injection, along with the dependency resolver, to create more flexible applications

###Implement action filters and exception filters to manage controller execution

###Implement asynchronous and synchronous actions

###Implement streaming actions

Secure a Web API

###Implement HTTPBasic authentication over SSL

###Implement Windows Auth

###Enable cross-domain requests

###Prevent cross-site request forgery (XSRF)

###Implement, and extend, authorization filters to control access to the application

Host and manage Web API

###Self-host a Web API in your own process (a Windows service)

###Host Web API in an ASP.NET app

###Host services in a Windows Azure worker role

###Restricting message size

###Configure the host server for streaming

Consume Web API web services

###Consume Web API services by using HttpClient synchronously and asynchronously

###Send and receive requests in different formats (JSON/HTML/etc.)

Deploying Web Applications and Services (19%)

Design a deployment strategy

###Create an IIS install package

###Deploy to web farms

###Deploy a web application by using XCopy

###Automate a deployment from TFS or Build Server

Choose a deployment strategy for a Windows Azure web application

###Perform an in-place upgrade and VIP swap

###Configure an upgrade domain

###Create and configure input and internal endpoints

###Specify operating system configuration

Configure a web application for deployment

###Switch from production/release mode to debug mode

###Use SetParameters to set up an IIS app pool, set permissions and passwords

###Configure WCF endpoints, bindings, and behaviors

###Transform web.config by using XSLT (for example, across development, test, and production/release environments)

###Configure Azure configuration settings

Manage packages by using NuGet

###Create and configure a NuGet package

###Install and update an existing NuGet package

###Connect to a local repository cache for NuGet, set up your own package repository

Create, configure, and publish a web package

###Create an IIS InstallPackage

###Configure the build process to output a web package

###Apply pre- and post- condition actions to ensure that transformations are correctly applied

###Include appropriate assets (web content, certificates)

Share assemblies between multiple applications and servers

###Prepare the environment for use of assemblies across multiple servers (interning)

###Sign assemblies by using a strong name

###Deploy assemblies to the global assembly cache

###Implement assembly versioning

###Create an assembly manifest

###Configure assembly binding redirects (for example, from MVC2 to MVC3)