4.33 out of 5
4.33
418 reviews on Udemy

Building a ASP.NET MVC 5 Membership Website

In this course you will learn how to build an MVC 5 website using C#, Entity Framework, HTML5, CSS, JavaScript and Ajax.
Instructor:
Jonas Fagerberg
2,599 students enrolled
English [Auto-generated] More
Create a "real world" code-first database using Entity Framework.
Add and modify models, views and controllers to perform CRUD operations agains the database.
Use client-side and server-side validation.
Secure the controllers, actions and view content with authorization and roles.
Implement security with ASP.NET Identity (authentication, authorization and roles).
Use JavaScript, JQuery and Ajax to build a great end-user interface with asynchronous server calls.
Style the user interfaces using CSS3 and Bootstrap.
Create a responsive website.
Implement product subscription scenarios with registration codes.
Create an alternate way to login to the application.
Implement password reset functionality.
Register users with the site.
Manage users and their subscriptions.

Welcome,

This highly modular and proven no-fluff course will teach you how to implement a fully functional ASP.NET MVC 5 membership website complete with an Entity Framework code-first database and two user interfaces; one for administrators and one for the end-user. I have used the teaching technique used in this video course for many years with fast superb results for my students.

Gone are the days when you learned programming through short incoherent examples, in this course you will learn by implementing a complete web application while “looking over my shoulder” as I implement it with you in short step-by-step scenarios. This course is laser-focused and highly targeted to web developers just starting out who have a completed at least one beginner MVC 5 course prior to this course; the prerequisites for this course are that you have a basic understanding of MVC 5 and the C# language, other than that I only ask that you keep an open mind and are ready to learn.

Complete this course and be proud of your achievement. Host the web application online and showcase it in your CV on job interviews or wen negotiating your salary with your boss. You can even use your knowledge to work online selling your services on sites such as Fiverr and UpWork.

