The Complete ASP.NET MVC 5 Course

Learn to build and deploy fast and secure web applications with ASP.NET MVC 5
4.6 (2,692 ratings) Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
8,224 students enrolled
$19
$150
87% off
Take This Course
  • Lectures 138
  • Length 7.5 hours
  • Skill Level All Levels
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

About This Course

Published 5/2016 English

Course Description

ASP.NET MVC is a server-side web framework for building dynamic, data-driven web applications. Since its first release in 2009, it has gained a lot of popularity amongst developers using Microsoft technologies. If you want to get employed as a web developer at a company that utilizes Microsoft technologies, you need to master ASP.NET MVC.


In this course, Mosh, author of seven 5-star Udemy courses, takes you on a fun, hands-on and pragmatic journey to master ASP.NET MVC 5. 

You'll learn how to build and deploy fast and secure web applications with ASP.NET MVC 5. In 7.5 hours of high quality content (equivalent to a 500-page book), you'll learn how to:

  • Implement CRUD operations
  • Build forms with validation 
  • Build RESTful services using ASP.NET Web API
  • Use Entity Framework code-first workflow to build a model 
  • Implement security, authentication and authorization using ASP.NET Identity
  • Use powerful jQuery plugins
  • Optimize application's performance  
  • Build and deploy your applications 
  • And much more...



You'll start building a real-world video rental application within minutes. Every section includes a few bite-sized videos, and concludes with one or more coding exercises to help you master what you learn in that section. Finally, in the last section, you'll learn how to 

  • Deploy the application
  • Deploy the database 
  • Create custom build configurations (development, testing, staging, etc)
  • Store application settings in web.config and override them for different environments
  • Secure application settings and connection strings
  • And more...


Whether you're new to ASP.NET MVC or have some experience but are looking for a course to fill in the gaps, you'll love this course. On top of all the core features of ASP.NET MVC, Mosh teaches you a systematic way to build a feature end-to-end. And more importantly, he includes you as part of building a sophisticated feature end-to-end. So, he builds some parts and delegates the other parts to you. 


If you've taken any of Mosh's courses before, you know what you get. He is very passionate, clear and concise in his teaching. Every section and every lecture has been perfectly thought through to lead you on a step-by-step journey from zero to hero with no fluff whatsoever. If you're looking for 10+ hours of wasted time on the content you don't need and a rambling instructor, there are other courses you can enrol in.


So, if you watch all the lectures and do all the exercises, by the end of this course, you'll have the necessary skills to build real-world applications with ASP.NET MVC 5, or all your money back (within 30 days of taking the course).


So, if you're looking for an ASP.NET MVC course with 

  • A passionate coder and instructor who knows his craft
  • Perfect structure 
  • Balanced mix of theory and practice
  • Clear, concise and bite-sized videos 
  • Lots of real-world examples and coding exercises
  • Discussion of best practices 
  • World-class audio / video production


Don't look further. Enrol in the course now and learn to build and deploy fast and secure web applications with ASP.NET MVC 5.


FREQUENTLY ASKED QUESTIONS


1- Does this course cover ASP.NET Core 1.0? 

No! ASP.NET Core 1.0 is still an immature framework and it's going to take quite some time until it gets adopted for production use. That aside, it is not much different from ASP.NET MVC 5. It's designed on the same principles, but provides a few small improvements in different areas. So, the skills you'll learn in this course to build real-world applications will apply to ASP.NET Core 1.0 in the future as well.


2- Why should I pay for this course when there are lots of free tutorials available?

Free tutorials and YouTube videos are free for a reason. They introduce you to a few concepts here and there, but soon you'll find yourself jumping from one tutorial to another to fill the missing gaps. By taking a perfectly-structured course, you'll be confident that you're in good hands, right from the beginning all the way through to the very end. You pay for saving your precious time: the time that you can spend on the things you love. 

Plus, many of these free tutorials, including tutorials published by Microsoft on the official ASP.NET website, teach you poor practices. Throughout this course, Mosh points out some of these poor practices and explains in technical terms why you should avoid them. 


30-DAY FULL MONEY-BACK GUARANTEE

This course comes with a 30-day full money-back guarantee. Take the course, watch every lecture, and do the exercises, and if you feel like this course is not for you, ask for a full refund within 30 days. All your money back, no questions asked



ABOUT YOUR INSTRUCTOR 

