You are previewing Exam Ref 70-487: Developing Windows Azure and Web Services.
O'Reilly logo
Exam Ref 70-487: Developing Windows Azure and Web Services

Book Description

Prepare for Microsoft Exam 70-487—and help demonstrate your real-world mastery of developing Windows Azure and web services. Designed for experienced developers ready to advance their status, Exam Ref focuses on the critical-thinking and decision-making acumen needed for success at the Microsoft Specialist level.

Focus on the expertise measured by these objectives:

  • Accessing data

  • Querying and manipulating data by using the Entity Framework

  • Designing and implementing WCF Services

  • Creating and consuming Web API-based services

  • Deploying web applications and services

  • This Microsoft Exam Ref:

  • Organizes its coverage by exam objectives.

  • Features strategic, what-if scenarios to challenge you.

  • Table of Contents

    1. Exam Ref 70-487: Developing Windows Azure and Web Services
    2. Introduction
      1. Microsoft certifications
      2. Acknowledgments
      3. Errata & book support
      4. We want to hear from you
      5. Stay in touch
      6. Preparing for the exam
    3. 1. Accessing data
      1. Objective 1.1: Choose data access technologies
        1. Choosing a technology (ADO.NET, Entity Framework, WCF Data Services) based on application requirements
          1. Choosing ADO.NET as the data access technology
          2. ADO.NET compatibility
          3. ADO.NET architecture
          4. .NET Framework data providers
          5. DataSet or DataReader?
          6. Why choose ADO.NET?
        2. Choosing EF as the data access technology
          1. The origins of EF
          2. EF modeling
          3. Building EF models
          4. Building an EF Model using the Entity Data Model Wizard
          5. Entity Data Model Designer
          6. Using the generated items
          7. ObjectContext versus DbContext
          8. ObjectContext management
          9. ObjectContext entities
          10. Why choose the EF?
        3. Choosing WCF Data Services as the data access technology
          1. Changing the nature of data access
          2. OData
          3. JSON
          4. WCF Data Services as data access mechanisms
          5. Why choose WCF Data Services?
        4. Objective summary
        5. Objective review
      2. Objective 1.2: Implement caching
        1. Understanding caching options
        2. Using the ObjectCache
          1. CacheItemPolicy
          2. CacheItemPriority
          3. The ChangeMonitor class
        3. Using the HttpContext.Cache
          1. Abbreviated System.Web.Caching.Cache usage
        4. Objective summary
        5. Objective review
      3. Objective 1.3: Implement transactions
        1. Understanding characteristics of transactions
        2. Implementing distributed transactions
        3. Specifying a transaction isolation level
        4. Managing transactions by using the API from the System.Transactions namespace
        5. Using the EntityTransaction
        6. Using the SqlTransaction
        7. Objective summary
        8. Objective review
      4. Objective 1.4: Implement data storage in Windows Azure
        1. Accessing data storage in Windows Azure
        2. Choosing a data storage mechanism in Windows Azure (blobs, tables, queues and SQL Database)
          1. Blob storage
          2. Table and Queue storage
        3. Distribute data by using the Windows Azure Content Delivery Network (CDN)
        4. Manage Windows Azure Caching
        5. Handling exceptions by using retries (SQL Database)
        6. Objective summary
        7. Objective review
      5. Objective 1.5: Create and implement a WCF Data Services service
        1. Addressing resources
          1. SetEntityAccessRule
          2. SetServiceOperationAccessRule
          3. DataServiceBehavior.MaxProtocolVersion
        2. Creating a query
        3. Accessing payload formats
        4. Working with interceptors and service operators
        5. Objective summary
        6. Objective review
      6. Objective 1.6: Manipulate XML data structures
        1. Reading, filtering, creating, and modifying XML structures
        2. Manipulating XML data
          1. XmlWriter class
          2. XmlReader class
          3. XmlDocument class
        3. XPath
        4. LINQ-to-XML
        5. Advanced XML manipulation
        6. Objective summary
        7. Objective review
      7. Chapter summary
      8. Answers
        1. Objective 1.1: Thought experiment
        2. Objective 1.1: Review
        3. Objective 1.2: Thought experiment
        4. Objective 1.2: Review
        5. Objective 1.3: Thought experiment
        6. Objective 1.3: Review
        7. Objective 1.4: Thought experiment
        8. Objective 1.4: Review
        9. Objective 1.5: Thought experiment
        10. Objective 1.5: Review
        11. Objective 1.6: Thought experiment
        12. Objective 1.6: Review
    4. 2. Querying and manipulating data by using the Entity Framework
      1. Objective 2.1: Query and manipulate data by using the Entity Framework
        1. Querying, updating, and deleting data by using DbContext
          1. Querying data
          2. Updating data
          3. Deleting data
        2. Building a query that uses deferred execution
        3. Implementing lazy loading and eager loading
        4. Creating and running compiled queries
        5. Querying data by using Entity SQL
        6. Objective summary
        7. Objective review
      2. Objective 2.2: Query and manipulate data by using Data Provider for Entity Framework
        1. Querying and manipulating data by using Connection, DataReader, Command from the System.Data.EntityClient namespace
          1. EntityConnection
          2. EntityCommand
          3. EntityTransaction
        2. Performing synchronous and asynchronous operations
        3. Managing transactions (API)
          1. DbTransaction
          2. TransactionScope
        4. Objective summary
        5. Objective review
      3. Objective 2.3: Query data by using LINQ to Entities
        1. Querying data using LINQ operators
        2. IEnumerable versus IQueryable
        3. Logging queries
        4. Objective summary
        5. Objective review
      4. Objective 2.4: Query and manipulate data by using ADO.NET
        1. Querying data using Connection, DataReader, Command, DataAdapter, and DataSet
        2. SqlConnection
        3. SqlCommand
        4. SqlDataReader
        5. SqlDataAdapter
          1. Data object lifecycle with a DataAdapter
          2. Untyped DataSets and DataTables
        6. Performing synchronous and asynchronous operations
        7. Managing transactions
        8. Objective summary
        9. Objective review
      5. Objective 2.5: Create an Entity Framework data model
        1. Structuring the data model using Table-per-Type and Table-per-Hierarchy inheritance
        2. Choosing and implementing an approach to manage a data model (code first vs. model first vs. database first)
        3. Implementing POCOs
          1. DbContext
          2. ObjectContext
        4. Describing a data model using conceptual schema definitions, storage schema definitions, and mapping language (CSDL, SSDL, & MSL)
          1. Conceptual schema definition language (CSDL)
          2. Storage schema definition language (SSDL)
          3. Mapping specification language (MSL)
        5. Objective summary
        6. Objective review
      6. Chapter summary
      7. Answers
        1. Objective 2.1: Thought experiment
        2. Objective 2.1: Review
        3. Objective 2.2: Thought experiment
        4. Objective 2.2: Review
        5. Objective 2.3: Thought experiment
        6. Objective 2.3: Review
        7. Objective 2.4: Thought experiment
        8. Objective 2.4: Review
        9. Objective 2.5: Thought experiment
        10. Objective 2.5: Review
    5. 3. Designing and implementing WCF Services
      1. Objective 3.1: Create a WCF service
        1. Defining SOA concepts
        2. Creating contracts
          1. Endpoints
          2. WCF processing pipeline
          3. DataContract
          4. DataMember
          5. EnumMember
          6. FaultContracts
        3. Implementing inspectors
        4. Implementing message inspectors
          1. IDispatchMessageInspector interface
          2. IClientMessageInspector interface
        5. Objective summary
        6. Objective review
      2. Objective 3.2: Configure WCF services by using configuration settings
        1. Configuring service behaviors
        2. Creating a new service
        3. Specifying a new service element (service)
        4. Specifying a new service element (contract)
        5. Specifying a new service element (communication mode)
        6. Specifying a new service element (interoperability mode)
        7. Resulting configuration file
        8. Exposing service metadata
          1. Configuring service endpoints
          2. Configuring bindings
        9. Objective summary
        10. Objective review
      3. Objective 3.3: Configure WCF services by using the API
        1. Configuring service endpoints
        2. Configuring service behaviors
          1. ServiceBehaviorAttribute
        3. Configuring bindings
          1. Binding declarations
          2. wsHttpBinding
          3. NetMsmqBinding
          4. NetNamedPipeBinding
          5. Custom binding
        4. Specifying a service contract
          1. ServiceContract attribute defined on the service class
          2. ServiceContract attribute defined on the interface definition
          3. ServiceContract attribute defined on the service class and interface definition
          4. Expose a service’s metadata
        5. Objective summary
        6. Objective review
      4. Objective 3.4: Secure a WCF service
        1. Implementing message level security
        2. Implementing transport level security
        3. Implementing certificates
        4. Objective summary
        5. Objective review
      5. Objective 3.5: Consume WCF services
        1. Generating proxies using Svcutil.exe
        2. Generating proxies by creating a service reference
        3. Creating and implementing channel factories
        4. Objective summary
        5. Objective review
      6. Objective 3.6: Version a WCF service
        1. Versioning different types of contracts
          1. Contract versioning
          2. Strict versioning
          3. Lax versioning
        2. Configuring address, binding, and routing service versioning
        3. Objective summary
        4. Objective review
      7. Objective 3.7: Create and configure a WCF service on Windows Azure
        1. Creating and configuring bindings for WCF services
        2. Relaying bindings to Azure using service bus endpoints
        3. Integrating with the Azure service bus relay
        4. Objective summary
        5. Objective review
      8. Objective 3.8: Implement messaging patterns
        1. Implementing one-way, request/reply, streaming, and duplex communication
          1. Streaming and duplex
          2. Request/reply
          3. Duplex
        2. Implementing Windows Azure service bus and Windows Azure queues
        3. Objective summary
        4. Objective review
      9. Objective 3.9: Host and manage services
        1. Managing services concurrency
          1. Single
          2. Multiple
          3. Reentrant
        2. Choosing an instancing mode
          1. Single
          2. PerSession
          3. PerCall
        3. Creating service hosts
          1. Self-hosting
          2. Managed Windows Services
          3. Internet Information Services (IIS)
          4. Windows Activation Service (WAS)
          5. Windows Azure-based hosting
          6. ServiceHost class
        4. Choosing a hosting mechanism
        5. Creating transactional services
          1. NotAllowed
          2. Allowed
          3. Mandatory
        6. Hosting services in a Windows Azure worker role
        7. Objective summary
        8. Objective review
      10. Chapter summary
      11. Answers
        1. Objective 3.1: Thought experiment
        2. Objective 3.1: Review
        3. Objective 3.2: Thought experiment
        4. Objective 3.2: Review
        5. Objective 3.3: Thought experiment
        6. Objective 3.3: Review
        7. Objective 3.4: Thought experiment
        8. Objective 3.4: Review
        9. Objective 3.5: Thought experiment
        10. Objective 3.5: Review
        11. Objective 3.6: Thought experiment
        12. Objective 3.6: Review
        13. Objective 3.7: Thought experiment
        14. Objective 3.7: Review
        15. Objective 3.8: Thought experiment
        16. Objective 3.8: Review
        17. Objective 3.9: Thought experiment
        18. Objective 3.9: Review
    6. 4. Creating and consuming Web API-based services
      1. Objective 4.1: Design a Web API
        1. Choosing appropriate HTTP methods
          1. HttpGet
          2. HttpDelete
          3. HttpPost
          4. HttpPut
        2. Defining HTTP resources with HTTP actions
          1. Creating the model
          2. Creating the controller
          3. Browser functionality and support
        3. Mapping URI space using routing
          1. System.Web.Http.AcceptVerbsAttribute
          2. ActionNameAttribute
          3. NonActions
        4. Choosing appropriate formats for responses to meet requirements
        5. Planning when to make HTTP actions asynchronous
        6. Objective summary
        7. Objective review
      2. Objective 4.2: Implement a Web API
        1. Accepting data in JSON format
          1. Building a Razor page
          2. Adding client-side functionality
        2. Using content negotiation to deliver different data formats
        3. Defining actions and parameters to handle data binding
        4. Using HttpMessageHandler to process client requests and server responses
        5. Implementing dependency injection
        6. Implementing action filters and exception filters
        7. Implementing asynchronous and synchronous actions
        8. Implementing streaming actions
        9. Objective summary
        10. Objective review
      3. Objective 4.3: Secure a Web API
        1. Authenticating and authorizing users
          1. Authentication
          2. Authorization
        2. Implementing HttpBasic authentication
          1. Server-side processing
          2. Client-side processing
          3. Enabling SSL
        3. Implementing Windows Authentication
          1. Server-side processing
          2. Client-side processing
        4. Preventing cross-site request forgery
          1. What is XSRF?
          2. When are you vulnerable?
          3. How to protect from XSRF
        5. Enabling cross-domain requests
        6. Implementing and extending authorization filters
        7. Objective summary
        8. Objective review
      4. Objective 4.4: Host and manage a Web API
        1. Self-hosting a Web API
          1. Installing Web API self-hosting
          2. Creating your Web API hosting server
        2. Hosting Web API in an ASP.NET app
        3. Hosting services in a Windows Azure worker role
        4. Restricting message size
        5. Configuring the host server for streaming
        6. Objective summary
        7. Objective review
      5. Objective 4.5: Consume Web API web services
        1. Consuming Web API services
          1. HttpGet via GetAsync
          2. HttpPost via PostAsync and PostAsJsonAsync
          3. HttpPut via PutAsync and PutAsJsonAsync
          4. HttpDelete via DeleteAsync
          5. Exception handling
        2. Sending and receiving requests in different formats
        3. Objective summary
        4. Objective review
      6. Chapter summary
      7. Answers
        1. Objective 4.1: Thought experiment
        2. Objective 4.1: Review
        3. Objective 4.2: Thought experiment
        4. Objective 4.2: Review
        5. Objective 4.3: Thought experiment
        6. Objective 4.3: Review
        7. Objective 4.4: Thought experiment
        8. Objective 4.4: Review
        9. Objective 4.5: Thought experiment
        10. Objective 4.5: Review
    7. 5. Deploying web applications and services
      1. Objective 5.1: Design a deployment strategy
        1. Deploying a web application by using XCopy
          1. Configuring IIS
          2. Preparing a website for deployment
          3. Tooling support for XCopy deployments
        2. Creating an IIS install package
        3. Automating a deployment from TFS or Build Server
        4. Deploying to web farms
        5. Objective summary
        6. Objective review
      2. Objective 5.2: Choose a deployment strategy for a Windows Azure web application
        1. Performing an in-place upgrade and VIP Swap
        2. Configuring an upgrade domain
        3. Upgrading through a VIP Swap
        4. Creating and configuring input and internal endpoints
        5. Specifying operating system configuration
        6. Objective summary
        7. Objective review
      3. Objective 5.3: Configure a web application for deployment
        1. Switching from production/release mode to debug
        2. Transforming web.config by XSLT
        3. Using SetParameters to set up an IIS app pool
        4. Configuring Windows Azure configuration settings
        5. Objective summary
        6. Objective review
      4. Objective 5.4: Manage packages by using NuGet
        1. Installing and updating an existing NuGet package
          1. Using the Manage NuGet Packages window
          2. Package Manager Console
          3. Sharing packages with your team
        2. Creating and configuring a NuGet package
          1. Understanding the content of a package
          2. Creating your own NuGet package
        3. Setting up your own package repository
        4. Objective summary
        5. Objective review
      5. Objective 5.5: Create, configure, and publish a web package
        1. Creating an IIS InstallPackage
          1. Visual Studio
          2. IIS
          3. Command-line tools
        2. Configuring the build process to output a web package
        3. Applying pre- and post-condition actions
        4. Objective summary
        5. Objective review
      6. Objective 5.6: Share assemblies between multiple applications and servers
        1. Preparing the environment for use of assemblies across multiple servers
        2. Signing assemblies by using a strong name
        3. Deploying assemblies to the global assembly cache
        4. Implementing assembly versioning
        5. Creating an assembly manifest
        6. Objective summary
        7. Objective review
      7. Chapter summary
      8. Answers
        1. Objective 5.1: Thought experiment
        2. Objective 5.1: Review
        3. Objective 5.2: Thought experiment
        4. Objective 5.2: Review
        5. Objective 5.3: Thought experiment
        6. Objective 5.3: Review
        7. Objective 5.4: Thought experiment
        8. Objective 5.4: Review
        9. Objective 5.5: Thought experiment
        10. Objective 5.5: Review
        11. Objective 5.6: Thought experiment
        12. Objective 5.6: Review
    8. A. About the authors
    9. Index
    10. About the Authors
    11. Copyright