Technologies, frameworks and languages:

  • C# (you need to be proficient)
  • MVC 5 (create/modify models, views and controllers)
  • Razor syntax
  • HTML5/CSS3 (you need basic knowledge – I have included a basic PDF course for you to get started or to use as a refresher)
  • Bootstrap (used for styling and create a responsive design)
  • JavaScript/JQuery (you need basic knowledge)
  • Ajax (used for asynchronous server calls)
  • LINQ (to query the database)
  • Extension methods (to clean up your C# code and enable re-use)
  • HTML Helper methods (to clean up your HTML and enable re-use)
  • Use settings from the web.config file
  • Deploy to Azure (BONUS)

Three BONUS courses that will get off to a flying start:

  • HTML5/CSS3/Bootstrap [PDF] – Will teach you basic HTML5, CSS3 and Bootstrap.
  • MVC 5 For Beginners [PDF] – Will teach you the beginner stuff needed for this course.
  • Azure [VIDEO] – How to setup and deploy your web application to the Azure cloud.

FREQUENTLY ASKED QUESTIONS

1. Do this course cover ASP.NET Core 1.0?

No.

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 without getting the full picture; this will cause you to waste valuable time that you could spend with your family and friends or to make money. By taking a highly structured course, such as this one, you will learn the necessary skills in a real world scenario step-by-step.

I hope you love the course!

Sincerely,
Jonas Fagerberg

Welcome

1
Introduction

The first video in this section itroduces the website you will be building in this course and the second video show you how to setup the project in Visual Studio 2015.

2
How To Setup The Visual Studio 2015 MVC5 Project

This video will show you how to setup the Memeberships Visual Studio 2015 solution and how to add necessary folders and files.

The video also shows how to connect an already existing TFS source control folder to the Memberships solution. Disregard the parts about TFS if you are not using TFS source control.

When you open the solution source code project it might ask if you want to connect to Team Foundation, just answer No and the solution will open correctly.

You can find the source code committed in steps at the following GitHub repository:
https://github.com/csharpschool/Memberships/commits/master

Since JWPlayer require you to pay, I have put together a short tutorial
on how you can add the VideoJS player instead. Download the PDF below.

Module 1 - Adding the Admin menu to the navigation bar

1
Introduction to the Admin area and the Admin menu

This is an intrduction to what you will be creating in this module.

2
Adding the Admin Area

Adding the Admin area where the Admin Controllers, Actions and Views will be created.

3
Introduction to the Admin menu

This iintroductory video will describe what the menu look like that you will be creating in this section.

4
Creating the Admin Menu - Part 1

This is the second of four videos showing how to add the Admin menu. Adding the drop-down menu using a partial view.

5
Creating the Admin Menu - Part 2

This is the second of four videos showing how to add the Admin menu. Removing links from the navigation bar in the Admin area.

6
Creating the Admin Menu - Part 3

This is the third of four videos showing how to add the Admin menu. Hooking up the Hover event method using JavaScript/JQuery to open the Admin menu when the user hovers over the Admin navigation link.

7
Creating the Admin Menu - Part 4

This is the fourth of four videos showing how to add the Admin menu. Adding Menu items to the Admin menu.

Module 2 - Creating the Database

1
Introduction to Creating a Database With Entity Framework Code-First

This introduction video gives an overview of what you will be creating in this section.

With the help of the remaining videos in this section you will create the necessary entity model classes which will become the tables in the database that you will create with Entity Framework Code-First. You will apply certain attribute to the properties representing the table columns to restrict them and to force certain settings in the database.

2
Enable Migrations And Cerate The Database

Learn how to enable database migrations, configure settings and create the database.

3
Adding the Section table to the database

Adding the Section table to the database and look at its settings in the Server Explorer window.

4
Adding the Part table to the database

Adding the Part table to the database and look at its settings in the Server Explorer window.

5
Adding the ItemType table to the database

Adding the ItemType table to the database.

6
Adding the Item table to the database

In this video you will add the Item table to the database. This table has the most columns of all the tables in the database. It is one of the core tables which will contain items, or pieces of content, associated with one or more products.

7
Adding the Product table to the database

Adding the Product table to the database. This is one of the core tables which jolds information about products that can be associated with one or more subscriptions.

8
Adding the ProductType table to the database

Adding the ProductType table to the database. The product type defines what type of product it is, i.e. a book, a video, a course, ...

9
Adding the ProductLinkText table to the database

Adding the ProductLinkText table to the database. This table contain enticing link texts which are meant to get the user to click into a product and view it's content. The text is displayed in the green animated link on the product image.

10
Adding the Subscription table to the database

Adding the Subscription table to the database. This is one of trhe core tables which holds inforamtion about individual subscriptions that the user can subscribe to by entering a registration code. A sunscription can contain one or many products.

11
Adding the ProductItem table to the database

Adding the ProductItem table to the database. This is a connection table between the Product and the Item tables accociating one or more items with one or more products.

12
Adding the SubscriptionProduct table to the database

Adding the SubscriptionProduct table to the database.This is a connection table between the Product and the Subscription tables accociating one or more products with one or more subscriptions.

13
Adding the UserSubscription table to the database

Adding the UserSubscription table to the database. This is a connection table between the Subscription and the AspNetUsers tables accociating one or more subscriptions with one or more users.

14
Modifying the AspNetUser Table

Modifying the AspNetUser table through the ApplicationUser class. Three additional columns will be added to this auto-generated table making it possible to store additional data such as the first name of the registered user.

Module 3-1 - Creating the Admin User Interface for the Section entity

1
Introduction to the Minor Entities

This is an introduction to the Controllers, Actions and Views needed for the minor entities asscociated wth the Section, Part, ItemType, ProductType and ProductLinkText tables.

2
Adding a controller, actions and views for the Section table

Scaffold the controllers, actions and views for the Section table.

3
Modifying the Create View

Modify the Create view for the Section table.

4
Adding the _BackToListButtonPartial view

Create a partial view containing a "Back to List" button which will navigate back to the Index view of the current controller.

5
Modifying the Edit View

Modify the Edit View creating buttons instead of links and use Bootstrap to style the view.

6
Modifying the Details View and create a partial view called _EditButtonPartial

Modify the Details View creating buttons instead of links and use Bootstrap to style the view. We will also create a partial view called _EditButtonPartial which will navigate to the Edit view of the current controller.

7
Modifying the Delete View

Modify the Delete View and replace the Back To List link with the _BackToListButtonPartial view.

8
Modifying the Index View (Part 1 of 4)

Modify the Index View and add a new partial view called _CreateButtonPartial which will navigate to the Create view associated with the current controller.

9
Modifying the Index View (Part 2 of 4)

Add a class called SmallButtonModel which will be used when creating a partial view containing the table buttons.

10
Modifying the Index View (Part 3 of 4)

Add a a partial view called _SmallButtonPartial which will be used for each button in the partial view containing the table buttons.

11
Modifying the Index View (Part 4 of 4)

Add a partial view called _TableButtonPartial using the _SmallButtonPartial view for its intrinsic buttons.

Module 3-2 - Adding controllers for the rest of the Minor tables

1
The Part table - Adding Controller, Actions and Views

Adding Controller, Actions and Views for the Part table.

2
The ItemType table - Adding Controller, Actions and Views

Adding Controller, Actions and Views for the ItemType table.

3
The ProductType table - Adding Controller, Actions and Views
Adding Controller, Actions and Views for the ProductType table.
4
The ProductLinkText table - Adding Controller, Actions and Views

Adding Controller, Actions and Views for the ProductLinkText table.

Part 4-1 - Creating the Admin User Interface for the Item entitiy

1
Introduction to the Major Entities

A brief description of what we will be implementing in this and the next module for the Item, Product and Subscription tables.

2
Scaffolding the Controller, Actions and Views for the Item table

In this module you will scaffold and modify the controllers, actions and views for the Item table.

3
The GetPropertyValue Extension Method (1/2)

Add an extension method called GetPropertyValue which will be used when fetching Items.

4
The GetPropertyValue Extension Method (2/2)

Add an extension method called GetPropertyValue which will be used when fetching Items.

5
The ToSelectListItem Extension Method (1/2)

Add an extension method called ToSelectListItem which will be used when displaying items in drop-down controls.

6
The ToSelectListItem Extension Method (2/2)
Add an extension method called ToSelectListItem which will be used when displaying items in drop-down controls.
7
Altering the Create view (1/4)

Add the Create view for the Item controller and replace some of the textboxes with drop-downs.

8
Altering the Create view (2/4)

Alter the Create view for the Item controller by changing a property data type in the Item entity class, updating the database and changing the textbox to a checkbox.

9
Altering the Create view (3/4)

Styling the links to Bootstrap buttons in the Create view.

10
Adding an item to the Item table

Add items to the Item table to have some data to work with.

11
Altering the Create view (4/4)

Changing the textbox for HTML content into a text area to allow for multiple rows.

12
Altering the Edit view

Create a model object for the drop-downs in the controller for the Edit view and style the it with Bootstrap.

13
Altering the Details view

Styling the Details view with Bootstrap and partial views.

14
Altering the Delete view

Styling the Delete view with Bootstrap and partial views.

15
Altering the Index view

Styling the table in the Index view with Bootstrap and replacing the links with buttons created with a partial view.

Part 4-2 - Creating the Admin User Interface for Product and Subscription

1
Introduction to the Product and Subscription controllers, actions and views
2
Adding product data

Add data to the minor entities associated with the Product table to have some data to work with when adding products later.

3
Adding the ProductModel class

Add the ProductModel class which is used to transport data from the Product controller to its views.

4
Adding the Convert Extension Method

Add the asynchronous Convert extension method that will convert a collection

of Product objects into a collection of ProductModel objects.

5
Adding the Product Controller, Actions and Views
6
Altering the Product Index View (1/2)
7
Altering the Product Index View (2/2)
8
Altering the Product Create view
9
Altering the Product Edit view
10
Altering the Product Details view

Add a new Convert extension method which converts a single Product into a ProductModel instance and use it to create the model for the Details view.

11
Altering the Product Delete view

Use the Convert extension method added in the previous video to create a model for the Delete view. Also delete a product to see that the view is working.

12
Adding the Subscription Controller, Actions and Views

Part 4-3 - Creating the Admin User Interface for the ProductItem entity

1
Introduction to the Conector Entities

Connector entities are tables which are used to create a many-to-many relationship in the database.

2
Adding a controller, actions and views for the ProductItem Table

In this module you will scaffold and modify the controllers, actions and views for the ProductItem table.

3
Adding the ProuctItemModel class

Add the ProductItemModel class which transports data from the controller to its views.

4
Altering the ProductItem Create view

Styling the view with Bootstrap and changing textboxes to drop-downs.

5
Altering the ProductItem Create Action

Adding a model to the action methods and make them asynchronous. The model is rendered with the view.

6
Overloading the Convert Extension Method

Add an overload for the Convert extension method to handle object conversions from a list of ProductItem objects to a list of ProductItemModel objects.

7
Altering the ProductItem Index view
8
Altering the ProductItem Edit view

Saving the ProductId and ItemId sent to the view when it was rendered in hidden fields called OldProductId and OldItemId; these ids will then be used to remove the old item when the drop-down selections has changed and the user clicks the Edit submit button. A transaction will be used when removing the old values and storing the new values to make sure that both changes will be propagated to the database.

9
Overloading the Convert Extension Method

Add an overload for the Convert extension method to handle object conversions from a ProductItem object to a ProductItemModel object.

10
Altering the ProductItem's HttpGet Edit Action

Create a method called GetProductItem which fetches ProductItem from the database based on a product id and a item id. This method will then replace the default call to the FindAsync method in the HttpGet Edit Action.

11
Adding the CanChange mehod (Intro)

This is an introductory video to the GetChange method which checks if a ProductId-ItemId combination can be changed in the ProductItem table.

12
Adding the CanChange mehod (Implementation)

Implement the GetChange method which checks if a ProductId-ItemId combination can be changed in the ProductItem table.

13
Adding the Change method

Explains how to implement the Change method which alters a ProductId-ItemId combination in the ProductItem table.

14
Altering ProductItem's HttpPost Edit Action

Add calls to the CanChange and Change methods to persist the changes to the database for the ProductItem instance.

15
Altering the ProductItem Details Action

Send in two parameters instead of the default one and call the GetProductItem method we created in a previous video.

16
Overloading the Convert Extension Method
17
Altering the ProductItem's Details view (1/2)
18
Adding the EditButtonModel class

Add the EditButtonModel class which is used to send ids to the _EditButtonPartial view.

19
Altering the ProductItem's Details view (2/2)

Altering the _EditButtonDetailsPartial view to use the EditButtonModel class as its view; the partial view is then rendered from the Details view.

20
Altering the ProductItem's Delete View

Change the view to use the ProductItemModel class as its view model. Use the _EditButtonetailPartial view and the EditButtonModel class to replace the Edit link with an Edit button in the view. Alter the Delete action to take two parameters and call the GetProductItem method instead of the FindAsync method to fetch the desired Productitem to remove from the database. Style the other links to buttons with Bootstrap classes.

Part 4-4 - Creating the Admin User Interface for the SubscriptionProduct entity

1
Creating the SubscriptionProduct's Controller
2
Adding the SubscriptionProductModel class
3
Altering the Extension Methods
4
Adding the GetSubscriptionProduct method
5
Altering the Controller Actions
6
Altering the views 01
You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
4.3
4.3 out of 5
418 Ratings

Detailed Rating

Stars 5
223
Stars 4
112
Stars 3
53
Stars 2
13
Stars 1
17
236d98eb942e0479f198205c9de90099
30-Day Money-Back Guarantee

Includes

26 hours on-demand video
1 article
Full lifetime access
Access on mobile and TV
Certificate of Completion