Build Concert Booking application using .NET Core MVC, Entity Framework Core and ASP.NET Core Identity with Clean Archit
This Course Include the following key points. First of all it include clean architecture layers like domain layer , Infrastructure layer, Application layer and UI layer. This is a Beginner to the Advance level course on ASP.NET Core using Clean Architecture that will take you from basics all the way to advance mode. any one can learn concept of clean architecute and related topics but must to know the basics of ASP.NET CORE MVC.
What you’ll learn
- Clean Architecture based scratch project : Concert Booking Application.
- Four Layers like Domain, Application, Infrastructure and UI Layer..
- Repository Pattern with Unit of Work.
- Identity with Razor Pages.
- one role in the application that is Admin and rest of user like a Authenticated User.
- Proper Authentication and Authorization.
- Data Seeding , Role and User Seeding.
- Data Access layer known as infrastructure layer. Repository done using generic and unit of work.
- Application layer with extra utility services.
Course Content
- Introduction –> 4 lectures • 23min.
- Domain layer –> 3 lectures • 8min.
- Entity Relationship –> 2 lectures • 10min.
- Model Validation –> 1 lecture • 5min.
- Infrastructure Layer for Database Connection –> 1 lecture • 7min.
- Connection String –> 2 lectures • 6min.
- Repositories Interfaces in Application Layer –> 6 lectures • 15min.
- Implement Repository in Infrastructure Layer –> 5 lectures • 26min.
- Configure Identity –> 1 lecture • 10min.
- Migration –> 1 lecture • 4min.
- Controllers in UI Project –> 1 lecture • 3min.
- Services for Application Layer –> 5 lectures • 41min.
- Utility Service –> 2 lectures • 15min.
- Controller Action Methods with Views –> 7 lectures • 1hr 24min.
- Setup Theme For Project –> 1 lecture • 10min.
- Access Rights for Project – Add Role and Default Admin –> 4 lectures • 16min.
- Data Feeding using Admin Access –> 2 lectures • 6min.
- Home Page Design with functionalities –> 6 lectures • 52min.
Requirements
This Course Include the following key points. First of all it include clean architecture layers like domain layer , Infrastructure layer, Application layer and UI layer. This is a Beginner to the Advance level course on ASP.NET Core using Clean Architecture that will take you from basics all the way to advance mode. any one can learn concept of clean architecute and related topics but must to know the basics of ASP.NET CORE MVC.
Building a concert booking application using ASP.NET Core with Clean Architecture involves structuring a solution that is maintainable, scalable, and decoupled. This approach not only leverages the robust features of ASP.NET Core but also implements Clean Architecture principles, ensuring that the application’s business logic remains central and unaffected by external changes like database integrations or web frameworks. Here, we’ll explore the key components of this architecture and their roles within an ASP.NET Core application designed for concert booking.
Overview of Clean Architecture
Clean Architecture, advocated by Robert C. Martin, focuses on the separation of concerns by dividing the software into layers with strict boundaries. The main goal is to achieve a system where the business rules (domain) are at the core and all other dependencies (like UI, database, and external services) are externalized. This decoupling ensures that changes in external layers like the database or UI frameworks have minimal impact on the core logic.
Core Components of the System
Domain Entities: These are the core business models representing concepts such as Concert, Venue, User, and Booking. They contain only business data and behavior which are critical to the business domain.
Application Interfaces: This layer contains interfaces that define operations which can be performed from the outside world, such as IBookingService or IConcertRepository. These interfaces help in achieving Dependency Inversion, a key principle of Clean Architecture, which stipulates that higher-level modules should not depend on lower-level modules but should depend on abstractions.
Application Services: Implements the interfaces defined previously. This layer acts as a coordinator between the Domain and Infrastructure, handling business logic implementations and transforming domain data for delivery to external layers (like API endpoints or MVC Controllers).
Infrastructure: This layer implements persistence logic and any other operations on external services (e.g., sending emails). For a concert booking system, it would typically implement the IConcertRepository with Entity Framework Core, handle database migrations, and manage SQL or NoSQL database connections.
Presentation Layer: In the case of an ASP.NET Core application, this could be an MVC project, a Razor Pages web app, or even a REST API. This layer is only concerned with user interaction, and it utilizes Application Services to handle business operations.
Implementing Clean Architecture in ASP.NET Core
Setting Up the Solution
Start by creating an ASP.NET Core Web Application. Organize the solution into projects based on responsibilities:
Domain: Class library for business models and interfaces.
Application: Class library for application logic, DTOs (Data Transfer Objects), and interfaces implementation.
Infrastructure: Class library for database operations, file system interactions, etc.
Web: The entry point of the application, which could be an API or an MVC project.
Dependency Injection (DI)
ASP.NET Core comes with built-in support for dependency injection. Use this feature to wire up interfaces from Application to their implementations in Infrastructure. For example, in the Startup.cs file, configure services like