Skip to content

Commit ee7530e

Browse files
committed
Update README.md
1 parent 2c3b818 commit ee7530e

File tree

1 file changed

+44
-2
lines changed

1 file changed

+44
-2
lines changed

README.md

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,13 @@ If you like or are using this project to learn or start your solution, please gi
3939
<!-- * [Built With](#built-with) -->
4040
* [Getting Started](#getting-started)
4141
* [Features available in this project](#Features-available-in-this-project)
42-
* [Project description](#roadmap)
42+
* [Project description](#project-description)
4343
* [Design patterns Used](#roadmap)
4444
* [Class diagram](#roadmap)
4545
* [Contributing](#contributing)
4646
* [Licence Used](#Licence-Used)
4747
* [Contact](#contact)
48+
* [Support This Project](#Support-This-Project)
4849
<!-- * [Acknowledgements](#acknowledgements) -->
4950

5051
## Onion Architecture
@@ -157,14 +158,55 @@ Below features will be implemented in infrastructure layer. You can plug and pla
157158
- [ ] Hangfire
158159
- [ ] Advanced Pagination
159160

160-
<!-- - [ ] SignalR -->
161+
## Project description
162+
163+
we can see that all the Layers are dependent only on the Core Layers
164+
165+
<details>
166+
<summary><b>Domain layer</b></summary>
167+
<p>
168+
Domain Layers (Core layer) is implemented in center and never depends on any other layer. Therefore, what we do is that we create interfaces to Persistence layer and these interfaces get implemented in the external layers. This is also known and DIP or Dependency Inversion Principle
169+
</p>
170+
</details>
171+
<details>
172+
<summary><b>Persistence layer</b></summary>
173+
<p>
174+
In Persistence layer where we implement reposistory design pattern. In our project, we have implement Entityframework which already implements a repository design pattern. DbContext will be UoW (Unit of Work) and each DbSet is the repository. This interacts with our database using dataproviders
175+
</p>
176+
</details>
177+
<details>
178+
<summary><b>Service layer</b></summary>
179+
<p>
180+
Service layer (or also called as Application layer) where we can implement business logic. For OLAP/OLTP process, we can implement CQRS design pattern. In our project, we have implemented CQRS design pattern on top of Mediator design pattern via MediatR libraries
181+
</p>
182+
<p>In case you want to implement email feature logic, we define an IMailService in the Service Layer.
183+
Using DIP, it is easily possible to switch the implementations. This helps build scalable applications.
184+
</p>
185+
</details>
186+
<details>
187+
<summary><b>Infrastructure Layer</b></summary>
188+
<p>
189+
In this layer, we add our third party libraries like JWT Tokens Authentication or Serilog for logging, etc. so that all the third libraries will be in one place. In our project, we have implemented almost all important libraries, you can plug & play (add/remove) based on your project requirement in StartUp.cs file.
190+
</p>
191+
</details>
192+
<details>
193+
<summary><b>Presentation Layer</b></summary>
194+
<p>
195+
This can be WebApi or UI.
196+
197+
</p>
198+
</details>
161199

162200
## Licence Used
163201
[![MIT License][license-shield]][license-url]
164202

165203
See the contents of the LICENSE file for details
166204

167205

206+
## Contact
207+
208+
Having any issues or troubles getting started? Drop a mail to amit.naik8103@gmail.com or [Raise a Bug or Feature Request](https://github.com/Amitpnk/Onion-architecture-ASP.NET-Core/issues/new). Always happy to help.
209+
168210
## Support This Project
169211

170212
If you have found this project helpful, either as a library that you use or as a learning tool, please consider buying me a coffee:

0 commit comments

Comments
 (0)