If I have two assemblies, one containing just business rules (assembly A), and the other that acts as an interface to external dependencies such as File system, DBs, web services, etc. (assembly B), should A reference B or should B reference A?
For Example:
If I have a SourceCodeInterpreter class (assembly A), should it instantiate a SourceCodeFileReader (in assembly B) to read in the data, or should the SourceCodeFileReader instantiate a SourceCodeInterpreter class after reading the source file and then start the interpreter?