Again - i\'m confused about DDD things :)
I have architeture (I\'m still working on it) that in short hand looks like that:
DataLayer:
EntityDao -> I
My thoughts:
2a. If your UI needs all data from entities of some type then yes, otherwise no. And FindAll() is hardly a use case.
2b. You should use Repositories from your Services, that's actually the only place where you should use it.
3 see 2b.
4 Yes. You should leave interfaces for repositories in your Domain, but implementation should be in Data Access. Then you can glue everything with some IoC container. Could be like this:
//in domain
public interface IUserRepository {
User GetById(Guid id);
}
//in data access
public class UserRepository : IUserRepository
{
public UserRepsitory(/* some orm specific dependencies */) { }
public User GetById(Guid id) { /* implementation */ }
}