ASP Net MVC Quick Start

Build your own public-facing CRUD (Create, Read, Update, Delete) website w/MVC and Entity Framework in a weekend.
ASP Net MVC Quick Start
File Size :
10.16 GB
Total length :
17h 41m



Brian Gorman


Last update

Last updated 12/2021



ASP Net MVC Quick Start

What you’ll learn

Understand the major pieces of the Microsoft ASP .Net Framework
Have a public-facing website with authorization, authentication, and real-world value to enhance your resume/electronic portfolio
Understand how to use the code-first approach to generating a database using Entity Framework
Discuss the differences between Models, Views, and Controllers
Have the tools to setup and host a basic CRUD Web Application online
Have a basic understanding of working with Git and GitHub
Ability to deploy an application to an Azure App Service with CI/CD from GitHub actions
Understand how to evaluate database calls and implement caching to aid with efficiency
Ability to work with Bootstrap and update your UI, including utilization of bootstrap modals and the bootstrap grid
Can implement Datatables .js in your project and quickly get a robust client-side grid
Understand how to utilize unit and integration testing with XUnit projects, Shouldly, Moq, and in-memory databases

ASP Net MVC Quick Start


You should at least be a little familiar with Web Programming in HTML, javascript, and CSS
We will go through installing the tools you need
We will cover everything you need to understand and be able to build and deploy a public-facing website to enhance your resume/e-portfolio


This course is a very quick workshop to take you through the basic actions that will be required for you to create an awesome, real-world CRUD web application in just a few hours (you could do it over a weekend very easily) using ASP .Net MVC, the Entity Framework (code-first development approach), and the built-in scaffolding capabilities of ASP .Net MVC.  In the end, you’ll have your own public-facing website to enhance your resume and show off your skills in your own e-portfolio for job interviews and applications!      MVC = Model, View, Controller, and is a well-known and established design pattern.  Microsoft has made it extremely easy and convenient to create your web solutions using this pattern.  In Microsoft’s MVC framework, we find that convention is favored over configuration, so as long as we follow a few simple guidelines, the system will do a lot of the work for us.      We’ll also be taking a quick look at how we can use the Entity Framework to easily model and create a database for us.  By using the code-first approach, we’ll simply create our models and then look at writing a DBContext to store the models.  We’ll also look at some of the more critical operations, such as building relationships and seeding our data.    After we’ve learned about the different aspects of our application, we’ll quickly create a couple of controllers and use ASP .Net MVC’s built-in view and scaffolding generators to easily build our CRUD operations against our database.   While working on controllers we’ll also look at Authentication, Authorization, and a couple of other quick security concerns.To make the solution more robust, we’ll learn about using repository and service layers to separate concerns, while also keeping our models and data in their own projects.  We’ll also implement integration and unit testing around these layers using XUnit, Shouldly, Moq, and in-memory databases.After creating the backend portion of the site, we’ll put DataTables.js on our Index view so that we can easily show the data, as well as provide built-in JavaScript tools that will filter and sort the data for us.  This will make your application “pop” when people look at it because it will be fast and easy to sort through the data and filter for results.Other things we will learn throughout the course involve the use of GIT for source control, pushing our repository to GitHub, and utilizing CI/CD through GitHub Actions to automatically deploy your solution to Azure.  With Azure being free now, you can easily utilize the robust platform solutions available at Azure without spending any money.  You’ll gain experience setting up an Azure app service, configuring the connection string to connect to your Azure SQL server and database, and you’ll learn about utilizing Azure Application Insights to  monitor your application, including writing your own custom events and exception handling.By the end of the course, you’ll be familiar with the major working parts of creating an ASP .Net MVC CRUD application and publishing to a public-facing website with a fairly nice and responsive UI.  You’ll have working knowledge of Models, Views, and Controllers, as well as how they interact to create a functional web application.  You’ll also be exposed to the Entity Framework and Code First Migrations with use of a SQL Server backend.  The best part is that although this sounds pretty daunting, it’s actually quite easy with a majority of the work done for us by convention and tools.


Section 1: Unit 1: Welcome and Overview

Lecture 1 The Story and Purpose of this course

Lecture 2 Introduction, Welcome, and Overview

Lecture 3 The evolution of this course and thoughts on the latest release

Lecture 4 Course Repository and Resources

Section 2: Unit 2: Getting Started: Setting up my Developer Machine

Lecture 5 Install Visual Studio Code

Lecture 6 Install Visual Studio 2022

Lecture 7 Add Some Extensions for Visual Studio 2022

Lecture 8 Install SQL Server Developer Edition

Lecture 9 Installing SQL Server Management Studio

Lecture 10 Verifying installation of SQL Server Data Tools

Lecture 11 Install GIT on your Windows machine [Linux and Mac likely have GIT already]

Section 3: Unit 3: Creating the Contact Manager Project

Lecture 12 Creating an MVC Project in .Net 6

Lecture 13 Ensure NuGet Packages are up to date

Lecture 14 Review, run, apply initial migration, change the connection string

Lecture 15 Create and Run the initial Migration

Section 4: Unit 4: Source Control

Lecture 16 Add a Local .gitignore file

Lecture 17 Creating the Local GIT Repository and Setting the Remote to GitHub

Lecture 18 Get a GitHub Account

Lecture 19 Create a new repository at GitHub

Lecture 20 Blow away your code and get it back

Section 5: Unit 5: Creating the Models (the “M” in MVC)

Lecture 21 Discuss Utilizing the Default Models Folder

Lecture 22 Create a “Models” Project For Reusability of your Models

Lecture 23 Create the States Model

Lecture 24 Create the Contact Model Part 1 – Constants and Properties

Lecture 25 Create the Contacts Model Part 2 – Annotations

Lecture 26 Commit changes and push to the Remote Repository

Section 6: Unit 6: Leveraging a new Database Project for Model creation

Lecture 27 Create a New Database Project

Lecture 28 Add References to Contact And State and Create a migration

Lecture 29 Update the Database and Review the Tables

Lecture 30 Rollback and Remove the Migration

Lecture 31 Add a Seed for States, then add the migration and apply it

Lecture 32 Commit and Push changes to the Remote repository

Section 7: Unit 7: Creating the Controllers and Scaffolding Views (the “C” and “V” of MVC)

Lecture 33 Create the States Controller and Scaffold Views

Lecture 34 Getting the DB Context Injected as a Service to the Contact Web Project

Lecture 35 Create the Contacts Controller and scaffold Views

Lecture 36 Fix the invalid state for Contacts Model on Create/Edit

Lecture 37 Create and Edit Contacts, fix some small code issues

Lecture 38 Rework Contacts Controller to get state data in one place

Lecture 39 Commit Changes and Push to Remote

Section 8: Unit 8: Use a feature branch developer flow to Implement Caching For States Data

Lecture 40 Create a feature branch

Lecture 41 Update States Controller To Cache States Data

Lecture 42 Update States Controller to Invalidate Cache on CRUD Operations

Lecture 43 Update Contacts Controller to pull States data from Cache first, then fall back

Lecture 44 Update Contacts controller to fix issues with disconnected data for states on Cr

Lecture 45 Update Contacts controller to fix issues with disconnected data for states on Cr

Section 9: Unit 9: Utilizing Services and Repositories and Adding Unit and Integration Test

Lecture 46 Use a Feature Branch and Create the Repositories Project

Lecture 47 Create the Services Project

Lecture 48 Create and Move operations for the States to the States Repository

Lecture 49 Create operations in the States Service and call to the service from the States

Lecture 50 Inject Services into the Program

Lecture 51 Add Unit Tests for States Service

Lecture 52 Finishing Up the Unit Testing for the States Service

Lecture 53 Add Integration Tests for the States Repository

Lecture 54 Continued Integration Testing for the States Repository

Lecture 55 Finalizing States Integration Testing

