70-484: Essentials of Developing Windows Metro style Apps using C#
“High level breakdown of disciplines required for this exam”
Design Metro style Apps (19%)
- Design the UI layout and structure.
- This objective may include but is not limited to: evaluate the conceptual design and 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 (SOC).
- This objective may include but is not limited to: plan the logical layers of your solution to meet app requirements; design loosely coupled layers; incorporate WinMD components
- Apply the MVVM pattern to your app design.
- This objective may include but is not limited to: design and implement the appropriate data model to support business entities; design your viewmodel to support your view based on your model; develop a view to meet data-binding requirements; create view models using INotifyPropertyChanged, ObservableCollection, and CollectionViewSource
- 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; prepare for app termination; handle the Resume event; handle the OnActivated event; check the ActivationKind and previous state
- Plan for an app deployment.
- This objective may include but is not limited to: plan a deployment based on Windows 8 Metro style app certification requirements; prepare an app manifest (capabilities and declarations); sign an app; plan the requirements for an enterprise deployment
Develop Metro style Apps by Using WinRT (19%)
- Access and display contacts.
- This objective may include but is not limited to: call the ContactsPicker 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 charm based on app requirements; design your app in a charm- and contract-aware manner; configure app manifest for correct permissions
- Implement search.
- This objective may include but is not limited to: provide search suggestions using the SearchPane class; search for 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 app settings and preferences.
- This objective may include but is not limited to: choose which app features are accessed in AppSettings; add entry points for AppSettings in the Settings window; create settings flyouts using the Popup control; add settings to Popup; store and retrieve settings from the roaming app data store
Create the User Interface (21%)
- Create layout aware apps to handle view states.
- This objective may include but is not limited to: handle view state events from ViewStateManager; choose between style patterns for the different view states; set app orientation in the manifest
- Implement layout controls.
- This objective may include but is not limited to: implement the Grid control to structure your layout; set the number of rows/columns and size; enable zoom and scroll capabilities in layout controls; manage text flow and presentation
- 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
- Design and implement data presentation.
- This objective may include but is not limited to: choose and implement data controls to meet app requirements (e.g., ListView, GridView, and FlipView); create data templates to meet app requirements
- Create and manage XAML styles and templates.
- This objective may include but is not limited to: implement and extend styles and templates; implement gradients; modify styles based on event and property triggers; create shared resources and themes
Program the User Interaction (21%)
- Create and manage tiles.
- This objective may include but is not limited to: create and update tiles and tile contents; create and update badges (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 using the ToastUpdateManager class; play sounds with toast notifications; respond to toast events; control toast duration
- 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
- 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 Navigation framework; design navigation to meet app requirements; Semantic Zoom
Manage Security and Data (20%)
- Choose an appropriate 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 HttpClient to retrieve web services; set the appropriate HTTP verb for REST; consume SOAP/WCF services; use WebSockets for bi-directional communication; handle the progress of data requests
- Implement data binding.
- This objective may include but is not limited to: choose and implement data-bound controls; bind collections to items controls; implement the IValueConverter interface; create and set dependency properties; validate user input; enable filtering, grouping, and sorting data in the user interface
- Manage Windows Authentication.
- 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; implement the CredentialPicker class; set up single sign-on (SSO); implement credential roaming; implement the WebAuthenticationBroker class
(work in progress)


