Study Notes for 70-487 - Developing Windows Azure and Web Services

After taking 70-486 - Developing ASP.NET MVC 4 Web Applications couple of weeks ago, I decided to take the final exam  70-487 - Developing Windows Azure and Web Services last week to finish my MCSD certification.

Adnan Masood Microsoft Certified Solution Developer 2

Following are the set of notes I used along with MCT material which may help those preparing for the exam. The topic-by-topic breakdown is courtesy of a colleague and friend Frank Liao.

Accessing Data (24%)

  • Choose data access technologies

    • This objective may include but is not limited to: Choose a technology (ADO.NET [link], Entity Framework [link], WCF Data Services [link link]) based on application requirements

  • Implement caching [link link]

    • This objective may include but is not limited to: Cache static data [link], apply cache policy (including expirations) [link]; Use CacheDependency to refresh cache data [link link]; query notifications [link]

  • Implement transactions [link] [link link link link link link]

    • This objective may include but is not limited to: manage transactions by using the API from System.Transactions namespace; implement distributed transactions; specify transaction isolation level [link]

  • Implement data storage in Windows Azure [link link link link link link]

    • This objective may include but is not limited to: access data storage in Windows Azure; Choose data storage mechanism in Windows Azure (blobs [link], tables [link], queues [link], SQL Database [link link]); Distribute data by using the Content delivery network (CDN) [link]; Handle exceptions by using retries (SQL Database) [link]; manage Windows Azure Caching [link link]

  • Create and implement a WCF Data Services service [link]

    • This objective may include but is not limited to: Address resources [link]; implement filtering [link]; create a query expression [link]; access payload formats (including JSON) [link]; use data service interceptors [link link] and service operators [link]

  • Manipulate XML data structures [link link link link link link link]

    • This objective may include but is not limited to: Read, filter, create, modify XML data structures; Manipulate XML data by using XMLReader [link], XMLWriter [link], XMLDocument [link], XPath [link], LINQ to XML [link]; transform XML by using XSLT transformations [link]

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

  • Query and manipulate data by using the Entity Framework.

    • This objective may include but is not limited to: Query [link], update, and delete data by using DbContext [link]; build a query that uses deferred execution [link]; implement lazy loading and eager loading [link link link]; create and run compiled queries [link link]; query data by using Entity SQL [link]

  • Query and manipulate data by using Data Provider for Entity Framework [link]

    • This objective may include but is not limited to: Query and manipulate data by using Connection, DataReader, Command from the System.Data.EntityClient namespace [link link link]; perform synchronous and asynchronous operations [link link]; manage transactions (API) [link link]

  • Query data by using LINQ to Entities. [link]

    • This objective may include but is not limited to: query data by using LINQ operators (for example, project, skip, aggregate, filter, and join) [link link link link]; log queries [link link]; implement query boundaries (IQueryable vs. IEnumerable) [link link link]

  • Query and manipulate data by using ADO.NET [link]

    • This objective may include but is not limited to: Query and manipulate data by using Connection, DataReader, Command, DataAdapter, DataSet [link link link]; Perform synchronous and asynchronous operations [link link]; Manage transactions (API) [link]

  • Create an Entity Framework data model. [link link]

    • This objective may include but is not limited to: Structure the data model using Table per type [link link], table per class, table per hierarchy [link link]; Choose and implement an approach to manage a data model (code first [link link] vs. model first [link] vs. database first [link]); implement POCO objects [link link link]; Describe a data model by using conceptual schema definitions, storage schema definition, and mapping language (CSDL, SSDL, MSL) [link link]

