MCSD Web Applications Certification

Programming in HTML5 with JavaScript & CSS3 480
Developing ASP.net 4.5 MVC Web Applications 486
Developing Windows Azure and Web Services 487
Programming in HTML5 with JavaScript & CSS3        480
  • Implement and Manipulate Document Structures and Objects (24%)
    • Create the document structure.
      • This objective may include but is not limited to: structure the UI by using semantic markup, including for search engines and screen readers (Section, Article, Nav, Header, Footer, and Aside); create a layout container in HTML
    • Write code that interacts with UI controls.
      • This objective may include but is not limited to: programmatically add and modify HTML elements; implement media controls; implement HTML5 canvas and SVG graphics
    • Apply styling to HTML elements programmatically.
      • This objective may include but is not limited to: change the location of an element; apply a transform; show and hide elements
    • Implement HTML5 APIs.
      • This objective may include but is not limited to: implement storage APIs, AppCache API, and Geolocation API
    • Establish the scope of objects and variables.
      • This objective may include but is not limited to: define the lifetime of variables; keep objects out of the global namespace; use the “this” keyword to reference an object that fired an event; scope variables locally and globally
    • Create and implement objects and methods.
      • This objective may include but is not limited to: implement native objects; create custom objects and custom properties for native objects using prototypes and functions; inherit from an object; implement native methods and create custom methods
  • Implement Program Flow (25%)
    • Implement program flow.
      • This objective may include but is not limited to: iterate across collections and array items; manage program decisions by using switch statements, if/then, and operators; evaluate expressions
    • Raise and handle an event.
      • This objective may include but is not limited to: handle common events exposed by DOM (OnBlur, OnFocus, OnClick); declare and handle bubbled events; handle an event by using an anonymous function
    • Implement exception handling.
      • This objective may include but is not limited to: set and respond to error codes; throw an exception; request for null checks; implement try-catch-finally blocks
    • Implement a callback.
      • This objective may include but is not limited to: receive messages from the HTML5 WebSocket API; use jQuery to make an AJAX call; wire up an event; implement a callback by using anonymous functions; handle the “this” pointer
    • Create a web worker process.
      • This objective may include but is not limited to: start and stop a web worker; pass data to a web worker; configure timeouts and intervals on the web worker; register an event listener for the web worker; limitations of a web worker
  • Access and Secure Data (26%)
    • Validate user input by using HTML5 elements.
      • This objective may include but is not limited to: choose the appropriate controls based on requirements; implement HTML input types and content attributes (for example, required) to collect user input
    • Validate user input by using JavaScript.
      • This objective may include but is not limited to: evaluate a regular expression to validate the input format; validate that you are getting the right kind of data type by using built-in functions; prevent code injection
    • Consume data.
      • This objective may include but is not limited to: consume JSON and XML data; retrieve data by using web services; load data or get data from other sources by using XMLHTTPRequest
    • Serialize, deserialize, and transmit data.
      • This objective may include but is not limited to: binary data; text data (JSON, XML); implement the jQuery serialize method; Form.Submit; parse data; send data by using XMLHTTPRequest; sanitize input by using URI/form encoding
  • Use CSS3 in Applications (25%)
    • Style HTML text properties.
      • This objective may include but is not limited to: apply styles to text appearance (color, bold, italics); apply styles to text font (WOFF and @font-face, size); apply styles to text alignment, spacing, and indentation; apply styles to text hyphenation; apply styles for a text drop shadow
    • Style HTML box properties.
      • This objective may include but is not limited to: apply styles to alter appearance attributes (size, border and rounding border corners, outline, padding, margin); apply styles to alter graphic effects (transparency, opacity, background image, gradients, shadow, clipping); apply styles to establish and change an element’s position (static, relative, absolute, fixed)
    • Create a flexible content layout.
      • This objective may include but is not limited to: implement a layout using a flexible box model; implement a layout using multi-column; implement a layout using position floating and exclusions; implement a layout using grid alignment; implement a layout using regions, grouping, and nesting
    • Create an animated and adaptive UI.
      • This objective may include but is not limited to: animate objects by applying CSS transitions; apply 3-D and 2-D transformations; adjust UI based on media queries (device adaptations for output formats, displays, and representations); hide or disable controls
    • Find elements by using CSS selectors and jQuery.
      • This objective may include but is not limited to: choose the correct selector to reference an element; define element, style, and attribute selectors; find elements by using pseudo-elements and pseudo-classes (for example, :before, :first-line, :first-letter, :target, :lang, :checked, :first-child)
    • Structure a CSS file by using CSS selectors.
      • This objective may include but is not limited to: reference elements correctly; implement inheritance; override inheritance by using !important; style an element based on pseudo-elements and pseudo-classes (for example, :before, :first-line, :first-letter, :target, :lang, :checked, :first-child)

 

