We have an enterpise web application that did consist of 4 compiled components (DLLs). Over a year ago, we began implementing more granular components in an attempt to isolate functionality, reduce coupling and reduce the risk of recompiling and deploying massive chunks of code. While no one argues that this approach has given us MUCH improved flexibility and speed to market when adding new functionality and patching bugs, the applications now consists of nearly 40 dlls. We have a naming convention that works well for identifying our components.
My question is: Is there any down-side(Performance, maintenance, etc…) to having an application with many dlls?
Edit: We are exploring the option of refactoring code into larger components which I think might be a regression of sorts…
A downside with many DLLs ? No
A downside with too many DLLs ? Sure.
So how many is too much?
An assembly is an means of organization, like namespaces and classes. Namespaces define logical boundaries, assemblies physical boundaries.
You should try to keep assemblies coherent, and view them as system modules.
And yes, there would be a (small) performance problem if you had hundreds of them. But with 40, I don’t see a problem.