Skip to content

Latest commit

 

History

History
300 lines (229 loc) · 7.98 KB

File metadata and controls

300 lines (229 loc) · 7.98 KB

ASP Dotnet Core Clean Architecture - Frequently Asked Questions

Introduction

Welcome to the Frequently Asked Questions (FAQ) section of the ASP.NET Core Clean Architecture project. This document aims to provide answers to the most common questions you may have while using or contributing to this project. Here, you'll find information on various topics, including adding new features, writing unit tests, updating the database, and understanding the project's architecture.

Our goal is to make it easier for you to navigate the project and find the information you need quickly. Whether you're a new contributor or an experienced developer, this FAQ will serve as a valuable resource to help you efficiently work with the Clean Architecture principles implemented in this project.

Please refer to the links and sections below for detailed answers and further documentation.

What is Clean Architecture?

For more detailed instructions, you can refer to this documentation.


How do I install the CleanArchitecture package?

For more detailed instructions, you can refer to this documentation.


Does this package have a Visual Studio extension version?

Yes, this package has a Visual Studio extension version that can be installed on Visual Studio 2022. You can download and install it from this link.


Does this package have a NuGet version?

Yes, this package has a NuGet version, and you can download and install it from this link.


How do I add use cases, entities, and additional languages using CLI?

For more detailed instructions, you can refer to this documentation.


How do I modify the database using the tools provided by this package?

For more detailed instructions, you can refer to this documentation.


How do I apply migrations using the tools provided by this package?

For more detailed instructions, you can refer to this documentation.


How can I best integrate GraphQL into my project?

You can find an article on this topic at this link, and the sample project for the article is available in this branch.


How can I best integrate gRPC into my project?

You can find an article on this topic at this link, and the sample project for the article is available in this branch.


How do I add Rate Limiting to my project?

To add Rate Limiting to your Clean Architecture project, you can follow the steps outlined in the Rate Limiting article. This article provides a comprehensive guide, including how to implement the Rate Limiting class, register it in the Program.cs file, and apply it to specific controller actions.

The implementation has been completed in the Rate Limiting branch of the Sam.CleanArchitecture repository.


How is exception handling implemented?

For more detailed instructions, you can refer to this documentation.


How is Functional Tests implemented?

For more detailed instructions, you can refer to this documentation.


How is Unit Tests implemented?

For more detailed instructions, you can refer to this documentation.


How is Integration Tests implemented?

For more detailed instructions, you can refer to this documentation.


How do I add Soft Delete?

For more detailed instructions, you can refer to this documentation.


How is User Auditing implemented?

For more detailed instructions, you can refer to this documentation.


How can I normalize character input in EF Core entities?

In EF Core, it's common to have data inconsistency when dealing with character variations, especially in multilingual systems. To ensure consistency, character normalization can be applied before saving entities to the database.

For example, you might need to normalize Persian or Arabic characters like "ي" to "ی" or "ك" to "ک". This can be done using EF Core's ChangeTracker to normalize string properties before data is persisted to the database.

For a detailed guide and implementation on how to normalize characters in EF Core, you can refer to this document.


How is Audit Log integrated into the project?

The Audit Log feature allows you to track and store changes made to your application's critical entities. In this project, you can choose between two storage options for audit logs: MongoDB or EventStore, providing flexibility based on your system's requirements.

For a comprehensive guide on configuring and using the audit logging feature, refer to the Audit Log documentation.


How is Database Seeding implemented?

For more detailed instructions, you can refer to this documentation.


How is Identity Seeding implemented?

For more detailed instructions, you can refer to this documentation.


How is Localization implemented?

For more detailed instructions, you can refer to this documentation.


How do I use Google Translate for localization messages?

For more detailed instructions, you can refer to this documentation.


How is Healthchecks implemented?

For more detailed instructions, you can refer to this documentation.


How are Response Wrappers used in this project?

For more detailed instructions, you can refer to this documentation.


How do I add a new repository?

For more detailed instructions, you can refer to this documentation.


How do I run the project with Docker?

For more detailed instructions, you can refer to this documentation.