DEV Community

Nolan Miller
Nolan Miller

Posted on • Originally published at nolanmiller.me

Learn ASP.NET from Scratch

If you read my last post, you read all of the things that I'd like to learn this year, starting with ASP.NET Core. I've spent the past week gathering resources from Microsoft's documentation, blogs, forums and internet searches to create myself a 17 module learning plan.

If you're looking to get your feet wet on Microsoft's full stack web framework, then I hope these resources are helpful for you too.

FYI: This learning path assumes that you have a basic knowledge of C# syntax and a general knowledge of the available libraries. If you don't, Codecademy has a free course!

The ASP.NET Core Learning Path

Introduction to ASP.NET

1. dotnet cli

Module Goal: Be able to explain the most common commands with their options and use them throughout the development process.

Resources:

2. ASP.NET Web Application Starting Template

Module Goal: Be able to explain the purpose and use of each of the files and folders that are generated by the starting template of an ASP.NET application.

Resources:

3. Dependency Injection

Module Goal: Describe the purpose of Dependency Injection and be capable of configuring dependencies within ASP.NET's Dependency Injection framework.

Resources:

4. Application Configuration using CreateDefaultBuilder

Module Goal: Explain CreateDefaultBuilder's purpose and uses. Identify common configuration patterns in ASP.NET Core.

Resources:

Creating APIs with ASP.NET Core

5. Minimal API

Module Goal: Create an API that responds to requests with at least 4 different endpoints. Create an endpoint that returns multiple status codes based on a condition.

Resources:

6. Connecting Your API to PostgreSQL using Entity Framework

Module Goal: Connect the fifth module's API to a PostgreSQL database using Entity Framework and create API endpoints to handle CRUD operations.

Resources:

6a. Connect to PostgreSQL with ADO.NET

Module Goal: Branch the previous module's project and access the PostgreSQL database without using EF. Perform data calls directly on ADO.NET.

Resources:

7. Controller-Based API

Module Goal: Explain the differences and cost/benefit of a Controller-Based API vs a Minimal API. Refactor your Minimal API into a Controller-Based API.

Resources:

8. Adding Built-In and Custom Middleware

Module Goal: Identify most common ASP.NET middleware and be able to explain what it is used for. Create your own middleware function and mount it to the application.

Resources:

The Model-View-Controller Design Pattern

9. ASP.NET MVC Starting Templates & Basic Routing

Module Goal: Create an MVC application that responds to GET and POST requests at at multiple different routes.

Resources:

10. Binding Models to your Views in Razor Syntax

Module Goal: Create a Razor view from scratch. Create a model to attach to that view. Enable CRUD operations on the page model from scratch.

Resources:

11. Using Tag Helpers for User Input other Useful Things

Module Goal: Identify and explain the most common ASP.NET tag helpers. Handle different types of user input. Create your own custom tag helper.

Resources:

12. Using DataAnnotations to Validate Your Models

Module Goal: Identify and explain the most common ASP.NET DataAnnotations. Add validation to your model.

Resources:

13. Styling your view models

Module Goal: Describe common approaches to styling Views in ASP.NET Core. Implement CSS styles and connect the application to Bootstrap. Create a layout and edit its styles.

Resources:

14. ASP.NET Core Identity, and Adding Authentication & Authorization

Module Goal: Using ASP.NET Core Identity, add authentication to your application. Describe the common authorization methods used by ASP.NET Core, choose one to implement into your MVC application.

Resources:

  • Andrew Lock - ASP.NET Core in Action
    • 14.1 Introducing authentication and authorization - 402
    • 14.2 What is ASP.NET Core Identity - 412
    • 14.4 Adding ASP.NET Core Identity to an existing project - 423
    • 14.5 Managing users: adding new claims to users - 428
    • 15 Authorization: securing your application 432

Polish and Deploy Your Application

15. Add unit tests for your action methods using NUnit

Module Goal: Add tests to a controller of your ASP.NET application. Create tests that increase the confidence of the application working. Understand the basic syntax of NUnit as it relates to the form of a unit test.

Resources:

16. Publish your application with IIS Express

Module Goal: Describe the use of IIS Express and the term "publish". Explain the hosting model of ASP.NET Core. Publish your MVC application to IIS Express.

Resources:

16a. Deploy your application to Linux with Nginx

Module Goal: Provision an EC2 instance of Ubuntu. Configure Nginx to serve the application on a domain and point a DNS provider to the address. Bonus points for setting up CI/CD with Github Actions.

Resources:

17. Configure Logging to Monitor your application

Module Goal: Add searchable and useful logging to the application using Microsoft-provided logging to monitor the application.

Resources:

Top comments (2)

Collapse
 
bbauer82 profile image
bbauer82

Thanks for sharing.

Collapse
 
auyeungdavid_2847435260 profile image
David Au Yeung

Bookmarked!