In a deployment perspective, I think that the usage of GAC (or shared assemblies) complicates the deployment process without adding much benefit.
Not only does it complicate the installation of new application, it also complicates the "upgrade" scenario for this applications.
I think I have read somewhere that it is better to keep the assemblies "private" (The main assembly and the dependency assemblies on the same directory) as much as possible. If multiple applications uses an assembly, they will have their own copy of it.
What is the benefit of using the GAC (other than the negligible performance upgrade)? Will it outweight the "configuration management" problems that it will present in the future? Or is it much better to keep the assemblies "private", if possible?
(Also, is there a scenario wherein one is forced to use the GAC?)
Thanks!
PS: I don't know if the term "private" assemblies properly describes the configuration I am talking about. I've opened a separate question for this.