…for Data based services
There are two basic problems with using WCF to expose data services and both boil down to producing too many methods
1) You have to create a minimum of 5 methods per type that you want to expose (CRrUD)
This is basically – “I have too many types of things to expose”
2) You have to create a new method every time a client comes up with a different way to query the data
a. Get Orders by Product
b. Get Orders by Customer
c. Get Order By OrderId
d. Get Orders by Category
e. Etc
This is basically “There are too many ways to query my data”
There is one other reason that is sometimes overlooked, which is you have to modify all those methods when you want to do something across the board, like service side paging or filtering out rows based on the current customer. These use cases are difficult to apply in an aspect oriented fashion and often require the modification of many different pieces of code.