Lecture 56 Move Operations for Contacts to the Repository and Add Integration Tests

Lecture 57 Create Contacts Service Unit Tests and Replace Calls in the Controller

Lecture 58 Smoke Test and Push to remote, I have a conflict to resolve first

Lecture 59 Force push a history reset to main, then merge the PR

Section 10: Unit 10: Implement Authorization

Lecture 60 Lock down the controllers by authentication and authorization

Lecture 61 Add Authorization by Role to the states controller

Lecture 62 Create User Roles Service to ensure users and roles for admin user

Lecture 63 Wire up EnsureUsersAndRoles on Home Controller, Verify Admin access on states

Lecture 64 Demonstration: Contacts bleed across users/URLs are hackable

Lecture 65 Update Solution To Leverage the User Id In the Contacts Hierarchy

Lecture 66 Finish updates for Integration and Service Tests to Ensure Contact User Mapping

Lecture 67 Lock down contacts to specific users in the Controller

Lecture 68 Update the UI to hide the UserId from all contacts views – part 1 of 2

Lecture 69 Update the UI to hide the UserId from all contacts views – part 2 of 2

Lecture 70 Push changes and close some issues

Section 11: Unit 11: Updating the User Interface (UI)

Lecture 71 Adding Navigation Links and ensuring links only show to authorized users

Lecture 72 Update Navigation Links for highlighting the “active” tab

Lecture 73 Check in Changes, Update issues, create PR, Get the Datatables.js assets

Lecture 74 Add DataTables assets to the project

Lecture 75 Update the Contacts Index.cshtml view to leverage DataTables

Lecture 76 Create Prototype HTML for simple UI Testing

Lecture 77 Prototyping the new Create Contact Layout

Lecture 78 Clean up Contacts Create.cshtml view

Lecture 79 Clean up Contacts Edit.cshtml view

Lecture 80 Prototype Details Modal Dialog

Lecture 81 Implement Details Modal Dialog

Lecture 82 Implement Confirm Dialog for Delete

Lecture 83 Commit Changes, Push, Close issue and merge PR

Lecture 84 Clean up remaining pages and add Datatables for States Index

Lecture 85 Make the home page your own

Lecture 86 Push to GitHub and create two final issues

Section 12: Unit 12: Deploying your website to Azure

Lecture 87 Get an account at Azure [if you don’t have one]

Lecture 88 Azure Overview and Create a new Resource Group

Lecture 89 Create an Azure App Service

Lecture 90 Create an Azure SQL Database

Lecture 91 Associating the App Service database to your Azure SQL Database

Lecture 92 Add Automation for Database Migrations

Lecture 93 Smoke Test and push a change to validate CI/CD

Section 13: Unit 13: Monitoring your website with Azure Application Insights

Lecture 94 Add Telemetry for Azure Application Insights

Lecture 95 Reviewing your telemetry at Azure

Lecture 96 Add Custom Telemetry to your Application

Section 14: Getting Started [Previous Version – Retiring 2022]

Lecture 97 Information about the rest of these videos

Lecture 98 Introduction, Welcome, and Overview

Lecture 99 The Job Posting

Section 15: SETUP: MVC with the .Net Framework, Manual Deploy to AppHarbor public hosting

Lecture 100 Creating an MVC Project with the .Net Framework – Introductory Information

Lecture 101 Creating the Project

Lecture 102 Get Updates from Nuget Packages – Bootstrap 4, Jquery 3.4, and Entity Framework

Lecture 103 Revert the Entity Framework Update to Version 6.2 from Version 6.2

Lecture 104 Update Bootstrap styles to handle Bootstrap 4 [Nuget Packages already updated]

Lecture 105 Get a Bootswatch theme [Bootstrap/Bootswatch 4]

Lecture 106 Review and Discuss the Bundle Config

Lecture 107 Optional: Change the db to point at SQLExpress instead of LocalDb File

Section 16: Creating Models (The “M” in MVC)

Lecture 108 Creating The Local GIT Repository and Connecting to GitHub and BitBucket

