
This lecture introduces the history of .NET and several applications you can build with .NET. One of them is ASP.NET Core for building rich web applications and APIs.
Downloading the .NET SDK that includes the runtime for building and running the ASP.NET Core application.
Discover how pushed authorization requests in ASP.NET Core 9 enhance OAuth and OpenID Connect security by moving authorization parameters from the front channel to the back end.
Discover hybrid caching in ASP.NET Core 9, a blended in‑memory and distributed cache with stampede protection, configurable serialization, and get-or-create semantics demonstrated with sample endpoints.
The Minimal API's is a faster way to create APIs in ASP.NET Core unlike the Controller based APIs that requires the use of defining Controller. The Controller based APIs is more suited for complex APIs but the Minimal APIs can be used to create APIs that contain just few endpoints.
Explore form bindings in ASP.NET Core, showing how from form attributes bind form data to DTOs like records and classes, with form, body, query, root, header, and swagger support.
The Generic attribute is a new feature in C# 11.
Support global exception handling
Discover how ASP.NET Core enables serializing IAsyncEnumerable<T> with System.Text.Json, delivering efficient handling of async streams. Microsoft recommends System.Text.Json over Newtonsoft.Json for better performance when serializing and deserializing data in .NET.
ASP.NET Core 8 introduces the IAuthorizationRequirementData interface to define requirements for custom authorization policies.
Several ways to perform caching in ASP.NET Core
Defines configurations on how to run the ASP.NET Core application.
The host is responsible for configuring the application resources and running the kestrel server
A Middleware is integrated into the application pipeline and it performs work before or after the next middleware.
ASP.NET Core supports defining application configurations in various places such as app settings, environment variables and command line
Advanced and recommended ways to use work with configurations.
ASP.NET Core provides several ways to specify the environment the ASP.NET Core application should run on and also environment variables to store sensitive informations.
Following the "D" in the SOLID principle that states that "High level class should not depend on low level class. They should depend on Abstractions". ASP.NET Core makes heavy use of dependency injection through constructors and also provides several service lifetimes - Scoped, Transient and Singletons
Several ways to handler errors in ASP.NET core and the new IExceptionHandler that support global error handling in a refined way
Logging enables gaining insights and informations about what is going on in our applications and databases.
Guard clauses are a programming concept used to validate inputs or conditions at early in a method or function to ensure that they meet certain criteria. It ensures that errors are handled early in the application
Explore monolithic, layered, clean architecture, domain-driven design, and microservice architectures, their trade-offs, and how these approaches enable maintainability, testability, and scalable tax management apps.
Structuring the Domain Layer which is the heart of the software and the first layer to be developed in the Clean Architecture Project
Explore domain-driven design by modeling the country entity for a tax management app, using a base entity with an auto-generated ID and private setters to protect invariants.
Explore the team lead entity in the ASP.NET Core 9 ultimate guide, enabling user registration, login, and project and team member creation with defaults for date created, role, and active.
Define the team member entity in ASP.NET Core 9, including password, email, country, and role, linked to a team lead via a foreign key, with team leads creating members.
Define the project entity to let team leads create projects, assign team members and tasks, relate to the team lead, and track status, creation date, and member ids.
Explore the project task entity in the ASP.NET Core guide, detailing fields such as project id, task description, priority, assigned users, date range, active status, is completed, and completion rate.
Create the notification entity to notify users about application actions, capturing the title, description, user id, and date created.
Defines the contract interface defined in the Domain layer that will be implemented in the Infrastructure layer where the persistence technology is defined by using the "Separated Interface Pattern"
Defines the contract interface defined in the Domain layer that will be implemented in the Infrastructure layer that supports grouping transactions and executing it once.
Define the persistence layer with a DbContext bridging the application to SQL Server, configure EF Core with DbSets and entity configurations via fluent API, and register the context in program.cs.
Install the Entity Framework Core package, create a Tax management context inheriting DbContext, define DbSets, implement the domain unit of work, and apply configurations from assembly in OnModelCreating.
Configure EF Core DbContext with entity type configurations for country, notification, and projects. Enforce required fields, navigate with read-only collections, and use field-based bindings for related tasks.
Describe repository pattern as an abstraction between domain logic and database, implement a generic repository in infrastructure, and apply a unit of work with DbContext to manage adds and updates.
Configure SQL Server and apply ASP.NET Core 9 migrations using EF Core, then update the database to create tables and resolve cascade path errors.
Explore the notification controller that notifies users, supports adding notifications via a generic repository and unit of work, uses records as DTOs, and retrieves the current user for future authorization.
In this ASP.NET Core 9 lecture, team lead controller uses a generic repository with eager loading via includes, manages accounts and projects, and assigns team members to projects with JWT.
Manage the team member controller to view projects, project stacks, and todos, with upcoming authentication changes. Explain the complex logic for displaying project tags based on member assignments.
Apply migrations in an ASP.NET Core 9 project using dotnet ef migrations add for qualified entities and projects, then review changes and use the package manager console if needed.
Explore view models and details for a tax management app using C# records, map data between entities and view models with AutoMapper, and use DTOs to transfer only needed data.
Learn attribute based routing in ASP.NET Core 9 by mapping requests with route templates, pattern based matching, and constraints, contrasting with convention based routing and using minimal APIs when suitable.
Apply global error handling in ASP.NET Core with a global exception filter and the exception handler interface to log errors and return 500 in production, or show details in development.
Implement a custom log class in the domain layer, log to a queue via a singleton logger, and persist logs to the database using a global exception handler.
Explore cursor-based pagination in ASP.NET Core for efficient navigation of large datasets. Compare it with skip and take, and see how a cursor fetches the next ten.
Explore jwt authentication and policy based authorization with claims and roles in a tax management app, showing how to enforce access using claims, rules, and Swagger security.
Demonstrates using data protection APIs with a data protector class to encrypt payloads and unprotect to plaintext, wired in program.cs with data protection service and applied to encrypt user passwords.
Explore how cross-site scripting allows attackers to run malicious client scripts and steal cookies or tokens. Use HttpOnly cookies, same-site policies, and encode inputs and URLs with validation.
Explore razor pages in asp.net core 9, including project structure, layouts, and code-behind logic for dashboards and auth. Configure services, routes, and a rest client to fetch data from endpoints.
Explore the razor pages project structure from ground up, including the default program, http client factory, and JWT authentication; see how services call RESTful endpoints and enforce token-based authorization.
Explore team member management in project workflows, including assigning multiple members to projects and tasks, viewing assignments, and using a simple UI to demonstrate web API and Razor Pages.
Discover a companion course on Next.js, React, and TypeScript for building web apps, complementing the ASP.NET Core 9 ultimate guide.
INTRODUCTION
Are you ready to take your web development skills to the next level? Dive into the world of modern web application development with our comprehensive course on ASP.NET Core Web API and Clean Architecture. This hands-on course is designed to equip you with the knowledge and skills needed to build robust, maintainable, and scalable web APIs using the latest technologies and best practices.
COURSE HIGHLIGHTS
1. Introduction to ASP.NET Core: Begin by understanding the fundamentals of ASP.NET Core, its advantages, and the history and also the new features of ASP.NET Core
2. Setting Up Your Development Environment: Get your development environment configured for ASP.NET Core development, including installing the necessary tools and libraries.
3. The Essentials: Explore the essentials of building web APIs with ASP.NET Core, including routing, controllers, actions, and model binding.
4. Data Access with Entity Framework Core: Dive into data access using Entity Framework Core, and discover how to interact with databases efficiently while maintaining a clean separation of concerns and using a rich domain model.
6. Implementing Clean Architecture Layers: Learn how to structure your application using the Clean Architecture approach, with clear boundaries between presentation, application, domain, and data access layers.
7. Authentication and Authorization: Secure your API using authentication and authorization techniques, including JWT (JSON Web Tokens), and role and policy based access control.
9. Advanced Topics: Delve into advanced topics such implementing caching, background services, optimizing performance, and handling exceptions gracefully.
By the end of this course, you'll have the skills and confidence to create high-quality ASP.NET Core Web APIs using Clean Architecture, making you a valuable asset to any development team. Whether you're a beginner looking to start your web development journey or an experienced developer seeking to stay up-to-date with the latest industry practices, this course will empower you to build efficient and maintainable web APIs.
Join us on this exciting journey towards becoming a master of ASP.NET Core Web API and Clean Architecture!
PREREQUISITES:
- Basic knowledge of C# programming
- Familiarity with HTML (Web Designing)
- Familiarity with web development concepts (HTML, HTTP, REST)
Enroll now and embark on your path to becoming a proficient New Generation Software Developer developer with a solid foundation in Clean Architecture and ASP.NET Core Web API .