Exam 70-486 Study Material: Developing ASP.NET MVC 4 Web Applications

As a follow up to the post I made in preparation of the 70-480 exam, I’d like to continue the series now with a look at the 70-486. Just like last time, we’ll look at a list of resources based on the individual exam criteria!

General Resources

Microsoft Hands On Tutorial: http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/intro-to-aspnet-mvc-4

Building Web Apps with ASP.NET Jump Start: https://www.microsoftvirtualacademy.com/training-courses/create-web-apps-with-asp-net

Pluralsight Training (not free, but an excellent training resource! There is a trial available.): http://pluralsight.com/training/Courses/TableOfContents/mvc4-building

The Official ASP.NET MVC 4 Page: http://www.asp.net/mvc/mvc4

The source code for the ASP.NET Web Stack:http://aspnetwebstack.codeplex.com/

Microsoft Official Training Course: http://www.microsoft.com/learning/en/us/Course.aspx?ID=20486A&Locale=en-us#fbid=o4uXSVtIdvG

Test Breakdown

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

http://www.asp.net/mvc/tutorials/hands-on-labs/aspnet-mvc-4-models-and-data-access

http://www.codeproject.com/Articles/54576/Understanding-ASP-NET-MVC-Model-View-Controller-Ar

http://programmers.stackexchange.com/questions/138561/pros-cons-between-emphasizing-client-side-or-server-side-processing

http://codebetter.com/iancooper/2010/01/27/mvc-or-webforms/

  • 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

http://en.wikipedia.org/wiki/On-premises_software

http://www.dotnet-tricks.com/Tutorial/mvc/906b060113-Controlling-Session-Behavior-in-Asp.Net-MVC4.html

http://www.windowsazure.com/en-us/develop/net/tutorials/multi-tier-web-site/1-overview/

http://stackoverflow.com/questions/3463191/make-an-asp-net-mvc-application-web-farm-ready

  • 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)

http://mentormate.com/blog/windows-azure-development-lifecycle/

http://www.asp.net/mvc/tutorials/deployment/cse-curated-view-deploy-to-waws

  • 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)

http://stackoverflow.com/questions/3463191/make-an-asp-net-mvc-application-web-farm-ready

http://diveintohtml5.info/storage.html

http://code-inside.de/blog-in/2010/10/19/howto-create-and-remove-cookies-with-asp-net-mvc/

  • 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

http://blog.stevensanderson.com/2008/10/15/partial-output-caching-in-aspnet-mvc/

http://www.asp.net/mvc/tutorials/older-versions/controllers-and-routing/improving-performance-with-output-caching-cs

http://bartwullems.blogspot.com/2011/02/caching-in-net-4.html

http://msdn.microsoft.com/en-us/library/xsbfdd8c(v=vs.71).aspx

  • 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

http://www.asp.net/vnext/overview/aspnet/whats-new#\_Toc318097383

http://weblogs.asp.net/dwahlin/archive/2013/04/13/building-an-html5-web-sockets-server-with-asp-net-4-5.aspx

  • 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

http://msdn.microsoft.com/en-us/library/bb398986(v=vs.100).aspx

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

http://www.microsoftvirtualacademy.com/training-courses/learn-html5-with-javascript-css3-jumpstart-training

  • 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

http://www.codeproject.com/Articles/577937/A-Beginners-Tutorial-on-Validating-Model-Data-and

http://www.microsoftvirtualacademy.com/training-courses/learn-html5-with-javascript-css3-jumpstart-training

  • 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

http://mvc4beginner.com/Tutorial/MVC-Partial-Views.html

http://www.asp.net/web-pages/tutorials/introducing-aspnet-web-pages-2/intro-to-web-pages-programming

http://www.asp.net/web-pages/tutorials/introducing-aspnet-web-pages-2/layouts

  • 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

http://msdn.microsoft.com/library/3yekbd5b

http://stackoverflow.com/questions/7080605/ordering-of-vendor-specific-css-declarations

  • 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

http://bstavroulakis.com/blog/mobile/adaptive-rendering-asp-net-mvc-4/

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

http://www.microsoft.com/web/seo

http://blog.paciellogroup.com/2012/06/using-aria-in-html/

https://developer.mozilla.org/en-US/docs/Accessibility/ARIA

  • 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

http://www.hanselman.com/blog/GlobalizationInternationalizationAndLocalizationInASPNETMVC3JavaScriptAndJQueryPart1.aspx

