January 10, 2010 22:33
In C#, internal means that something is visible within the whole assembly but not outside.
Sometimes that forces developers to isolate components/APIs by marking them internal and putting them in separate VS projects within a single solution. Such undoubtedly creative approach has its benefits but also has obvious drawbacks: increased compile time, complicated deployment, etc.
Of course, there are other reasons for splitting code over several assemblies, but if your reason is stated above, a small ReSharper plugin that can help.
Head over to better life with fewer assemblies!
RIANT: Restricted Internal Access iNspection Tool.
By specifying a more fine-grained visibility level, which is similar to the package one in Java, you can keep your components and APIs isolated but still located in one assembly:

If you like the idea - go ahead, download the plugin, play with it, and let me know what's missing!