Why layer a service?
An important aspect of Service-oriented Architecture (SOA) design is that service boundaries should be explicit (being technology-neutral or agnostic), which means hiding all the details of the implementation behind the service boundary. This includes not revealing or dictating which particular technology is used.
Furthermore, inside the implementation of a service, the code responsible for the data manipulation should be separated from the code responsible for the business logic. Therefore, in the real world, it is always a good practice to implement a WCF service in three or more layers. The three layers are the service interface layer, the business logic layer, and the data access layer.
- Service interface layer: This layer will include the service contracts and operation contracts used to define the service interfaces that will be exposed at the service boundary. Data contracts are also defined to pass data in and out of the service. Fault contracts are defined if...