Mosh (Moshfegh) Hamedani is a software engineer with 15 years of professional experience, mainly in building web-based applications. He is the author of seven 5-star Udemy courses with more than 20,000 students. He is passionate, pragmatic and motivational in his teaching. 


Do you want to learn how to build and deploy fast and secure web application with ASP.NET MVC 5?

If you enrol in the course now, you'll start building your first ASP.NET MVC app within a few minutes. Enrol in the course now and get started.

What are the requirements?

  • C# (at a minimum lambda expressions, LINQ)
  • Basic familiarity with web development (HTML, CSS, JavaScript, jQuery)

What am I going to get from this course?

  • Understand the MVC architectural pattern
  • Implement CRUD operations
  • Build forms with server-side and client-side validation
  • Build RESTful services using ASP.NET Web API
  • Use powerful jQuery plug-ins
  • Implement authentication and authorization using ASP.NET Web API
  • Use Entity Framework to query or update data
  • Understand and apply security best practices
  • Build and deploy applications
  • Create and customize build configurations
  • Manage client / server dependencies

What is the target audience?

  • Developers with no knowledge of ASP.NET MVC 5 who want to build web apps with this framework
  • Developers with some experience in ASP.NET MVC 5 who are looking for a comprehensive course to fill the gaps

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.

Curriculum

Section 1: Getting Started
02:48

A quick demo of the application we're going to build in this course. 

02:50

In this lecture, I'll explain all the building blocks of MVC architectural pattern and their responsibilities. You'll learn about models, controllers, views, routers and the benefit of MVC pattern. 

02:07

In this lecture, I'll show you the tools we'll be using to build our video rental app.

06:55

In this lecture, we'll create our first ASP.NET MVC app and I'll walk you through various files and folders in the project. By the end of this lecture, you'll know where everything should be. 

06:44

Next, I'll show you the building blocks of MVC architectural pattern in action. We'll add a model, a controller and a view to build a new page where we display the name of a movie. 

02:50

The default template that comes with ASP.NET MVC project template looks pretty boring. In this video, I'll show you how to replace it with a beautiful and modern theme.

Quiz
6 questions
01:55

A quick overview of how this course is structured.

Asking Questions
02:58
Section 2: ASP.NET MVC Fundamentals
00:22

A quick introduction about what you're going to learn in this section.

04:58

In this lecture, we'll examine action results in more detail. You'll learn about various types of results we can return from our actions. 

05:54

In the last lecture, you learned about action results, which are the outputs of our actions. In this lecture, you'll learn about action parameters, which are the inputs to our actions. You'll learn how ASP.NET MVC frameworks maps request data to action parameters. 

05:16

The default route in ASP.NET MVC works for most cases, but not always. In this lecture, you'll learn how to create a custom route with multiple parameters, and how to use regular expressions to apply constraints on these parameters. 

03:28

Convention-based routing is a poor way of creating custom routes. As the number of custom routes increases, sooner or later, it'll turn into a mess. In this video, I'll show you attribute routing as a cleaner and more maintainable way to create custom routes. 

04:03

In this lecture, you'll learn about ViewData and ViewBag and why you should avoid using them. 

03:48

There are times that we need to pass more than one model to a view. That's when we use a view model. A view model is a class the encapsulates the data and rules for a view. In this video, you'll learn how to create and use a view model. 

04:19

In this video, we'll explore the razor view syntax in ASP.NET MVC. You'll learn how to:

  • render lists
  • render content conditionally
  • render classes dynamically
  • use comments 
04:15

In this lecture, you'll learn how you can partial views to break up a large view with a lot of mark up, into smaller, more maintainable partial views. 

Article

Summary of what you've learned in this section.

02:17

As part of this exercise, you'll create two pages, one to display the list of customers and the other to display the details about that customer. 

01:45

In this lecture, I'll introduce you to the GitHub repository I've created for this course. With this repository, you can see my individual commits as well as solution to exercises.

00:24

Summary of what you've learned in this section and what is coming next.

Section 3: Working with Data
00:31

A quick overview of what you're going to learn in this section.

01:35

What is Entity Framework and why do we need it? In this short video, I answer these questions.

03:59

There are two different workflows to using Entity Framework: Database-first and Code-first. In this lecture, I explain how these workflows work and why I always prefer code-first workflow.

05:21

We use code-first migrations to bring the database schema up to date with the domain model of our application. In this lecture, you'll learn how to use code-first migrations to generate and migrate a database.

05:36

In this lecture, we extend the domain model of our app and introduce some complexity. Then, we use code-first migrations again to migrate the database.