Developing ASP.net 4.5 MVC Web Applications         486
  • Design the Application Architecture
    • Plan the application layers.
      • This objective may include but is not limited to: plan data access; plan for separation of concerns; appropriate use of models, views, and controllers; choose between client-side and server side processing; design for scalability
    • Design a distributed application.
      • This objective may include but is not limited to: design a hybrid application (on premise vs. off premise, including Windows Azure); plan for session management in a distributed environment; plan web farms
    • Design and implement the Windows Azure role life cycle.
      • This objective may include but is not limited to: identify and implement Start, Run, and Stop events;identify startup tasks (IIS configuration [app pool], registry configuration, third-party tools)
    • Configure state management.
      • This objective may include but is not limited to: choose a state management mechanism (in-process and out of process state management, ViewState); plan for scalability; use cookies or local storage to maintain state; apply configuration settings in web.config file; implement sessionless state (for example, QueryString)
    • Design a caching strategy.
      • This objective may include but is not limited to: implement page output caching (performance oriented); implement data caching; implement HTTP caching
    • Design and implement a Web Socket strategy.
      • This objective may include but is not limited to: read and write string and binary data asynchronously (long-running data transfers); choose a connection loss strategy; decide a strategy for when to use Web Sockets
    • Design HTTP modules and handlers.
      • This objective may include but is not limited to: implement synchronous and asynchronous modules and handlers; choose between modules and handlers in IIS
  • Design the User Experience
    • Apply the user interface design for a web application.
      • This objective may include but is not limited to: create and apply styles by using CSS; structure and lay out the user interface by using HTML; implement dynamic page content based on a design
    • Design and implement UI behavior.
      • This objective may include but is not limited to: implement client validation; use JavaScript and the DOM to control application behavior; extend objects by using prototypal inheritance; use AJAX to make partial page updates; implement the UI by using JQuery
    • Compose the UI layout of an application.
      • This objective may include but is not limited to: implement partials for reuse in different areas of the application; design and implement pages by using Razor templates (Razor view engine); design layouts to provide visual structure; implement master/application pages
    • Enhance application behavior and style based on browser feature detection.
      • This objective may include but is not limited to: detect browser features and capabilities; create a web application that runs across multiple browsers and mobile devices; enhance application behavior and style by using vendor-specific extensions, for example, CSS
    • Plan an adaptive UI layout.
      • This objective may include but is not limited to: plan for running applications in browsers on multiple devices (screen resolution, CSS, HTML); plan for mobile web applications
  • Develop the User Experience
    • Plan for search engine optimization and accessibility.
      • This objective may include but is not limited to: use analytical tools to parse HTML; view and evaluate conceptual structure by using plugs-in for browsers; write semantic markup (HTML5 and ARIA) for accessibility, for example, screen readers
    • Plan and implement globalization and localization.
      • This objective may include but is not limited to: plan a localization strategy; create and apply resources to UI including JavaScript resources; set cultures; create satellite resource assemblies
    • Design and implement MVC controllers and actions.
      • This objective may include but is not limited to: apply authorization attributes and global filters; implement action behaviors; implement action results; implement model binding
    • Design and implement routes.
      • This objective may include but is not limited to: define a route to handle a URL pattern; apply route constraints; ignore URL patterns; add custom route parameters; define areas
    • Control application behavior by using MVC extensibility points.
      • This objective may include but is not limited to: implement MVC filters and controller factories; control application behavior by using action results, viewengines, model binders, and route handlers
    • Reduce network bandwidth.
      • This objective may include but is not limited to: bundle and minify scripts (CSS and JavaScript); compress and decompress data (using gzip/deflate; storage); plan a content delivery network (CDN) strategy, for example, Windows Azure CDN
  • Troubleshoot and Debug Web Applications
    • Prevent and troubleshoot runtime issues.
      • This objective may include but is not limited to: troubleshoot performance, security, and errors;implement tracing, logging (including using attributes for logging), and debugging (including IntelliTrace); enforce conditions by using code contracts; enable and configure health monitoring (including Performance Monitor)
    • Design an exception handling strategy.
      • This objective may include but is not limited to: handle exceptions across multiple layers; display custom error pages using global.asax or creating your own HTTPHandler or set web.config attributes; handle first chance exceptions
    • Test a web application.
      • This objective may include but is not limited to: create and run unit tests, for example, use the Assert class, create mocks; create and run web tests
    • Debug a Windows Azure application.
      • This objective may include but is not limited to: collect diagnostic information by using Windows Azure Diagnostics API Implement on demand vs. scheduled; choose log types, for example, event logs, performance counters, and crash dumps; debug a Windows Azure application by using IntelliTrace and Remote Desktop Protocol (RDP)
  • Design and Implement Security
    • Configure authentication.
      • This objective may include but is not limited to: authenticate users; enforce authentication settings; choose between Windows, Forms, and custom authentication; manage user session by using cookies; configure membership providers; create custom membership providers
    • Configure and apply authorization.
      • This objective may include but is not limited to: create roles; authorize roles by using configuration; authorize roles programmatically ; create custom role providers; implement WCF service authorization
    • Design and implement claims-based authentication across federated identity stores.
      • This objective may include but is not limited to: implement federated authentication by using Windows Azure Access Control Service; create a custom security token by using Windows Identity Foundation; handle token formats (for example, oAuth, OpenID, LiveID, and Facebook) for SAML and SWT tokens
    • Manage data integrity.
      • This objective may include but is not limited to: apply encryption to application data; apply encryption to the configuration sections of an application; sign application data to prevent tampering
    • Implement a secure site with ASP.NET.
      • This objective may include but is not limited to: secure communication by applying SSL certificates; salt and hash passwords for storage; use HTML encoding to prevent cross-site scripting attacks (ANTI-XSS Library); implement deferred validation and handle unvalidated requests, for example, form, querystring, and URL; prevent SQL injection attacks by parameterizing queries; prevent cross-site request forgeries (XSRF)

 

