Asp.Net Core 5 MVC ( aspnetcore5 | 28 hours )
Familiarity with the C# language and a basic understanding of HTML and CSS is required
ASP.NET Core is a powerful and effective framework that's open source and cross-platform. It helps you build cloud-ready, modern applications, such as web apps and services. You'll learn about the framework using C# 8, Visual Studio 2019, Visual Studio Code, Razor Pages, Blazor, Kestrel, IIS, HTTP.sys, Apache, Docker, AWS, and Azure.
You'll learn how to write applications, build websites, and deploy your web apps to AWS and Microsoft Azure.
You'll also learn basic design patterns, architectural principles, dependency injection, and other ASP.NET Core mechanisms.
Format of the Course
- Interactive lecture and discussion
- Lots of exercises and practice
- Hands-on implementation in a live-lab environment
Introduction to ASP.NET Core 5
- Explaining ASP.NET Core
- C# refresher
- What's new with .NET 5 and C# 9
- Websites and web servers
- Visual Studio Code
- Windows Terminal
Cross-Platform Setup
- Leveraging the .NET framework
- Getting started on Windows, Linux, and macOS
- Debugging Linux on Windows with Visual Studio 2019
Dependency Injection
- Learning dependency injection in ASP.Net Core
- Reviewing types of dependency injection
- Understanding dependency injection containers
- Understanding dependency lifetimes
- Handling complex scenarios
Razor View Engine
- Understanding the Razor view engine
- Learning the basics of Razor syntax
- Building a sample application with MVC
- Building a sample application with Razor Pages
- Differences between MVC and Razor Pages
Getting Started with Blazor
- Understanding the Blazor web framework and its different flavors
- Understanding the goal of what we are going to build using various technologies
- Creating a simple Web API
- Learning how to use in-memory databases with Entity Framework Core
- Learning how to perform real-time updates with SignalR
- Implementing the backend application for the sample application
Exploring the Blazor Web Framework
- Learning about server-side and client-side Blazor
- Learning how to create Razor components
- Learning the basics of routing, state management, and data bindings
- Learning how to interact with the backend application to consume and pass data
- Building a sample application using the two Blazor hosting models
APIs and Data Access
- Understanding what ORM and Entity Framework Core are
- Reviewing the different design workflows supported by EF Core
- Learning database-first development
- Learning code-first development and migrations
- Learning the basics of LINQ to query data against conceptual models
- Reviewing what the ASP.NET Core API is
- Building Web APIs that implement the most commonly used HTTP methods for serving data
- Testing APIs with Postman
Working with Identity in ASP.NET
- Understanding authentication concepts
- Understanding authorization concepts
- The role of middleware in ASP.NET and identity
- OAuth and OpenID Connect basics
- Integrating with Azure Active Directory
- Working with federated identity
Getting Started with Containers
- Overview of containerization
- Getting started with Docker
- Running Redis on Docker
- Accessing services running in a container
- Creating a Docker image
- Visual Studio support for Docker
- Multi-container support
Deploying to AWS and Azure
- Overview of cloud computing
- Load balancers and website health
- Publishing to AWS using Visual Studio
- Publishing to Azure using Visual Studio
Browser and Visual Studio Debugging
- PWAs
- Debugging with browser tools
- Debugging with Visual Studio
Integrating with CI/CD
- An overview of CI/CD
- An overview of GitHub
- CI/CD using GitHub Actions
Developing Cloud-Native Apps
- What makes an application cloud-native?
- The role of DevOps
- Understanding cost in the cloud
- Cloud storage versus local disk
- Infrastructure as Code
- Monitoring and health
ASP.NET Core 5 Design Patterns
- Test-driven development (TDD)
- The SOLID principles
- The MVC Pattern using Razor
- The MVC Pattern for Web APIs
- The Strategy, Abstract Factory, and Singleton Design Patterns
- Dependency Injection Deep Dive
- Options and Logging Patterns
- Structural Patterns
- Behavioral Patterns
- The Operation Result Design Pattern
- Layering
- Object Mappers
- Mediator and CQRS Design Patterns
- Vertical Slice Architecture
- Microservices Architecture