I\'ve seen this question posted here previously but I\'m not satisfied that I understand the complete ramifications. The problem is what return type should a data layer that
1) It's best to return an IList so that the results can be put into any object that implements that interface, rather than forcing the caller into using a List. For example, the caller might wish to have the results returned to an ArrayList, this wouldn't be possible if you had the results returned to a List. ArrayList doesn't inherit from List, but it does implement IList.