Drew raises an interesting point about the design of the SoapClient class in WSE 2.0. I must admit that when I was evaluating the early and interim builds of WSE 2.0 I did wonder the same thing. In the end I decided not the raise an issue because I thought that the approach they took might actually result in some good implementation patterns emerging around proxy construction.

Whilst its tempting to just throw the bits out there on the wire using a simple (even static) method call longer term it could bite you in the butt, especially in situations where your prototype code ends up going to production and you are suddenly asked to add security, address or other cross cutting concerns.

I'm sure Drew has evaluated these scenarios - but would everyone? I think the greater issue here is that WSE doesn't really provide an integrated designer experience beyond the settings dialog (an issue that I did raise during the review phase). My hope is that WSE 3.0 and Indigo add first class support for designing complex service agents without having to drop into code (except in the most specialized circumstances).

Given that I am a huge designer fan, hell, I even feel there is scope for this functionality to be added now . . .