04:18

Sometimes we need to deploy reference data with our application. Examples of this are list of genres, or membership types supported by our application. In this lecture, you'll learn how to seed the database using code-first migrations and ensure consistent reference data across different database environments. 

02:38

Code-first uses convention over configuration. While the conventions assumed by Entity Framework work in most situations, sometimes we need to override them. In this lecture, you'll learn how to override code-first conventions using data annotations. 

04:28

Now that you've learned the fundamentals of Entity Framework, it's time to replace the hardcoded data in our application with real data fetched from the database. This lecture shows you how.

02:38

Sometimes we need to load an object with its related objects. This is referred to as eager loading. In this lecture, you'll learn how to use eager loading to load load customers and their membership types. 

01:00

When using the code-first workflow, we use Package Manager Console quite often. In this lecture, I'll show you how to create a custom shortcut to quickly open up Package Manager Console.

Article

Summary of what you've learned in this section.

01:38

In this exercise, you'll slightly change the domain model of the application and use code-first migrations to bring the database up to date. Next, you use another migration to update existing reference data in the database.

00:56

As part of this exercise, you extend the customer details page and show various attributes about a given customer. You'll also add the Birthdate property to the Customer type and again use code-first migrations to bring the database up to date. 

01:29

In this exercise, you replace the hardcoded list of movies with the movies in the database. You'll also introduce a new type (Genre) and populate the corresponding table using code-first migrations. 

00:28

Summary of what you've learned in this section and what is coming next.

Section 4: Building Forms
00:16

A quick introduction about what you're going to learn in this section.

07:39

In this video, you'll learn the mark up we use to build modern and responsive forms. You'll also learn about common HTML helpers like LabelFor, TextBoxFor, DropDownListFor, CheckBoxFor, and so on.

02:56

In this video, you'll learn how to override the labels in your forms using the Display annotation.

07:33

Rendering drop-down lists requires a little bit extra work. This video teaches you how to encapsulate your data in a view model and render a drop-down list using @Html.DropDownListFor and SelectList.

03:48

In this video, you'll learn what model binding is and how it works. 

01:26

Our form is ready. Now it's time to save the data. This video shows you how to persist data using Entity Framework.

05:43

In this video, we'll re-use the form we created earlier to edit an existing customer. 

07:23

In this video, I explain the issues with TryUpdateModel in ASP.NET MVC and why you should avoid it. You'll also learn how to update data using Entity Framework.

Article

A quick summary of what you've learned in this section.

02:00

As part of this exercise, you'll build a form to add / edit movies. 

04:06

One of the common mysterious exceptions with Entity Framework is DbEntityValidationException. In this video, you'll learn what this exception is, how to find the actual source of the problem and how to resolve it. 

00:30

Summary of what you've learned in this section and what is coming next.

Section 5: Implementing Validation
00:24

A quick introduction about what you're going to learn in this section.

03:27

In this lecture, I'll show you the 3 steps you need to follow to add validation to your forms.

03:25

Validation errors are black by default. In this lecture you'll learn how to apply a style to them to make them stand out.

01:05

This lecture lists the standard data annotations that you can use in your ASP.NET MVC applications.

06:24

Standard data annotations are good, but not enough. Sometimes you need custom validation. In this lecture, I'll make up a business rule for our application and show you how to implement a custom validator for one of the fields in our form.

03:28

In this video, you'll learn a technique to remove magic numbers from your code and improve its readability and maintainability. 

04:05

As a usability best practice, it's good to display a summary message on top of a form with invalid fields. This lecture shows you how.

05:35

Client-side validation is not enabled in your ASP.NET MVC applications by default. In this video, I'll show you how to enable it. 

04:51

In this video, I'll show you a security vulnerability in our form that allows an attacker create customers on behalf of a user without their knowledge. This is referred to as CSRF or Cross-site Request Forgery. Once you understand how it works, you'll learn how to prevent it.

Article

Summary of what you've learned in this section.

01:41

In this exercise, you'll add validation to add/edit movie form.

06:11

In this video, I introduce you to what I call "pure view models". You'll also learn a few simple ways to refactor your code and make it cleaner and more maintainable.

00:30

Summary of what you've learned in this section and what is coming next.

Section 6: Building RESTful Services with ASP.NET Web API
00:20

A quick introduction about what you're going to learn in this section.

03:44

In this lecture, you'll learn about HTTP services or Web APIs and their benefits along with some real-world examples.

01:47

