I have an application that uses the 3 layer 2 tier business model, namely Presentation, Business and Data Layers with Application and Service Tiers. We have already decided to use a WCF service on its own tier for all the Data Layer requests (CRUD). The question I have now is whether or not to combine the Business Layer with the Data Layer in the WCF Service, and then the UI makes calls to the service which handles ALL Business and Data Operations.
I am opposed to this idea, as the service in my opinion should be a dumb service, which only handles CRUD operations. The Business layer should be on the application side, but encapsulated in its own layer, also being the only layer to access the Data Layer.
I might be being plain silly, but I would like to have the internet's say on the matter, as well as any pros and cons if possible.
All responses are appreciated!
If there is any chance that another presentation layer, such as a website, will need access to the business and data layers, then it makes sense to create the following layers on the service side:
Now you have a nice, maintainable, and deployable microservice that is specific to a particular domain in your problem space.
Check out Martin Fowler's article on microservices for further details on the subject.