It's about the schema, stupid!

One of my big realizations has been that Contract-first is not about the WSDL it's about the schema. CWeyer's tool generates a WSDL, but the value of the tool is that it allows you to stich together the schema for the data/messages that you have created.

A lot of customers today spend most of their time developing the schema for their data/messages and never even see or edit the WSDL. They simply use the XSD to generate the serializable classes that correspond to the schema they have defined and then stich them together using ASMX, WCF, etc. The WSDL is simply generated for them at runtime. This is a lot simpler than creating a WSDL upfront with the XSD and then using it to generate the implementation. In my view, this is not WSDL first, but it is Schema first. It is, however, still Contract-first design.

The big question I keep asking myself is if they have better WSDL tooling would they create the WSDL first? Or are people really just asking for better tooling (read integration) around the serializable classes generated from the XSD?

Ali

Comments

  • Anonymous
    March 04, 2006
    To use your own turn of the phrase -- blogging is also about giving us the links, stupid! (I hope you're laughing!)

    http://weblogs.asp.net/cweyer/archive/2003/11/21/39070.aspx

    Blake Handler
  • Anonymous
    March 04, 2006
    Thanks Blake, but that is an old link.

    The following is more relevant if you want to point to Christian's new tool: http://www.thinktecture.com/Resources/Software/WSContractFirst/default.html

    For another interesting take, I recommend reading:
    http://blogs.msdn.com/craigmcmurtry/archive/2006/02/01/522353.aspx
  • Anonymous
    March 05, 2006
    Ali,

    I think it's mostly about something that allows us to design messages explicitly. Personally, I'm fine if that generates schema or code (and much better if it generates both!), but the key is: I want a message designer, not a class designer.

    Take for example the "Service" designer in Whitehorse: All it does is allow you to define the methods that will later be the Webmethods in your ASMX. It makes it look like methods, it generates methods. It is as un-service-oriented as can be. That's not what we want :(

    Let me design my messaging, then operations can be done in a much simpler way as Christians WSCF does: just name them and select input and output messages. It really doesn't get much simpler than that!
  • Anonymous
    March 06, 2006
    Tomas,

    I agree with you. "Its about the messages, stupid!" was probably more accurate. Schema is just one way of representing the messages, although I think it is the most popular way.

    I've bene thinking about the operation inferance feature in Christian's WSCF tool. I'll write a post about this.

    Thanks,

    Ali