Just wanted to share a simple approach for Onion Architecture that has saved me a lot of time engaging productivity for everyone on my team.

Photo by C Drying on Unsplash

Quick Reminder

If you couldn’t check my series about Clean Architecture feel free to take a look at them (sorry for the spam):

My simple template for Onion Architecture with .NET 5

Clean architectures are awesome, I don’t have any doubt about that. Highly scalable, fully testable, easy to evolve, easy to adapt to new requirements, etc etc etc.

But unfortunately, I must say that they are not for everyone. If you start adding Input Ports, Use Cases, Output Ports, Presenters, and also adding a DDD…

“ Anxiety arises from not being able to see the whole picture. If you feel anxious but you are not sure why, try putting your things in order.” — Marie Kondo

The Clean Architecture 🧹

We have seen what Hexagonal and Onion Architectures are, so the next step is to review what Clean Architecture means.

You can check the first two articles about Hexagonal and Onion architectures here:

What is Clean Architecture?

Architecture pattern promoted by Robert C. Martin (Uncle Bob) in 2012 trying to do one more step in architecture patterns when thinking about isolated, maintainable, testable, scalable, evolutive and well-written code. …

Everyone has tasted onions. In pizzas, hamburgers, salads, etc. But have you ever tasted Onion architecture in your code?

The Onion Architecture 🧅

After the Hexagonal Architecture article, now it’s time to talk about Onion Architecture.

You can check the first article of this series here about Hexagonal architectures

What is the Onion Architecture?

So, this architecture pattern was promoted by Jeffrey Palermo in 2008 trying to solve common problems when maintaining applications and also emphasizing the separation of concerns throughout the system. It was presented as an alternative to the well known Tradition Architecture:

I have been hearing this too long and I always wondered what hexagonal, onion and clean architectures really mean. I learnt a lot these last months and I want to share it.

I am sure that most of the software developers know the words of clean code, SOLID, clean architecture, hexagonal architectures, onion architectures, etc; but I suspect that most of them don’t know the truth about these amazing topics in software development. …

Finally we(yes, we are 3 members!!) are making some progress defining our architecture for this open source project. We don’t want to suffer with possible modifications in the future, so we are investing a lot of time in this topic in order to get a brand new and awesome backend architecture which provides us all the best benefits of modern distributed systems and of course best practices.

This was our first article when the idea was presented and I was looking for some people to help me on this, so if you didn’t read it please feel free to do…

I have been thinking about this during a while, and I finally decided to go open source for this personal project.

I would love to start this project as open source in order to keep growing with latest technologies. Also I want to start it because I’d enjoy how this application could get our life easier when looking for an apartment.

Imagine yourself after having an appointment to check if you like that apartment you saw on Internet. You probably liked it, but now you have a big question:

“Will it be quiet during the night?”

So, if you can…

David Pereira

.NET Core lover. Passionate about Software Architecture. Trying to learn every day.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store