ASP.NET Core MVC Online Course
About the Course
If you want to learn why ASP.NET Core is so popular and how to create and enhance a functional business website and get an overview of ASP.NET Core 5 Model View Controller (MVC), this is the perfect course for you.
After getting a basic introduction to ASP.Net Core 5, you will start building a real-world website that will display products and receive inquiries from the customers about the products they are interested in. By building this website, you will become familiar with the fundamentals of ASP.Net Core 5, learn how to set up and connect your application to the database, get to grips with scaffold identity concepts, work with MailJet to send emails, and a lot more. You will also learn how to scale an existing project, how to architect a mid to large scale project, and how to process payments correctly.
By the end of this course, you will have developed all the essential skills needed to create and scale a functional website using the ASP.Net Core 5 MVC framework.
Course Curriculum
Part 1 - Introduction
- Welcome
- What We Will Build? – Part 1
- What We Will Build in This Course? – Part 2
- Tools Needed
- Project Resources
- ASP.NET Core
- Creating a Project
- Project File
- Program.cs File
- Dependency Injection
- Startup Class – Part 1
- Startup Class – Part 2
- Routing in Model View Controller (MVC)
- AppSettings
- wwwRoot and launch launchSettings
- Model View Controller (MVC) Applications
- Performing Routing
- Views in the Default Project
Part 1 - Setting up a Database and Category Management
- Creating Your First Model
- Adding a Connection String
- Setting up DbContext
- Configuring a Complete DbContext
- Pushing a Category to a Database
- Checking a Database
- Adding a Category Controller – Part 1
- Adding a Category Controller – Part 2
- Getting All Categories
- Displaying All Categories
- Adding a Category – Part 1
- Adding a Category – Part 2
- Adding a Category – Part 3
- Assignment
- Assignment Solution
Client-side Validations and Category Update/Delete
- Validations in ASP.NET Core
- Client-side and Server-side Validations
- Passing Parameters on Redirect
- Edit and Delete Option
- Updating a Category
- Deleting a Category
- Adding Font Awesome
- Assignment
- Assignment Solution
Product Management
- Adding a Product Model
- Pushing a Product to the Database
- Adding the List and View Options
- Product Upsert
- Product Upsert User Interface – Part 1
- Product Upsert User Interface – Part 2
- ViewBag and ViewData
- What is ViewModel?
- Demonstration of ViewModel
- Introduction to SweetAlert
- Introduction to Summernote
- Creating a Product
- Displaying the Image Edit Option
- Product Upsert User Interface – Part 3
- ModelState Not Valid
- Deleting a Product
- Assignment
- Assignment Solution
- Eager Loading
- Modifying the Product Model
Part 1 - Customer Facing Website Management
- Navbar updates
- Creating ViewModel for the Home Page
- Working on the Home Index View
- Partial View
- Demonstration of the Home Page
- Details Virtual Machine (VM) and Action
- Displaying Product Details
- Configuring Sessions
- User Session GET method
- Adding Cards to Your Session
- "Remove From Cart" Button Logic
- Adding the RemoveFromCart Logic
Part 1 - Scaffold Identity
- Scaffold Identity Tables
- Scaffold Identity Pages
- Modifying Scaffolded Identity Tables
- Adding a Name and Phone Number to Registration page
- Configuring RoleManager
- Registering the First User
- Creating New Admin Users
- Changes in the User Interface (UI) for Admin
Part 1 - Shopping Cart and Inquiry Email
- Creating a Cart Controller
- Shopping Cart User Interface (UI)
- Deleting Cart Items
- Adding the Basic Authorization Levels
- Adding the Summary Functionality
- Designing the Summary Page User Interface (UI)
- Summary Solution
- Signing up for MailJet
- Adding MailJet to the Website
- Sending an Email
- Introduction to ProtonMail
- Accessing the AppSettings Configuration
- Using an Inquiry Template for Confirmation
- forEach() versus For
- Getting Data from the Email Template
- Demonstration of the Email Template
- Adding Authorization
- Resolving the Register Admin User Bug
Part 2 - Introduction
- Welcome
- What We Will Build?
- Topics Covered
- What We Built in Part 1?
- New Requirements
- Approaching Change in Requirements
- Getting Project Resources
- Project Overview of Part 1
Part 2 – Code Separation
- Introduction
- Working with Utility – Part 1
- Working with Utility – Part 2
- Separating Models
- Separating Data Layers – Part 1
- Separating Data Layers – Part 2
- Testing the New Migration
- Packages
- Bootstrap 5: Changes – Part 1
- Bootstrap 5: Changes – Part 2
- Cleaning up the Code
Part 2 - Repository Pattern
- Repository Interface – Part 1
- Repository Interface – Part 2
- Repository Interface – Part 3
- Category Repository
- Implementing the Category Repository
- Solution - Application Type Repository
- Product Repository
- Product Repository Continued
- Common Error Properties
Part 2 - Inquiry Details (Admin)
- Implementing an Inquiry Header Model
- Inquiry Details Model
- Pushing Inquiry Header and Detail to the Database
- Inquiry Repository
- Modifying the Repository Pattern – Part 1
- Modifying the Repository Pattern – Part 2
- Submit Inquiry
- Inquiry Controller and ViewModel
Part 2 - Inquiry Management
- Adding Inquiry Index View
- Inquiry.js
- Demonstration of DataTables
- Getting Inquiry Details
- Viewing Inquiry Details
- Converting Products to Carts
- Deleting Inquiry
- Implementing Toastr Notifications
- Adding TempData and Toastr to the Website
- Adding Alerts to the Application
Part 2 - Shopping Cart
- Change in Requirements
- Adding SqFt to the Model
- Adding SqFt to the Session
- Modifying the Shopping Cart
- Updating the Shopping Cart User Interface (UI)
- Updating the Cart User Interface (UI)
- Implementing the Update Cart Method
- Update Cart Functionality
- Update Cart on Clicking the Continue Button
- Scenarios for User Details
- User Details Based on the Role of User
- Summary Page SqFt Calculation
- Adding More Fields to the Order Summary Page
- Adding Validations
Part 2 - Order and Payments
- Adding an Order Header and Order Details Model
- Working on the Order Repository
- Creating an Order
- Creating a New Order
- Working on Order Confirmation
- Registering for Braintree
- Setting up Braintree – Part 1
- Setting up Braintree– Part 2
- Setting up Braintree Transaction Client – Part 1
- Braintree Payment Flow
- Setting up Braintree Transaction Client – Part 2
- Overview of Braintree Transaction
- Setting up the Braintree Server
- Getting Braintree in Action
- Clearing the Cart
Part 2 – Social Login
- Single Sign-On (SSO) Package and Version Update
- Registering with Facebook – Part 1
- External Login Changes
- Registering with Facebook – Part 2
- Social Login Association Samples
- Redesigning the User Interface (UI)
- Implementing Changes in the Login User Interface (UI)
- Resolving the Login Bug
- Designing the Register User Interface – Part 1
- Designing the Register User Interface (UI) – Part 2
Part 2 - Order Management
- Order ListView Model
- Order Index Action Method - Part 1
- Setting up Syncfusion
- Adding the Syncfusion Grid
- Customizing the Syncfusion Grid
- Working on the "Add Filter" User Interface (UI)
- Order List Filter Logic
- Validating the Cart Summary
- Implementing Order Details
- Working on Order Details View – Part 1
- Order Details View – Part 2
- Process and Ship Order
- Implementing the Refund Transaction Function
- Working on Refund Details with Braintree
- Updating Order Details
- Fixing Validation Bugs
- Fixing Admin Registration Bugs
Part 2 – Azure Deployment
- Seeding the Database – Part 1
- Seeding the Database – Part 2
- Testing DbInitializer
- Azure – Part 1
- Azure – Part 2
- Adding a Facebook Login Option