I have a multi tiered project made up of three sub projects, i.e. Data access project, Business Logic project and Presentation project, where should interfaces be defined? I'm guessing that there should be interfaces defined in both the DAL and BLL.. In the context of testing the Business Logic Layer by using "test" data based on the interface it seems that maybe there should be a separate project with just the interfaces?
Any best practices or idea on how this should be arranged?