You are on page 1of 4

This comprehensive video series will help you get up to speed quickly with ASP.NET MVC Version 5.x.

The aim is to help you understand every important feature of the MVC framework; the philosophy
behind the framework, conventions, Visual Studio tooling and scaffolding, helper classes utilized in
Views and Controllers, Razor syntax, attributes, validation, routing, areas, internals, filters, architecting
ASP.NET MVC applications and more.

MVC5_001 Series Introduction

Bob discusses the first steps to learning of ASP.NET MVC including a high level overview and what the
version numbers mean.

MVC5_002 Building your First ASP.NET MVC Application

We learn how to create a new ASP.NET MVC project and how to add a Controller class, a View class and
a Model class to our project.

MVC5_003 Understanding the Model View Controller Design Pattern

As we begin to learn the why behind the how, we start off with the pattern upon which the
framework is based and attempt to understand the roles of each of the concerns in the presentation

MVC5_004 Understanding Convention over Configuration

Continuing to learn the why behind the how, we talk about one of the driving design goals of the
framework to streamline the application development process by assuming certain conventions
instead of being required to configure everything explicitly.

MVC5_005 Passing Data from the Controller to the View

Next, we observe the behavior of passing data from an ActionResult method in the Controller to a View
using ViewBag and a Model, then how to access those data elements in the View using the Razor

MVC5_006 Defining a View and Layout

Turning our focus to the View, we learn about the files that provide the chrome around the main part of
our page.

MVC5_007 Helper Methods in the View

Still focusing on the View, we look at the HTML class and its helper methods and how they generate
markup based on key infrastructure of the MVC Framework.

MVC5_008 Understanding Razor Syntax Basics

The Razor syntax is simple, but there are some edge cases that require discussion. Here we look at
everything youll ever need to know about Razor.

MVC5_009 Generating a Scaffolded App from an Entity Data Model

Now we start over with a new project and demonstrate how easy it is to create large swaths of
functionality in just a few seconds using the scaffolding features of Visual Studio to create CRUD style
Controllers, ActionResult methods and Views based on a Model.

MVC5_010 Introduction to Routing

Directing an incoming request to a Controllers ActionResult method is a key component of the MVC
Framework. Furthermore, the ability to compose outgoing URLs in the HTML markup to point to valid
web pages is equally important. Both of these features are handled by the ASP.NET Frameworks
Routing capabilities.

MVC5_011 Working with RouteValueDictionary in HTML Helper Navigation

When working with routes, there are extra segments that contain additional information to be used by
the ActionResult methods called RouteValues. Well look at the RouteValueDictionary to learn what it is
and how it is utilized.

MVC5_011-Challenge My Comic Books

Using much of what youve learned so far, youll build a simple master / detail application. Included in
the Code file link (below) is the project starting point and a few screenshots.

MVC5_011-Solution My Comic Books

Stuck? Want to see a different implementation? This video will show you how I would have (and did)
solve the challenge.

MVC5_012 Introduction to Data Annotations

By adorning your models properties with certain attributes representing display and validation
metadata, data annotations and the HTML helper class methods conspire to generate HTML for your

MVC5_013 Preserving Data Annotations using a Partial Metadata Class

If you use the technique we employed in lesson 9 to utilize our Entity Data Model as the basis for our
Views, you will need to take great caution when adorning Model properties with Data Annotations
because youre modifying generated code that could be re-generated in the future, thus losing your
changes. This video demonstrates how to create a class as partial so that you no longer have to worry
about that.

MVC5_014 Understanding MVC Application Architecture and the View

In this lesson we talk about the different kinds of models in an applications architecture, how to
structure your ASP.NET MVC application and the implications of each approach.

MVC5_015 Introduction to Model Binding

Another feature of ASP.NET MVC takes care of packaging data submitted in a form POST into a strongly
typed object and passed in as an input parameter to an ActionResult method. In this lesson we not
only learn more about this feature, but how and why it works.

MVC5_016 Creating an HTML Form with Labels and Other Form Controls
In this video we look at the Html helper class methods used to generate the Html form tag and form
controls to take control of the code emitted from our MVC applications. Featured are CheckBoxFor(),
DropDownListFor(), EnumDropDownListFor(), LabelFor(), ListBoxFor(), RadioButtonFor(), TextAreaFor(),
TextBoxFor() but we talk about many additional topics related to this like the using keyword,
Idisposable interface, and more.

