February 11, 2005
@ 06:48 AM

Aaron Skonnard says I am clearly wrong with my demand that one shouldn’t have to look at WSDL/XSD/Policy. Well, at this point in time the tooling makes it indeed difficult to ignore angle brackets. But that’s not a reason to give up. I also find the “it all has to start at the angle bracket” stance overly idealistic.

I can type up an XML Schema in notepad, I can even type up a WSDL in notepad. As much as one would like to have it different, both “skills” are not so common amongst the developer population. I would think that for the majority of ASP.NET Web Services in production today, their developers completely ignored the XSD/WSDL details. But even if that were different: The rubber hits the road when we talk about policy. Can you type up a complete and consistent set of policy assertions for integrity and confidentiality and authentication using Kerberos and vX509 tokens without looking at the spec or a cheat sheet? How about combining that with assertions for WS-AT and WS-RM? As long as we keep the story reduced to XSD and WSDL, dealing with angle brackets might something that someone could reasonably expect from a mortal programmer who has a life. One we take policy into the picture, we better start asking for tools that hide all those details. The interoperability problems of getting secure, reliable and transacted web service work together are far harder than just getting services to talk. That’s part of the contract story, too. Yet, I cannot imagine that anybody would seriously demand that we all sit down and explicitly write these endless sequences of policy assertions and then feed our tools with them. At least I don’t want to do that, but that may just be me getting too old for this stuff.

Friday, February 11, 2005 4:17:55 PM UTC
Amen, brother :) - While it is certainly good to know the protocol beneath, it shouldn't be a requirement for everybody. I can use email with knowing the details of the SMTP/POP3 protocol, program ASP.NET without knowing about the ETag and Range headers and certainly use web services without knowing WSDL. Yes, there certainly are projects when you have to dig deeper, hit the pedal to the metal and code your own policy in notepad, but I doubt that we are talking about the majority of developers here, you struggle hard to learn/use all the new stuff in a sensible manner _while_ having a day job at the same time!!
Friday, February 11, 2005 9:36:45 PM UTC
The root of this conversation is that we still don't have good enough tools.

Suppose we had a tool which:

1) Visually designed a contract
2) Used WSDL as it's default serialization format
3) Warned whenever we designed something which was non WS-i compliant
4) Warned whenever we designed something which conflicted with ASMX/WSE/Indigo/Glue/Axis/SOAP::Lite capabilities

Then it sounds like Clemens, Aaron and Tim would all be happy.

So, the question is - where is this tool in Whidbey?

Saturday, February 12, 2005 11:29:58 AM UTC
Good god, I agree with you.
Sunday, February 13, 2005 4:26:09 PM UTC
I'm all for contract first, but realistically this is not where we're heading is it? Starting with XML is a pretty ridiculous proposition IMHO - as you say very few people average people, and i'd bet even some of the XML gurus, who could do the whole thing in XML by hand. It's important to understand what the standard does and possibly even to know what the tool generates, but generating by hand or even with a tool specifically to gen the schema/contract? Tools may help some but you'd still need to know all the details. Do we as developers really need to be intricately involved with how the Web Service protocol functions? I think not... we all have better things to do when we build applications, no?

The key is really the tools and we're getting there slowly. But, even with these tools I think overemphasising contract is a mistake. A Web Service is implementation and designing on implementation is just plain wrong.

It looks to me the way Indigo is going (Interface -> WSDL and much improved attribute support for control) is the right balance without completely going back into the stone age and hand coding angle brackets and schemas...

Ultimately it's all a protocol. When's the last time you coded at the TCP/IP protocol level? Or when you generated HTTP headers manually? Or RPC when you were doing COM? This stuff belongs in the plumbing...
Monday, February 14, 2005 12:43:50 AM UTC
I can program in X86 assembly language. The tools I use today are good enough that, not only do I no longer program in assembly, I don't even look at it -- except in two cases. 1) When debugging a particularly nasty problem, and 2) when debugging my use of code for which I don't have the source.

I imagine my use of WSDL will some day be similar.
Curt Hagenlocher
Friday, February 18, 2005 6:53:39 PM UTC
No trackbacks? Well, here's my take: http://www.innoq.com/blog/hw/2005/02/18/wrong_wrong_wrong_and_again_wrong.html
Hartmut Wilms
Thursday, September 01, 2005 2:10:56 AM UTC
Come try our site!
Comments are closed.