I am trying to grasp the important concepts of Onion Architecture and had a question I was asking myself after reading an article. Look at the Domain in the architecture showed in this image: http://tonysneed.files.wordpress.com/2011/10/onion-proj.jpg?w=282&h=494
What is the practicality of separating the Domain.Entities and Domain.Interfaces in two separate projects instead of having one Domain project with a entities and Interfaces folder? I am not very experienced but I don't see a scenario where one would thank god he has the domain entities and the domain interfaces separated..
How about so that the interface definitions can be published to clients, as open-source, while the implementation remains proprietary. Just for one of many reasons why this is desirable.