MVC5_017 Introduction to Validation

Bob explains the Validation system of the MVC framework and how it works with Model Binding, Data
Annotations and even custom validation logic to protect the model from being in an invalid state. Also
discusses HTML helper methods to create validation messages and summaries of issues on the page.

MVC5_018 Adding Client-Side and Unobtrusive Validation

In this lesson we learn how the jQuery Validate and jQuery Validate Unobtrusive can be used to add
client-side validation that utilizes Data Annotations on the server, preventing the need for a full HTTP
Post to validate form submissions. We learn how to enable this functionality, how to make it
unobtrusive on our HTML5 using data-* metadata, and how to include these plugins using Nuget.

MVC5_019 Introduction to Cross-Site Scripting and the AntiForgeryToken

Bob explains how Cross-Site Request Forgery (CSRF) works and what measures (and its limitations)
that the MVC Framework takes to protect developers and users from malicious hackers two attempt
this form of Cross-Site Scripting (XSS). We learn about the AntiForgeryToken (RequestVerificationToken),
the ValidateAntiForgeryToken attribute, and the AntiForgeryToken method on the HTML helper class.

MVC5_020 Styling HTML Helper Method Output

In this method we learn how to add attributes to any HTML tag thats generated via a call to any HTML
helper method that renders markup. We add class and id attributes, create anonymous objects,
creating AdditionalViewData and ViewDataDictionary values, and talk about escaping reserved words
in Razor using the @ symbol.

MVC5_021 Returning Views, HTTP Errors and Redirecting Requests

Many of the ActionResult methods in the scaffolded templates use some sort of redirection after it has
completed some task such as adding, updating or deleting an entity. This video talk about the various
ways that redirection happens, and starts by talking about the View() method once again in more
detail: what does it do internally in the MVC Framework, and more.

MVC5_022 Layout Pages, RenderBody, RenderPage, RenderSection

In this lesson we dive deeper into layout pages, how to create multiple sections (other than just
rendering the body of the page into the layout), how to create and specify different layout pages for a
given View on a View by View basis, how to render a complete ASP.NET Web Pages page into a layout,
and more.

MVC5_023 Partial Views

In this video Bob demonstrates how to use partials views to send strongly typed model data from a
View to a Partial View which serves as a data template for each item in a model collection.

MVC5_024 Child Actions

In a similar vein of thought, Bob demonstrates how to create Razor fragments that can retrieve their
own view model rather than rely on the calling parent Views model. He discusses how to create child
actions, how to ensure theyre not called outside of the context of a parent action, and more.

MVC5_025 Caching Actions and Child Actions

This lesson explains your caching options, how to apply caching to an Action Result method or a child
Action, how to vary the cache by route segments, querystring parameters or form values, and how to
modify where the cache is saved whether on the server, on the web client or on a proxy server.

MVC5_026 Custom Routes

Up to now weve used the default route pattern to route incoming and outgoing URLs. In this lesson we
learn how to create new patterns and handle challenges from straying from the defaults.

MVC5_027 RESTful URL Design

In this lesson we tackle the constraints outlined in Representational State Trasnfer URL design. How to
create RESTful URLs, best practices and more.

MVC5_028 Attribute Routing

When we looked at custom routes, we said that we were implementing convention routing. MVC 5
introduced attribute routing which adds some benefits and simplicity to creating new routes.

MVC5_029 Filters
Filters allow developers to plug into the MVC processing pipeline at key points in the actions lifecycle.
In this lesson we learn about the built in filters and how to create custom filters to implement cross
cutting concerns.

MVC5_030 Areas
When our application grows large, we may need to keep our code base better organized. Areas not
only help to organize our code, but also allow us to apply new conventional defaults to entire section of
our sites; layout pages, routes, models, etc.

MVC5_031 Bundling and Minification

To improve the responsiveness of our application the first time a user accesses a given route, we can
make JavaScript and CSS files smaller, and bundle them together to reduce the number of requests to
construct the page. This video explains how to implement bundling and minification for our app.