Gerben van Loon

Random thoughts on Microsoft Software Development and other related stuff

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!

Posted: Mon, Feb 1 2010 3:35 PM by Gerben van Loon | with 3 comment(s)
Filed under:

Comments

Gerben van Loon said:

Whooo... it's done! Had these articles in the pipeline for quite a while :-). They come from my years

# February 1, 2010 4:47 PM

Diego Figueroa said:

Hi Gerben van Loon

I agree with your approach, however:

1) ¿How can you show the industry this thesis?

2) ¿What criteria / guidelines are building a WCF service?

3) ¿Do you have a paper from Microsoft or MVPs which demonstrate this thesis?

# May 31, 2010 2:04 AM

Gerben van Loon said:

Diego,

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

Hope it helps,

Gerben.

# May 31, 2010 9:31 AM
Leave a Comment

(required) 

(required) 

(optional)

(required) 


Please add 5 and 6 and type the answer here: