This repository is a personal project designed to help me learn, understand, and apply the principles of modern .NET development. By building this blog solution from scratch, I aim to deepen my understanding of .NET Core (updated to .NET 8) and related technologies.
The primary goal of this project is to create a scalable ASP.NET Core MVC application while mastering key concepts of .NET development. This blog solution serves as a learning platform for me to experiment with advanced .NET features and best practices.
Here are the key concepts and features I am focusing on as I build out this project:
- .NET Core MVC Development: Learn, understand, and create MVC websites from scratch using .NET Core 8 and C#.
- Entity Framework Core (EF Core): Use EF Core in a code-first approach to perform CRUD operations on a SQL Server database.
- Repository Pattern: Understand and implement the repository pattern for data access.
- Domain-Driven Design (DDD): Create domain-first models and structure the project accordingly.
- Model-View-Controller (MVC) Pattern: Explore and apply MVC patterns in ASP.NET Core.
- Authentication and Authorization: Implement login, registration, and role-based authorization using Microsoft Identity.
- Dependency Injection (DI): Apply dependency injection to manage services effectively in the application.
- Model Validation: Add and use ASP.NET Core model validations to enforce business rules.
- ViewData and TempData: Pass data from models to views using ViewData and TempData.
- Bootstrap 5 Integration: Build responsive and user-friendly interfaces using Bootstrap 5.
- Bootstrap Alerts: Display notifications and feedback to users.
- Image Upload: Enable image uploads to third-party hosting providers using their SDKs.
- WYSIWYG Editor: Add a rich text editor with image upload functionality for an enhanced user experience.
- Explore and implement advanced topics in ASP.NET Core (.NET 8) as they arise during the project.
This project is a work in progress, and I am continually updating it as I learn and apply new concepts. While the primary focus is on learning, the end goal is to have a functional blog application that demonstrates my understanding of the mentioned technologies.
Hey everyone! Very excited to be joining this project! Thank you Sam for being here!