MCSD Windows Apps Using HTML5

Programming in HTML5 with JavaScript & CSS3 480
Essentials of Developing Windows Store Apps using 481
Advanced windows store apps development using HTML 5 and JavaScript 482
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)

 

Essentials of Developing Windows Store Apps 481
  • Design Windows Store Apps (20%)
    • Design the UI layout and structure.
      • This objective may include but is not limited to: evaluate the conceptual design; decide how the UI will be composed; design for the inheritance and re-use of visual elements (e.g., styles, resources); design for accessibility; decide when custom controls are needed
    • Design for separation of concerns.
      • This objective may include but is not limited to: plan the logical layers of your solution to meet application requirements; design loosely coupled layers; incorporate WinMD components
    • Design and implement Process Lifetime Management (PLM).
      • This objective may include but is not limited to: choose a state management strategy; handle the suspend event (oncheckpoint); prepare for app termination; handle the onactivated event; check the ActivationKind and previous state
    • Plan for an application deployment.
      • This objective may include but is not limited to: plan a deployment based on Windows 8 Application certification requirements; prepare an app manifest (capabilities and declarations); sign an app; plan the requirements for an enterprise deployment
  • Develop Windows Store Apps (20%)
    • Access and display contacts.
      • This objective may include but is not limited to: call the ContactsPicker (windows.applicationmodel.contacts) class; filter which contacts to display; display a set number of contacts; create and modify contact information; select specific contact data
    • Design for charms and contracts.
      • This objective may include but is not limited to: choose the appropriate charms based on app requirements; design an application to be charm- and contract-aware; configure the application manifest for correct permissions
    • Implement search.
      • This objective may include but is not limited to: provide search suggestions using the SearchPane class; search and launch other apps; provide and constrain search within an app, including inside and outside of search charm; provide search result previews; implement activation from within search
    • Implement Share in an app.
      • This objective may include but is not limited to: use the DataTransferManager class to share data with other apps; accept sharing requests by implementing activation from within Share; limit the scope of sharing using the DataPackage object; implement in-app Share outside of Share charm
    • Manage application settings and preferences.
      • This objective may include but is not limited to: choose which application features are accessed in AppSettings; add entry points for AppSettings in the Settings window; create settings flyouts using the SettingsFlyout control; add settings options to SettingsFlyout; store and retrieve settings from the roaming app data store
  • Create the User Interface (21%)
    • Implement WinJS controls.
      • This objective may include but is not limited to: flipview; flyout; grid layout; list layout; menu object
    • Implement HTML layout controls.
      • This objective may include but is not limited to: implement layout controls to structure your layout; support scrolling and zooming with CSS3; manage text flow and presentation, including overflow
    • Create layout-aware apps to handle view states.
      • This objective may include but is not limited to: handle viewState events; choose among application view states; use CSS3 media queries to handle different view states; respond to ApplicationViewStateChangedEvent
    • Design and implement the app bar.
      • This objective may include but is not limited to: determine what to put on the app bar based on app requirements; style and position app bar items; design the placement of controls on the app bar; handle AppBar events
    • Apply CSS styling.
      • This objective may include but is not limited to: implement gradients, grid layouts, zooming, scroll snapping, and media queries
  • Program User Interaction (20%)
    • Manage input devices.
      • This objective may include but is not limited to: capture gesture library events; create custom gesture recognizers; listen to mouse events or touch gestures; manage Stylus input and inking; handle drag and drop events
    • Design and implement navigation in an app.
      • This objective may include but is not limited to: handle navigation events, check navigation properties, and call navigation functions by using the WinJS.Navigation namespace; design navigation to meet app requirements; Semantic Zoom; load HTML fragments
    • Create and manage tiles.
      • This objective may include but is not limited to: create and update tiles and tile contents; create and update badges (the TileUpdateManager class); respond to notification requests; choose an appropriate tile update schedule based on app requirements
    • Notify users by using toast.
      • This objective may include but is not limited to: enable an app for toast notifications; populate toast notifications with images and text by using the ToastUpdateManager; play sounds with toast notifications; respond to toast events; control toast duration
  • Manage Security and Data (19%)
    • Choose a data access strategy.
      • This objective may include but is not limited to: choose the appropriate data access strategy (file based; web service; remote storage, including Windows Azure storage) based on requirements
    • Retrieve data remotely.
      • This objective may include but is not limited to: use XHR to retrieve web services; set appropriate HTTP verb for REST; handle progress of data requests; consume SOAP/WCF services; use WebSockets for bidirectional communication
    • Implement data binding.
      • This objective may include but is not limited to: choose and implement data-bound controls, including WinJS.UI.ListView, to meet requirements; bind data to item templates such as WinJS.Binding.Template; bind data to controls by using data-win-control and data-win-bind; configure an iterator with data-win-options; enable filtering, sorting, and grouping data in the user interface
    • Manage Windows Authentication and Authorization.
      • This objective may include but is not limited to: retrieve a user’s roles or claims; store and retrieve credentials by using the PasswordVault class; implement the CredentialPicker class
    • Manage Web Authentication.
      • This objective may include but is not limited to: use the Windows.Security.Authentication.Web namespace; set up OAuth2 for authentication; CredentialPicker; set up single sign-on (SSO); implement credential roaming; implement the WebAuthenticationBroker class

 

