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
- http://msdn.microsoft.com/en-us/library/t9x04ed2(v=vs.80).aspx
- http://msdn.microsoft.com/en-us/library/system.web.caching.sqlcachedependency.aspx
- http://msdn.microsoft.com/en-us/library/9dz445ks(v=vs.110).aspx
- http://msdn.microsoft.com/en-US/library/wd2x83zk(v=vs.80).aspx
Implement transactions
###Manage transactions by using the API from System.Transactions namespace
- http://msdn.microsoft.com/en-us/library/a90c30fy.aspx
- http://msdn.microsoft.com/en-us/library/ms172152.aspx
###Implement distributed transactions
- http://www.c-sharpcorner.com/UploadFile/mosessaur/TransactionScope04142006103850AM/TransactionScope.aspx
- http://msdn.microsoft.com/en-us/library/system.transactions.transactionscopeoption.aspx
###Specify transaction isolation level
- http://msdn.microsoft.com/en-us/library/system.transactions.isolationlevel.aspx
- http://msdn.microsoft.com/en-us/library/ms173763.aspx
Implement data storage in Windows Azure
###Access data storage in Windows Azure
- http://www.windowsazure.com/en-us/develop/net/how-to-guides/blob-storage/
- http://www.windowsazure.com/en-us/develop/net/how-to-guides/table-services/
- http://www.windowsazure.com/en-us/develop/net/how-to-guides/queue-service/
- http://www.windowsazure.com/en-us/develop/net/how-to-guides/sql-database/
###Choose data storage mechanism in Windows Azure (blobs, tables, queues, SQL Database)
###Distribute data by using the Content delivery network (CDN)
- http://www.windowsazure.com/en-us/develop/net/common-tasks/cdn/
- http://msdn.microsoft.com/en-us/library/windowsazure/ff919703.aspx
###Handle exceptions by using retries (SQL Database)
- http://social.technet.microsoft.com/wiki/contents/articles/4235.retry-logic-for-transient-failures-in-windows-azure-sql-database.aspx
- http://msdn.microsoft.com/en-us/library/microsoft.practices.transientfaulthandling.retrypolicy_members.aspx
- http://msdn.microsoft.com/en-us/library/windowsazure/microsoft.windowsazure.storage.retrypolicies
###Manage Windows Azure Caching
Create and implement a WCF Data Services service
- http://msdn.microsoft.com/en-us/data/odata.aspx
- http://msdn.microsoft.com/en-us/library/cc668794.aspx
- http://msdn.microsoft.com/en-us/library/cc668792.aspx
- http://msdn.microsoft.com/en-us/library/dd728286.aspx
###Address resources
###Implement filtering/Create a query expression
- http://msdn.microsoft.com/en-us/library/dd673933.aspx
- http://www.odata.org/documentation/uri-conventions
###Access payload formats (including JSON)
###Use data service interceptors and service operators
- http://msdn.microsoft.com/en-us/library/dd744842.aspx
- http://msdn.microsoft.com/en-us/library/dd744837.aspx
- http://msdn.microsoft.com/en-us/library/cc668788.aspx
- http://msdn.microsoft.com/en-us/library/dd744841.aspx
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
- http://www.tizag.com/xmlTutorial/xslttutorial.php
- http://www.w3schools.com/xsl/xsl_w3celementref.asp
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
- http://msdn.microsoft.com/en-us/library/bb387145.aspx
- http://msdn.microsoft.com/en-us/library/bb738573.aspx
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
- http://msdn.microsoft.com/en-us/library/bb738533.aspx
- http://msdn.microsoft.com/en-us/library/bb738561.aspx
###Perform synchronous and asynchronous operations
- http://msdn.microsoft.com/en-us/library/ca56w9se.aspx
- http://msdn.microsoft.com/en-us/library/1a674khd.aspx
- http://msdn.microsoft.com/en-us/library/x76a3b72.aspx
- http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.endexecutenonquery.aspx
- http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.endexecutereader.aspx
- http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.endexecutexmlreader.aspx
###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
- http://www.codeproject.com/Articles/361579/A-Beginners-Tutorial-for-Understanding-ADO-NET
- http://www.agilechai.com/content/archive/2007/06/09/how-to-use-sqldatareader-plus-source-code.aspx
###Perform synchronous and asynchronous operations
- http://msdn.microsoft.com/en-us/library/zw97wx20.aspx
- http://msdn.microsoft.com/en-us/library/ca56w9se.aspx
- http://msdn.microsoft.com/en-us/library/1a674khd.aspx
- http://msdn.microsoft.com/en-us/library/x76a3b72.aspx
###Manage transactions (API)
Create an Entity Framework data model
###Structure the data model using Table per type, table per class, table per hierarchy
- http://weblogs.asp.net/manavi/archive/2010/12/24/inheritance-mapping-strategies-with-entity-framework-code-first-ctp5-part-1-table-per-hierarchy-tph.aspx
- http://weblogs.asp.net/manavi/archive/2010/12/28/inheritance-mapping-strategies-with-entity-framework-code-first-ctp5-part-2-table-per-type-tpt.aspx
- http://weblogs.asp.net/manavi/archive/2011/01/03/inheritance-mapping-strategies-with-entity-framework-code-first-ctp5-part-3-table-per-concrete-type-tpc-and-choosing-strategy-guidelines.aspx
###Choose and implement an approach to manage a data model (code first vs. model first vs. database first)
- http://msdn.microsoft.com/en-ca/data/jj193542
- http://msdn.microsoft.com/en-ca/data/jj200620
- http://msdn.microsoft.com/en-ca/data/jj205424
- http://msdn.microsoft.com/en-ca/data/jj206878
###Implement POCO objects
###Describe a data model by using conceptual schema definitions, storage schema definition, and mapping language (CSDL, SSDL, MSL)
- http://msdn.microsoft.com/en-us/data/jj652004
- http://msdn.microsoft.com/en-us/data/jj652016
- http://msdn.microsoft.com/en-us/data/jj652027
Designing and Implementing WCF Services (19%)
Create a WCF service
###Create contracts (service, data, message, callback, and fault)
- http://msdn.microsoft.com/en-us/library/ms733070.aspx
- http://msdn.microsoft.com/en-us/library/ee960161.aspx
- http://msdn.microsoft.com/en-us/library/ms733127.aspx
- http://stackoverflow.com/questions/4731987/datacontract-and-servicecontract-difference
- http://msdn.microsoft.com/en-us/library/ee960168.aspx
- http://msdn.microsoft.com/en-us/library/ms730255.aspx
- http://msdn.microsoft.com/en-us/library/ms731064.aspx
- http://msdn.microsoft.com/en-us/library/ms752208.aspx
###Implement message inspectors
- http://msdn.microsoft.com/en-us/library/aa717047.aspx
- http://blogs.msdn.com/b/carlosfigueira/archive/2011/04/19/wcf-extensibility-message-inspectors.aspx
###Implement asynchronous operations in the service
- http://msdn.microsoft.com/en-us/library/ms734701.aspx
- http://msdn.microsoft.com/en-us/library/ms731177.aspx
- http://msdn.microsoft.com/en-us/library/ms730059.aspx
Configure WCF services by using configuration settings
###Configure service behaviors
- http://msdn.microsoft.com/en-us/library/ms730137.aspx
- http://msdn.microsoft.com/en-us/magazine/cc163302.aspx
###Configure service endpoints
###Configure bindings
- http://msdn.microsoft.com/en-us/magazine/cc163394.aspx
- http://msdn.microsoft.com/en-us/library/ms734662.aspx
- http://msdn.microsoft.com/en-us/library/ms733051.aspx
- http://msdn.microsoft.com/en-us/library/ms731144.aspx
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
- http://msdn.microsoft.com/en-us/library/ms731833.aspx
- http://msdn.microsoft.com/en-us/library/ms731862.aspx
###Specify a service contract
###Expose service metadata (XSDs, WSDL and metadata exchange endpoint)
###WCF routing and discovery features
- http://msdn.microsoft.com/en-us/library/ee517422.aspx
- http://weblogs.asp.net/gsusx/archive/2009/02/13/using-ws-discovery-in-wcf-4-0.aspx
- http://msdn.microsoft.com/en-us/library/dd456791.aspx
Secure a WCF service
###Implement message level security
- http://msdn.microsoft.com/en-us/library/ms733137.aspx
- http://msdn.microsoft.com/en-us/library/ff648863.aspx
###Implement transport level security
###Implement certificates
- http://msdn.microsoft.com/en-us/library/ms731899.aspx
- http://msdn.microsoft.com/en-us/library/ff648360.aspx
- http://msdn.microsoft.com/en-us/library/ff650785.aspx
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)
- http://stackoverflow.com/a/7560192/1068266
- http://msdn.microsoft.com/en-us/library/ms731138.aspx
- http://msdn.microsoft.com/en-us/library/ee816862.aspx
###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
- http://msdn.microsoft.com/en-us/library/windowsazure/hh367519.aspx
- http://msdn.microsoft.com/en-us/library/windowsazure/jj860549.aspx
Implement messaging patterns
###Implement one way, request/reply, streaming, and duplex communication
- http://msdn.microsoft.com/en-us/library/ee960162.aspx
- http://msdn.microsoft.com/en-us/library/ms733742.aspx
- http://msdn.microsoft.com/en-us/library/ms789010.aspx
###Implement Windows Azure Service Bus and Windows Azure Queues
- http://www.windowsazure.com/en-us/manage/services/service-bus/
- http://www.windowsazure.com/en-us/develop/net/how-to-guides/service-bus-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
- http://www.asp.net/web-api/overview/security/basic-authentication
- http://www.asp.net/web-api/overview/security/working-with-ssl-in-web-api
###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.)
- http://www.levibotelho.com/?p=172
- http://stackoverflow.com/q/10679214/1068266
- http://msdn.microsoft.com/en-us/library/hh944339%28v=vs.108%29.aspx
- http://stackoverflow.com/q/6117101/1068266
Deploying Web Applications and Services (19%)
Design a deployment strategy
###Create an IIS install package
- http://weblogs.asp.net/scottgu/archive/2010/09/13/automating-deployment-with-microsoft-web-deploy.aspx
- http://msdn.microsoft.com/en-us/library/dd465323.aspx
###Deploy to web farms
- http://weblogs.asp.net/scottgu/archive/2010/09/08/introducing-the-microsoft-web-farm-framework.aspx
- http://msdn.microsoft.com/en-us/library/ff731049%28v=azure.10%29.aspx
- http://raquila.com/software/ms-deploy-basics/
###Deploy a web application by using XCopy
- http://help.infragistics.com/Help/NetAdvantage/WinForms/2012.2/CLR4.0/html/Win_Using_XCOPY_Deployment.html
- http://msdn.microsoft.com/en-us/library/aa302347.aspx
###Automate a deployment from TFS or Build Server
- http://codingcraft.wordpress.com/2012/02/18/automated-deployment-with-tfs/
- http://msdn.microsoft.com/en-us/library/vstudio/ms181709.aspx
Choose a deployment strategy for a Windows Azure web application
###Perform an in-place upgrade and VIP swap
###Configure an upgrade domain
- http://msdn.microsoft.com/en-us/library/windowsazure/hh472157.aspx
- http://msdn.microsoft.com/en-us/library/windowsazure/ee758711.aspx
###Create and configure input and internal endpoints
- http://msdn.microsoft.com/en-us/library/windowsazure/hh180158.aspx
- http://msdn.microsoft.com/en-us/library/windowsazure/gg433020.aspx
- http://msdn.microsoft.com/en-us/library/windowsazure/gg432980.aspx
###Specify operating system configuration
- http://msdn.microsoft.com/en-us/library/windowsazure/ee758710.aspx
- http://www.windowsazure.com/en-us/manage/services/cloud-services/how-to-configure-a-cloud-service/
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
- http://msdn.microsoft.com/en-us/library/xc31ft41.aspx
- http://msdn.microsoft.com/en-us/library/xwb8f617.aspx
###Deploy assemblies to the global assembly cache
- http://msdn.microsoft.com/en-us/library/dkkx7f79.aspx
- http://msdn.microsoft.com/en-us/library/ex0ss12c.aspx
###Implement assembly versioning
###Create an assembly manifest
- http://msdn.microsoft.com/en-us/library/1w45z383.aspx
- http://msdn.microsoft.com/en-us/library/4w8c1y2s.aspx
###Configure assembly binding redirects (for example, from MVC2 to MVC3)