Designing and Implementing WCF Services (19%)

  • Create a WCF service

    • This objective may include but is not limited to: Create contracts (service [link], data [link], message [link], callback [link link], and fault [link]); implement message inspectors [link]; implement asynchronous operations in the service [link]

  • Configure WCF services by using configuration settings [link link link]

    • This objective may include but is not limited to: Configure service behaviors; Configure service endpoints; configure binding; specify a service contract; expose service metadata (XSDs, WSDL, and metadata exchange endpoint)

  • Configure WCF services by using the API [link link link]

    • This objective may include but is not limited to: Configure service behaviors [link]; Configure service endpoints [link link]; configure binding [link]; specify a service contract; Expose service metadata (XSDs, WSDL, and metadata exchange) [link]; WCF routing [link] and discovery [link] features

  • Secure a WCF service

    • This objective may include but is not limited to: Implement message level security [link], implement transport level security [link]; implement certificates [link link]

  • Consume WCF services

    • This objective may include but is not limited to: Generate proxies by using SvcUtil [link]; generate proxies by creating a service reference [link]; create and implement channel factories [link]

  • Version a WCF service [link link link link]

    • This objective may include but is not limited to: Version different types of contracts (message, service, data); configure address, binding, and routing [link] service versioning

  • Create and configure a WCF service on Windows Azure [link link link link link link]

    • This objective may include but is not limited to: Create and configure bindings for WCF services (Azure SDK-- extensions to WCF); Relay bindings to Azure using service bus endpoints [link link link]; integrate with the Azure service bus relay [link]

  • Implement messaging patterns [link link]

    • This objective may include but is not limited to: Implement one way [link], request/reply [link], streaming [link], and duplex communication [link]; implement Windows Azure Service Bus [link] and Windows Azure Queues [link] [link link link]

  • Host and manage services

    • This objective may include but is not limited to: Manage services concurrency (single, multiple, reentrant) [link link link]; Create service hosts; Choose a hosting mechanism [link link]; choose an instancing mode (per call, per session, singleton) [link link]; activate and manage a service by using AppFabric [link link link]; implement transactional services [link link]; host services in an Windows Azure worker role [link]

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

  • Design a Web API [link link link link link]

    • This objective may include but is not limited to: 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 [link link]

    • This objective may include but is not limited to: accept data in JSON format (in JavaScript, in an AJAX callback) [link]; use content negotiation to deliver different data formats to clients [link]; define actions and parameters to handle data binding [link]; use HttpMessageHandler to process client requests and server responses [link]; implement dependency injection, along with the dependency resolver, to create more flexible applications [link]; implement action filters and exception filters to manage controller execution [link]; implement asynchronous and synchronous actions; implement streaming actions

  • Secure a Web API [link]

    • This objective may include but is not limited to: implement HTTPBasic authentication over SSL; implement Windows Auth; enable cross-domain requests [link link]; prevent cross-site request forgery (XSRF); implement, and extend, authorization filters to control access to the application [link]

  • Host and manage Web API [link]

    • This objective may include but is not limited to: host Web API in an ASP.NET app [link link]; self-host a Web API in your own process (a Windows service) [link link]; host services in a Windows Azure worker role [link link]; restricting message size [link]; configure the host server for streaming [link]

  • Consume Web API web services

    • This objective may include but is not limited to: consume Web API services by using HttpClient synchronously and asynchronously [link]; send and receive requests in different formats (JSON/HTML/etc.) [link]

Deploying Web Applications and Services (19%)

  • Design a deployment strategy

    • This objective may include but is not limited to: Create an IIS install package [link link]; deploy to web farms [link]; deploy a web application by using XCopy [link link]; automate a deployment from TFS or Build Server [link link link link link]

  • Choose a deployment strategy for a Windows Azure web application

    • This objective may include but is not limited to: Perform an in-place upgrade and VIP swap [link link]; configure an upgrade domain [link]; create and configure input and internal endpoints [link link]; specify operating system configuration [link link]

  • Configure a web application for deployment

    • This objective may include but is not limited to: switch from production/release mode to debug mode; use SetParameters to set up an IIS app pool [link link], set permissions and passwords) [link]; configure WCF endpoints, bindings, and behaviors [link link link link link]; transform web.config by using XSLT (for example, across development, test, and production/release environments) [link link]; configure Azure configuration settings [link]

  • Manage packages by using NuGet [link link]

    • This objective may include but is not limited to: Create and configure a NuGet package [link]; install and update an existing NuGet package [link link]; connect to a local repository cache for NuGet [link], set up your own package repository [link]

  • Create, configure, and publish a web package [link]

    • This objective may include but is not limited to: Create an IIS InstallPackage [link]; configure the build process to output a web package [link]; apply pre- and post- condition actions to ensure that transformations are correctly applied [link]; include appropriate assets (web content, certificates) [link]

  • Share assemblies between multiple applications and servers

    • This objective may include but is not limited to: Prepare the environment for use of assemblies across multiple servers (interning) [link]; sign assemblies by using a strong name [link]; deploy assemblies to the global assembly cache [link link]; implement assembly versioning [link]; create an assembly manifest [link]; configure assembly binding redirects (for example, from MVC2 to MVC3 [link]

Share