What do you mean by domain model? Do you mean only classes created by an EF or T4 template? Or do you mean real-domain objects where the generated classes are combined with another partial class containing real business methods?
In the first case, you can simply exchange the assembly with the client. In the case of a service, it creates a tight connection between the service and the client, which is usually considered bad practice. But there are still scenarios in which WCF is used instead of remote access, in which case co-assembly is a common scenario.
In the latter case, the point: DO NOT ADD domain objects with clients of your services. Domain objects and their methods are intended for maintenance, not for the client. Use custom DTOs or objects created from service help.
If you work with web services, you must follow a simple rule: your model does not cross the physical boundary. This means that the model is internal to the service, and the client does not use it.
source share