In this lecture, you'll learn the basics of RESTful convention for building http services or web APIs.

09:21

In this lecture, we'll build an API for CRUD operations around customers. 

03:58

In this lecture, I'll introduce you to a very useful, simple and lightweight Chrome plug-in for testing Web APIs. 

03:57

There are two issues in the implementation of the API we've built. The contract of this API is fragile and can break easily. Also, there are security holes in this API. So, in this video, I'll show you how to use a data transfer object to resolve these issues.

07:31

Mapping domain objects to DTOs and vice versa can be tedious. So, in this lecture, I'll show you a simple convention-based mapping tool AutoMapper. 

02:09

By default, ASP.NET Web API uses pascal naming convention in the JSON objects returned from Web APIs. But using objects with pascal naming convention is ugly in Javascript as we use camel casing in Javascript. In this lecture, I'll show you how to enable camel casing in Web API.

04:51

While we can simply return types like Customer or IEnumerable<Customer> from our APIs, to better confirm with RESTful conventions, we need more control over the generated response. In this lecture, I'll show you how to use IHttpActionResult to achieve that. 

Article

A quick summary of what you've learned in this section.

00:44

As part of this exercise, you'll build an API for CRUD operations around movies.

00:36

Summary of what you've learned in this section and what is coming next.

Section 7: Client-side Development
00:33

A quick introduction about what you're going to learn in this section.

06:47

In this lecture, you'll learn how to use jQuery AJAX to call an API. We'll use this technique to delete a customer.

03:36

The native confirmation box in JavaScript is pretty boring. So, in this video I'll show you how to display beautiful and modern Bootstrap dialog boxes.

01:29

A simple change in how you handle events in jQuery can have a noticeable impact on how much of the browser's memory your application uses. This video shows you how.

05:32

In most applications where we display tabular data, we often need to implement searching, sorting and pagination in our tables. In this video, I'll introduce you to DataTables plug-in, which gives you all this functionality without writing any additional code.

06:45

While you can initialize a DataTable using the existing data in the DOM, it's better and more efficient to load it using data from an API. In this video, we'll configure our DataTable to use the customers API as its data source.

03:37

Sometimes your APIs need to return hierarchical data. This video shows you the necessary steps required to do this.

02:09

When using DataTables plugin, you shouldn't remove rows from the DOM, because the data is still in the internal list of DataTable. In this video, I'll show you how to properly remove a row.

02:08

In this video, I'll briefly discuss a couple of things about performance of data tables when dealing with a large dataset, as well as refactoring our JavaScript code.

02:31

What are single page applications and what advantages do they provide? This video gives you the answers.

Article

A quick summary of what you've learned in this section.

00:22

As part of this exercise, you'll add DataTables to the list of movies. You'll also use Bootbox and jQuery AJAX to delete a movie.

00:33

A summary of what you've learned in this section and what is coming next. 

Section 8: Authentication and Authorization
00:21

A quick introduction about what you're going to learn in this section.

00:58

In this lecture, we'll explore the authentication/authorization requirements for our application.

02:33

There are various ways to authenticate users in ASP.NET MVC apps. In this lecture, I'll show you various authentication options and I'll explain when to use each.

04:13

ASP.NET MVC applications use a framework called ASP.NET Identity for controlling authentication and authorization. In this lecture, I'll give you an overview of the architecture of ASP.NET Identity.

03:14

In this lecture, you'll learn how to restrict access to certain actions to authenticated users. 

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Mosh Hamedani, Passionate Software Engineer and Best-selling Author

Moshfegh Hamedani is a passionate and creative software engineer with a strong focus on pragmatism and simplicity. He started programming at the age of seven on a Commodore 64. Later, during his high school years, he started learning C and C++ . In 2002, along with the first release of .NET, he shifted his focus to C#. Since then he has been involved in the design and implementation of numerous software projects, including modern web applications, mobile apps, desktop applications and frameworks.

Aside from his career as a software engineer, he truly enjoys sharing his knowledge with others. Since his early twenties, he has been teaching courses and running workshops on C#, ASP. NET, object-oriented programming and clean coding. He is author of 6 best-selling courses on Udemy and more will be coming soon.

Mosh has a Master of Science in Network Systems and a Bachelor of Science in Software Engineering. He is also a Microsoft Certified Application Developer, Technology Specialist (Web Applications) and Professional.

Outside the software world, Mosh is a photographer, a pianist and a passionate Latin dancer.

Ready to start learning?
Take This Course