Advanced windows store apps devlpment using HTML 5 and Javascript 482
  • Develop Windows Store Apps (17%)
    • Create background tasks.
      • This objective may include but is not limited to: implement the Windows.applicationmodel.background classes; implement WebUIBackgroundTaskInstance; create a background task to manage and preserve resources; create a background task to get notifications for an app; register the background task by using the BackgroundTaskBuilder class
    • Consume background tasks.
      • This objective may include but is not limited to: use timing triggers and system triggers; keep communication channels open; request lock screen access; use the backgroundtransfer class to finish downloads
    • Integrate WinMD components into a solution.
      • This objective may include but is not limited to: consume a WinMD component in JavaScript; handle WinMD reference types; reference a WinMD component
  • Discover and Interact with Devices (13%)
    • Capture media with the camera and microphone.
      • This objective may include but is not limited to: use CameraCaptureUI to take pictures or video, and configure camera settings; use MediaCapture to capture pictures, video, and audio; configure camera settings; set media formats; handle media capture events
    • Get data from sensors.
      • This objective may include but is not limited to: determine the availability of a sensor (Windows.devices.sensors); add sensor requests to the app manifest; handle sensor events; get sensor properties; determine location via GPS
    • Enumerate and discover device capabilities.
      • This objective may include but is not limited to: discover the capabilities and properties of available devices, for example, as GPS, removable storage, accelerometer, and near field communication
  • Program User Interaction (18%)
    • Implement printing by using contracts and charms.
      • This objective may include but is not limited to: implement the Print contract; create a custom print template; construct a print preview; handle print pagination; implement in-app printing; expose printer settings within an app
    • Implement Play To by using contracts and charms.
      • This objective may include but is not limited to: register an app for Play To; use PlayToManager stream media assets; register an app as a PlayToReceiver
    • Notify users by using Windows Push Notification Service (WNS).
      • This objective may include but is not limited to: authenticate with WNS; request, create, and save a notification channel; call and poll the WNS
  • Enhance the User Interface (18%)
    • Design for and implement UI responsiveness.
      • This objective may include but is not limited to: choose an asynchronous strategy between web workers and promises; implement web workers; nest and chain promises; make custom functions promise-aware
    • Implement animations and transitions.
      • This objective may include but is not limited to: apply animations from the animation library (WinJS.UI.animation); create and customize animations and transitions by using CSS; apply transformations; create animations by using keypoints; apply timing functions; animate with the HTML5
    • Create custom controls.
      • This objective may include but is not limited to: create custom controls using WinJS.Namespace, WinJS.Class.define, and HTML; bind to custom controls with data-win-bind; inherit from and extend an existing WinJS control
    • Design apps for globalization and localization.
      • This objective may include but is not limited to: implement .resjson files to translate text; implement collation and grouping to support different reading directions; implement culture-specific formatting for dates and times; bind JSON properties to resources by using the data-win-res property
  • Manage Data and Security (18%)
    • Design and implement data caching.
      • This objective may include but is not limited to: choose which types of items (user data, settings, application data) in your app should be persisted to the cache based on requirements; choose when items are cached; choose where items are cached (Windows Azure, remote storage); select a caching mechanism; store data by using indexDB, LocalStorage, and SessionStorage
    • Save and retrieve files from the file system.
      • This objective may include but is not limited to: handle file streams; save and retrieve files by using the StorageFile and StorageFolder classes; set file extensions and associations; save and retrieve files by using file pickers and the folder picker; compress files to save space; access libraries, for example, pictures, documents, and videos
    • Secure application data.
      • This objective may include but is not limited to: encrypt data by using the Windows.Security.Cryptography namespace; enroll and request certificates; encrypt data by using certificates
  • Prepare for a Solution Deployment (16%)
    • Design and implement trial functionality in an app.
      • This objective may include but is not limited to: set up a timed trial; set up a feature-based trial; set up in-app purchases; transition an app from trial to full
    • Design for error handling.
      • This objective may include but is not limited to: design the app so that errors and exceptions never reach the user; handle device capability errors; handle promises errors
    • Design and implement a test strategy.
      • This objective may include but is not limited to: design a functional test plan; implement a coded UI test; design a reliability test plan, including performance testing, stress testing, scalability testing, and duration testing
    • Design a diagnostics and monitoring strategy.
      • This objective may include but is not limited to: design profiling, tracing, performance counters, audit trails (events and information), and usage reporting; decide where to log events (local vs. centralized reporting)