http://www.asp.net/mvc/overview/internationalization

  • 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

http://blogs.msdn.com/b/rickandy/archive/2012/03/23/securing-your-asp-net-mvc-4-app-and-the-new-allowanonymous-attribute.aspx

http://msdn.microsoft.com/en-us/library/gg416513(VS.98).aspx

  • 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

http://www.asp.net/mvc/overview/controllers-and-routing

  • 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

http://www.asp.net/mvc/tutorials/older-versions/controllers-and-routing/understanding-action-filters-cs

http://www.codeproject.com/Articles/560798/ASP-NET-MVC-Controller-Dependency-Injection-for-Be

http://www.codeproject.com/Articles/467850/ASP-NET-MVC-view-engines

http://odetocode.com/blogs/scott/archive/2009/04/27/6-tips-for-asp-net-mvc-model-binding.aspx

https://www.simple-talk.com/dotnet/.net-framework/asp.net-mvc-routing-extensibility/

  • 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

http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification

http://stackoverflow.com/questions/3833682/asp-net-mvc-compression-caching

https://www.simple-talk.com/cloud/development/using-the-windows-azure-content-delivery-network/

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)

http://msdn.microsoft.com/en-us/library/bb398859(v=vs.100).aspx

http://msdn.microsoft.com/en-us/vs2010trainingcourse_aspnetmvc3customactionfilters_topic2.aspx

http://devproconnections.com/aspnet-mvc/code-contracts-and-controllers

  • 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

http://www.asp.net/web-forms/tutorials/aspnet-45/getting-started-with-aspnet-45-web-forms/aspnet-error-handling

  • 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

http://blog.stevensanderson.com/2009/06/11/integration-testing-your-aspnet-mvc-application/

http://msdn.microsoft.com/en-us/library/jj159345.aspx

  • 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)

http://msdn.microsoft.com/en-us/library/windowsazure/ee405479.aspx

http://msdn.microsoft.com/en-us/library/windowsazure/gg433048.aspx

http://blogs.msdn.com/b/golive/archive/2012/04/21/windows-azure-diagnostics-from-the-ground-up.aspx

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

https://geekswithblogs.net/Aligned/archive/2012/08/30/mvc-4-authentication.aspx

http://notebookheavy.com/2012/08/22/mvc-4-authentication/

http://msdn.microsoft.com/en-us/library/ff398049(v=vs.98).aspx

http://www.asp.net/mvc/tutorials/older-versions/security/authenticating-users-with-windows-authentication-cs

http://www.asp.net/mvc/tutorials/mvc-4/using-oauth-providers-with-mvc

  • 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

http://www.asp.net/mvc/tutorials/mvc-music-store/mvc-music-store-part-7

http://kitsula.com/Article/Custom-Role-Provider-for-MVC

  • 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

http://www.windowsazure.com/en-us/develop/net/how-to-guides/access-control/

http://msdn.microsoft.com/en-us/library/ee517296.aspx

http://www.asp.net/mvc/tutorials/mvc-4/using-oauth-providers-with-mvc

  • 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

http://msdn.microsoft.com/en-us/library/zhhddkxy(v=vs.100).aspx

  • 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)

http://www.iis.net/learn/manage/configuring-security/how-to-set-up-ssl-on-iis

http://devproconnections.com/aspnet/aspnet-web-security-protect-user-passwords-hashing-and-salt

http://miroprocessordev.blogspot.com/2012/03/save-aspnet-mvc-application-against.html

http://software-security.sans.org/developer-how-to/fix-sql-injection-microsoft-.net-with-parameterized-queries

This article is part of the GWB Archives. Original Author: Stacy Vicknair

New on Geeks with Blogs

  • We Won The One Award I Actually Care About

    Full Scale made the Inc. 5000 for the fifth year straight, the 12th listing across my three companies. Here is why the one award you cannot buy is worth stopping for.

  • Your Customers Build the Features Now

    I let a tool I liked sit dead for a year rather than build the features I wanted. An MCP server meant I never had to, and your customers can do the same to your product.

  • Get the Size of a Directory in Linux the Easy Way

    du -sh for the quick answer, ncdu for the cleanup, df for the disk itself: every command for checking directory size in Linux, plus why du and df never agree.

  • Vim Search and Replace: The Ultimate Guide

    One :%s command replaces every match in a file before a find dialog would even open. The Vim substitute patterns worth the muscle memory: flags, ranges, capture groups, and multi-file edits.