Introduction
Components are an important building block of software. In terms of software architecture, there are a lot of principles regarding components that should be adhered to (high cohesion, low coupling, no cycles etc.).
Problem
I am struggling with the transfer to C#. In C#, there are different levels which could represent components: projects in a solution, namespaces in a project, sub-namespaces in a namespace, classes in a sub-namespace.
Example
E.g. when determining dependency cycles between components, one should know the components. Is it enough to avoid cycles between projects of a solution or do we need to avoid cycles between namespaces in a project etc.?
Question
What is a reasonable level to consider when talking about components in C#?
dn1h is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.