Developing Windows Azure and Web Services          487
  • Accessing Data (24%)
    • Choose data access technologies
      • This objective may include but is not limited to: Choose a technology (ADO.NET, Entity Framework, WCF Data Services) based on application requirements
    • Implement caching
      • This objective may include but is not limited to: Cache static data, apply cache policy (including expirations); Use CacheDependency to refresh cache data; query notifications
    • Implement transactions
      • 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
    • Implement data storage in Windows Azure
      • This objective may include but is not limited to: 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
      • This objective may include but is not limited to: Address resources; implement filtering; create a query expression; access payload formats (including JSON); use data service interceptors and service operators
    • Manipulate XML data structures
      • This objective may include but is not limited to: 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.
      • This objective may include but is not limited to: 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
      • This objective may include but is not limited to: 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.
      • This objective may include but is not limited to: 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
      • This objective may include but is not limited to: 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.
      • This objective may include but is not limited to: 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
      • This objective may include but is not limited to: Create contracts (service, data, message, callback, and fault); implement message inspectors; implement asynchronous operations in the service
    • Configure WCF services by using configuration settings
      • 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
      • 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); WCF routing and discovery features
    • Secure a WCF service
      • This objective may include but is not limited to: Implement message level security, implement transport level security; implement certificates
    • Consume WCF services
      • This objective may include but is not limited to: 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
      • 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; integrate with the Azure service bus relay
    • Implement messaging patterns
      • This objective may include but is not limited to: Implement one way, request/reply, streaming, and duplex communication; implement Windows Azure Service Bus and Windows Azure Queues
    • Host and manage services
      • This objective may include but is not limited to: 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
      • 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
      • This objective may include but is not limited to: 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
      • This objective may include but is not limited to: 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
      • This objective may include but is not limited to: host Web API in an ASP.NET app; self-host a Web API in your own process (a Windows service); host services in a Windows Azure worker role; restricting message size; configure the host server for streaming
    • Consume Web API web services
      • This objective may include but is not limited to: 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
      • This objective may include but is not limited to: 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
      • This objective may include but is not limited to: 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
      • 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, 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
      • This objective may include but is not limited to: 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
      • This objective may include but is not limited to: 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
      • This objective may include but is not limited to: 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)