
Learn to build a supermarket management system with ASP.NET Core MVC, Entity Framework, SQL Server, and Identity, featuring inventory and cashier roles and CRUD operations.
Build a bare ASP.NET Core app to show how a framework maps requests and returns HTML. Highlight issues of manual HTML and tight coupling, and present MVC as the solution.
Explore why a framework is essential by comparing a bare net core app to MVC, highlighting separation of concerns, request mapping, and dedicated validation and authentication components.
Route browser requests to the controller, load data into the model, and render HTML through the view in the ASP.NET Core MVC pattern, highlighting separation of concerns.
Enable mvc framework in asp.net core by adding routing middleware, map controller route, and inject dependencies via add controllers with views into the services collection.
Learn to add a controller in an mvc app and map requests to action methods using the program.cs routing pattern, with a home controller and index method.
Create and return HTML using razor views in .NET 8 MVC by adding views, configuring IActionResult, and using conventions to map controllers, actions, and views for a categories page.
Learn how to pass parameters to action methods in ASP.NET Core by mapping URL patterns and query strings, handling optional and nullable integers, and returning content results.
Create a category model in the models folder, configure the view to use this model, and pass a category instance from the controller to render its ID, name, and description.
Explore how the mvc pattern maps requests to controller actions, populates models, and renders views—the three essential mvc parts—and apply CRUD to category data.
Create a shared layout in the views/shared folder, render each view within the layout's body, and use the _ViewStart file to centrally assign the layout to all views.
Enable static file middleware to map assets from the W-w-w root, include bootstrap css, and apply a bootstrap-based layout with a top navigation bar.
Learn to implement sections in a layout file, make them optional or required, and render header and body content in ASP.NET Core MVC.
Learn how a static in-memory repository powers an MVC app with create, read, update, and delete operations to manage seeded categories and populate the model for the controller.
Use the controller model and view triangle to implement an MVC page: load categories from an in-memory repository, bind them to the view, and render the list with Razor.
Use tag helpers to generate navigation links in a categories table, with asp-controller, asp-action, and asp-route-id, while applying defensive checks for a non-null list with items.
Learn to centralize using statements and tag helpers in the _ViewImports file, avoiding repeated imports across views and speeding up compile-time setup in asp.net mvc.
Explore model binding, receiving data from route or query via the HttpGet action method, and binding simple and complex types to load categories from an in-memory data store.
use tag helpers to create an HTML form on the categories edit page, posting to a controller action and binding fields like name and description.
Learn to handle http post submissions by decorating an action with http post, binding form fields to a category object, updating via the repository, and redirecting to index.
Add a hidden field for category id in the form with the asp-for tag helper to ensure the id submits, and replace get by id with a Linq query.
Apply data annotations to decorate model properties, enforcing the name field as required. Check model state in the controller and display errors with a validation summary and per-field messages.
Create the add category feature: add button navigates to the page, submits to store in-memory, validates empty names, and follows the model–controller–view order.
Implement the add category flow with http get and post actions, create the add view, validate the model state, persist via the repository, and redirect to the index on success.
Learn to render JavaScript in an ASP.NET Core MVC app to confirm category deletions with a delete action and a script section for confirmation.
Learn to deduplicate category forms by using a partial view in ASP.NET Core MVC, pass action context with the view bag, and render it in add and edit views.
Manage products by displaying, adding, editing, and deleting items using a category dropdown, with an in-memory product repository and a model, controller, and view workflow.
Implement a products list page using the mvc pattern by creating a products controller, binding a product model to a view, and loading optional category data from the repository.
Learn to use a view model to wrap the product model with a categories list for the add product page in an mvc app, and wire it through the controller.
Implement add product by rendering an add form with categories, binding a product view model, posting to the controller, validating input, displaying errors, and saving to the data store.
Add an edit link in the product list and create the edit action. Use a product view model, populate categories, and perform http post edit with validation.
Use a product partial view to deduplicate the ad view, edit view, and category code, update the products controller and views to support add and edit with validation.
Implement the delete product in mvc with a post action and an anti-forgery token, triggered via a form on the index view.
Learn to build an interactive cashier console that updates product details and transactions with partial page refresh, using category and product selection, cashier login, and JavaScript in Visual Studio.
Use partial views in .NET 8 MVC to modularize the cashier's console, separating concerns into product lists, details, category selection, and the selling form.
Populate the categories dropdown by building a sales view model with a selected category ID and a categories list, wired in the sales controller index action via the categories repository.
Learn to create a partial view for rendering the product list by category, with a corresponding action method returning a partial view result and a repository query by category.
Learn to dynamically render a partial view in a .NET 8 MVC app using jQuery load, targeting a div, and passing the selected category id to the partial endpoint.
Learn to highlight the selected product row using jQuery and a custom highlight class via site.css in a .NET 8 MVC app.
Display the selected product's details, including name and pricing, in a div via a partial view without refreshing the page, using a product id and jQuery to load details.
Implement a sell product partial in the sales controller by retrieving a product by id, returning a partial view, and rendering it with jQuery load into a div.
Prepare the sales form by building a view model for quantity and posting to the controller action method, and implement show/hide logic and initialization for product and category selections.
Implement quantity field validation for the submit action in this assignment video, enforcing a required field and values greater than zero, with a top error message.
Enable quantity validation with a range data annotation (min 1, max values) and show a top validation summary, then preserve the selected category and product after post back.
Learn to implement custom validation with a validation attribute in the sales view model, ensuring quantity to sell never exceeds stock and returns clear error messages.
Learn to complete the selling flow in a .NET 8 MVC app by updating product quantities and recording a transaction with cashier, product, date, time, and price.
Learn how view components offer a self-contained, reusable alternative to partial views in ASP.NET MVC. Implement a transactions view component with an invoke method and render it via component.invokeAsync.
Create a reusable transactions view component that shows today's transactions for the current user cashier one by passing a username to its invoke method and querying the transactions repository.
Design a transactions report with cashier names, start date, and end date filters, submit a view model to the controller, and display results via the repository's search method.
Build a transactions report using a view model with cashier name, start and end dates, and transactions list; implement index and search actions with a post form and anti-forgery awareness.
Implement a print button on the transactions report that triggers window.print via JavaScript and jQuery, and apply CSS print rules to hide non-print areas and support landscape layout.
Learn why clean architecture, against traditional layered and database-centric designs, separates use cases from UI and data access, enabling plugin-based components across MVC apps.
Apply use case driven development with clean architecture to implement category use cases—view all, view one, add, and delete—using core business entities and a data store plugin via dependency injection.
Implement a concrete in-memory category repository as a plugin by creating a data store plugin and wiring it to the ICategoryRepository interface. Explore the plugin architecture and dependencies.
Extract use case interfaces, wire them via constructor dependency injection in the controller, and register transient use cases with a singleton in-memory repository to connect categories.
Explore the implemented use cases for products and transactions, with dependency injection in program startup and controllers, highlighting a sell product use case that records transactions and updates stock.
Understand how Entity Framework Core maps application objects to a SQL Server database as an ORM, and install the EF Core SQL, Tools, and Design packages to run migrations.
Install and configure entity framework core packages for the sql plugin and web application using nuget, selecting the latest stable version for sql server, tools, and design.
Create an in-memory database context with code-first EF Core, define market context with DbSet<Category>, DbSet<Product>, and DbSet<Transaction>, and configure one-to-many relationships and seed data.
Run the initial migration to create the market management database in SQL Server, configure the connection string and DbContext, and generate tables categories, products, and transactions.
Learn to implement a sql server plugin with entity framework core by building a category repository using the market context, and supporting add, delete, get, and update operations.
Implement a product SQL repository for a SQL Server datastore plugin, wiring DbContext to add, delete, update, and fetch products with optional category loading.
Implement the transaction SQL repository with dependency injection, create and insert transactions, and build day and cashier queries using EF Core like functions for date range and contains keywords.
Dynamic dependency injection enables toggling between in-memory and SQL Server repositories by environment. Enables QA testing without slow database calls and demonstrates a plugin-based clean architecture.
Scaffold ASP.NET Core identity to add authentication and authorization, including login, logout, and register, wired to a database via Entity Framework Core with an account context using SQL Server.
Run identity db migrations for the account context to create authentication tables. Configure the correct connection string and apply the init identity migration to update the database.
Protect your MVC app with ASP.NET Core Identity by implementing authentication and authorization, applying the authorize attribute, and mapping Razor pages in the correct middleware order.
Add login and register links to the top right by embedding the shared login partial in the layout. Demonstrate login, logout, and the identity cookie flow.
Configure policy based authorization to restrict categories and products to the inventory department and the cashiers console to the sales department, while all users can access transactions.
Fix an authorization bug by moving the products action to the sales controller, updating dependency injection, views and partials, and rebuilding to ensure cashier transactions load correctly.
Are you ready to create amazing web applications with the latest and greatest technology from Microsoft? Do you want to get hands-on experience with the Model-View-Controller (MVC) pattern and learn how to craft dynamic web pages with Razor views, Tag Helpers and jQuery in ASP.NET CORE? Do you want to discover how to use Entity Framework Core and SQL Server to work with data? Do you want to secure your web apps with ASP.NET Core Identity and policies? Do you want to follow clean architecture and write code that is easy to maintain and test?
If any of these questions resonate with you, then you are in the right place!
What will this course teach you?
In this course, you will learn how to develop web applications with ASP.NET Core MVC using .NET 10, the newest version of the .NET framework core. You will start with the fundamentals of MVC and create a simple web app without a framework.
Then, you will add ASP.NET Core MVC framework support and learn how to handle requests with controllers, render HTML with views, pass parameters to action methods, and create model classes to load data.
Next, you will implement CRUD (Create, Read, Update, Delete) operations for categories and products using a static repository in ASP.NET Core MVC.
You will learn how to use ASP.NET Core Tag Helpers to create navigation links, forms, and hidden fields.
You will also learn how to validate user input with data annotations and custom validation attributes in ASP.NET Core.
After that, you will work on the cashier’s console for the supermarket management system. You will use partial views, jQuery, and ViewComponents to create interactive and reusable UI components in ASP.NET Core MVC.
You will also learn how to create a sales form and a transactions report with CSS for printing.
Then, you will learn to adopt clean architecture and integrate it into your ASP.NET Core MVC project. You will refactor your code to follow the principles of separation of concerns, dependency inversion, and single responsibility.
You will learn how to organize your code into projects and layers, and how to use dependency injection to decouple your classes in your ASP.NET Core MVC app.
Next, you will use Entity Framework Core and SQL Server to replace your static repository with a real database.
You will learn how to use migrations, query data with LINQ, and update data with change tracking.
Finally, you will implement authentication and authorization with Identity and policies. You will learn how to scaffold Identity, create user accounts, roles, and permissions, and limit user access based on policies. You will also learn how to display the cashier name on the sales form.
What are the benefits of taking this course?
By taking this course, you will:
Gain a solid understanding of ASP.NET Core MVC and the MVC pattern
Learn how to use ASP.NET Core Razor views and Tag Helpers to create dynamic web pages
Learn how to use Entity Framework Core and SQL Server to store and manipulate data
Learn how to implement authentication and authorization with ASP.NET Core Identity and policies
Learn how to adopt clean architecture and write maintainable and testable code
Build a complete web application with ASP.NET Core MVC from scratch
Get access to the source code and assignments for each section
Who is this course for?
This course is for anyone who wants to learn how to develop web applications with ASP.NET Core MVC using .NET 10. You should have some basic knowledge of C# and HTML, but no prior experience with ASP.NET Core MVC is required.
So, what are you waiting for? Enroll now and start your journey to become an ASP.NET Core MVC developer!