Learning ASP.NET Core

07 September 2017

There are many resources on the Internet which will help you learn ASP.NET Core - this article aims to offer some guidance on where to start with these based on our experience.

Before we start listing resources, we thought it may help to introduce the concepts which gave us the most trouble; you don't need to know what they all mean at this stage but you are going to hear about them very soon in your learning:

  • Dependency Injection - a fundamental principle in ASP.NET Core which was not integrated in previous version of ASP.NET; you have to be able to understand this to work with ASP.NET Core.
  • MVC - standing for ModelViewController; at Future Shock we had previously worked with WebForms awaiting the right time to move to MVC; version 1 of ASP.NET Core only supported MVC so this was the right time.
  • EntityFramework - we used this in some areas of more recent projects but decided to take the plunge completely in ASP.NET Core; the EntityFramework.Core version initially had some bugs and many limitations from previous versions but was way faster!
  • Migrations - you cannot use EntityFramework.Core without becoming involved in Migrations (framework generated updates to database structure).
  • Architecture of new applications in ASP.NET Core - what was the best or appropriate way to structure our code and files in an industry-standard manner.

 We started off with online training and created a few empty projects in Visual Studio to examine the project structure.

The most useful resources we found for learning ASP.NET Core version 1 were:

  1. Microsoft Virtual Academy - online video-based training courses taking about a day per course, a great way to get going. Some of the most useful course we found are:
    1. Introduction to ASP.NET Core with Visual Studio 2017
    2. Intermediate ASP.NET Core 1.0
    3. ASP.NET Core 1.0 Cross-Platform
    4. Visual Studio 2017: Web Development
    5. C# Fundamentals for Absolute Beginners
    6. Programming in C# Jump Start

    The first two will get existing ASP.NET C# developers going, the remainder are useful for those coming from other development environments. There are load more useful and interesting courses on MVA.

  2. Architecting Modern Web Applications with ASP.NET Core and Azure - an eBook from Microsoft which, whilst not available when we started learning, would have proved invaluable.
  3. ASP.NET Core Dependency Injection Deep Dive - a really thorough and complete explanation of this fundamental principle in ASP.NET Core
  4. Microsoft ASP.NET Core official documentation - full of very useful information and code samples, along with essential feedback and comments from other developers.
  5. Various other articles we found useful:
    1. ASP.NET - Writing Clean Code in ASP.NET Core with Dependency Injection
    2. Essential .NET - Dependency Injection with .NET Core
    3. ASP.NET Core - Write Apps with Visual Studio Code and Entity Framework
    4. Cutting Edge - Reflections on Code First, Persistence and Domain Modeling
    5. ASP.NET - Use Custom Middleware to Detect and Fix 404s in ASP.NET Core Apps
    6. ASP.NET Core - Real-World ASP.NET Core MVC Filters
    7. Essential .NET - Logging with .NET Core
    8. ASP.NET Core - Feature Slices for ASP.NET Core MVC
    9. Building simple plug-ins system for ASP.NET Core
    10. Building microservices with ASP.NET Core (without MVC)
    11. Building Complex UI Components with ASP.NET Core MVC Tag Helpers 

Finally we would like to share our Anatomy of ASP.NET Core - a quick reference card for the features available within ASP.NET Core version 1. We hope you find it useful.