Lecture 109 Creating your application at AppHarbor for free public hosting

Lecture 110 Adding a database and using Relase Config Transformations, push to AppHarbor

Lecture 111 Cool thing I learned: Sync to Multiple Upstream Remotes using VS IDE

Lecture 112 Contact web after the Setup is completed

Section 17: Creating Models (The “M” in MVC)

Lecture 113 Restore from Source Control and re-establish AppHarbor as a remote upstream

Lecture 114 An Overview of Models, Creating a working git branch, and create the State Model

Lecture 115 Creating the Contact Model – part 1

Lecture 116 Creating the Contact Model – part 2

Lecture 117 Adding a Database Migration, discussion of DB Context

Lecture 118 Update the database, rollback the migration, reapply the migration

Lecture 119 Create the States with a database Seed

Lecture 120 Committing Changes, merging, pull request, fetch with prune

Lecture 121 Contact Web after setting up the Models [MVC .Net Framework version files]

Section 18: Views and Controllers (The “V” and “C” in MVC)

Lecture 122 Create the States Controller and Views

Lecture 123 Adding Authentication Requirements to a Controller

Lecture 124 Adding a Default Role and Super Admin User [part 1]

Lecture 125 Adding Authorization by Role to the Controller [part 2]

Lecture 126 Creating the Contact Controller and Views

Lecture 127 Fixing the Scaffolded Views and Use Only the Logged in User Id

Lecture 128 Continue To Cleanup the Contact CRUD Pages

Lecture 129 Security fix: Locking Down Contacts to the Specific User

Lecture 130 Making Sure User Can Only See and Affect Their Own Contacts

Lecture 131 Checking in Changes, merging, and pushing with fixes to get AppHarbor Working

Lecture 132 Contact Web after initial Views and Controllers [.Net Framework Version Files]

Section 19: Working on the Overall UI – Getting our project ready to share with the world

Lecture 133 Adding Links to nav, tracking active link, use the whole page, set button styles

Lecture 134 Getting DataTables

Lecture 135 Adding DataTables to BundleConfig for scripts and styles [.Net Framework MVC]

Lecture 136 Modifying the Contacts – Index.cshtml view to reference and use DataTables

Lecture 137 Check-in changes to get ready for Create cleanup

Lecture 138 Cleanup the Contacts Create View [part 1]

Lecture 139 Cleanup the Contacts Create View [part 2]

Lecture 140 Cleanup the Contacts Create View [part 3]

Lecture 141 Cleanup the Contacts – Index View

Lecture 142 Cleanup the Contacts -> Edit page

Lecture 143 Cleanup the Contacts Details and Delete Views

Lecture 144 Check in, merge, sync, and deploy to App Harbor

Lecture 145 Cleanup the Contact and About views on the Home Controller

Lecture 146 Make the Home page your landing/hire me page

Lecture 147 Final Check in and push

Lecture 148 Contact Web after Working on the UI [.Net Framework Files]

Section 20: Completing Our Study

Lecture 149 How can we make the site better?

Lecture 150 Next Steps

Lecture 151 Course Wrap-Up

Section 21: DEPRECATED: Updates, Fixes, and Cleanup – still shows how to cleanup a repo

Lecture 152 Merging branches when there are likely some problematic files

Lecture 153 Setup Fetch with Prune – keep our remote refs clean

Lecture 154 Set our application to run with HTTPS, and perform some updates

Lecture 155 Get Facebook Working

Anyone who wants to have a public-facing full-stack website that shows your skills for your resume/e-portfolio,Developers making the switch from .Net Web Forms to MVC,Web Developers switching from Java, Ruby, PHP, or another framework to .Net,New ASP .Net MVC Developers,New Web Developers looking to build robust full-stack solutions,Any developer that wants to round out your full-stack web development skills

Course Information:

Udemy | English | 17h 41m | 10.16 GB
Created by: Brian Gorman

You Can See More Courses in the Developer >> Greetings from

New Courses

Scroll to Top