Skip to content

A demo project to learn and implement nArchitecture by Engin Demirog. nArchitecture is an implementation of Onion Architecture.

Notifications You must be signed in to change notification settings

batugkocak/Clean-Architecture-Implementation-with-Core-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 

Repository files navigation

C# .NET Core Clean Architecture & CQRS Project Template [WIP]

This repository provides a comprehensive project template for implementing Clean Architecture and CQRS (Command Query Responsibility Segregation) with the help of nArchitecture Course by Engin Demirog in C# .NET Core. It includes best practices and advanced implementations to help you build scalable, maintainable, and testable applications.

Key Features

Core Architecture and Design Principles

  • Clean Architecture with DDD: Implement Domain-Driven Design (DDD) principles within a clean architecture framework.
  • CQRS Implementation: Separate command and query responsibilities for better scalability and maintainability.
  • SOLID Principles and Clean Code: Adhere to SOLID principles and clean code techniques for a robust codebase.
  • Advanced Repository Pattern: Implement both synchronous and asynchronous repositories for efficient data handling.
  • Dynamic Search Implementation: Create dynamic and flexible search functionalities within the application.
  • Automapper for Mapping: Use Response-Request pattern-based mapping with Automapper for smooth object transformations.
  • Advanced Entity Framework Integration: Follow best practices for Entity Framework Core implementations.
  • API Development: Build RESTful APIs with a focus on best practices and scalability.
  • Extension Methods: Learn to write and use extension methods to enhance code readability and reusability.

Domain Modeling and Application Infrastructure

  • Complex Domain Modeling: Model complex and related domain entities effectively.
  • Advanced Mapping Techniques: Implement advanced mapping strategies between domain models and data transfer objects.
  • Migrations with EF Core: Manage database schema changes with Entity Framework Core migrations.
  • Business Rules and Clean Code: Implement business logic following clean code principles.
  • Global Error Handling: Integrate global error handling to manage exceptions consistently.
  • Pipeline Development: Create custom pipelines for various application tasks.
  • Validation Pipeline: Use Fluent Validation for input validation within the pipeline.
  • Transactional Operations: Implement a transaction pipeline for managing transactional operations.

Caching and Logging

  • Caching Pipeline Implementation: Develop caching strategies within the pipeline for improved performance.
  • In-Memory and Redis Caching: Integrate both In-Memory and Redis caching solutions.
  • Logging Pipeline: Implement a robust logging pipeline to capture and manage application logs.
  • Serilog Integration: Use Serilog for structured and flexible logging.

Security and Communication

  • Security and JWT Implementation: Secure your APIs with JSON Web Tokens (JWT) for authentication and authorization.
  • Mailing Implementation: Integrate mailing capabilities for sending emails within the application.

Testing and Mocking

  • Test-Driven Infrastructure Development: Build a test-driven infrastructure to ensure high code quality.
  • Moq for Unit Testing: Use Moq for mocking dependencies in unit tests.

Getting Started

Clone the repository and explore the provided code structure and examples. Don't forget to review commits to learn how to implement.

About

A demo project to learn and implement nArchitecture by Engin Demirog. nArchitecture is an implementation of Onion Architecture.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages