WCF Best Practice #1: Don't build a WCF service
In addition to the WCF Best Practices that are already around. WCF Best Practice #1: Don't build a WCF service:
Be sure to know why you’re building a service for something. WCF has impact on development time, deployment, performance, etc. Don’t do it if you can’t articulate clearly why you need your logic as a WCF Service. I’ve seen quite people build services for almost anything while an assembly with a good interface also suited their needs.
About the same thesis is explained in the Microsoft Application Architecture Guide (2nd Edition). Chapter 19: Physical Tiers and Deployment. msdn.microsoft.com/.../ee658120.aspx.
The whole chapter is relevant, but "Recommendations for Locating Components within a Distributed Deployment" summarizes the most.
So reasons when you do choose to build a service could be:
- Security reasons (business Logic in perimeter network)
- Shared business logic (multiple apps or non .NET apps)
- Heavy resource consumption (long-running?)
- Separate maintainable
- Separate scalable
If not applicable: don't build WCF services!