Contract First

Drew
Marsh
talks about his approach to the contract first
development of web services and his answers to Aaron Skonnard’s

questions
.

In the past I’ve worked on projects where we’ve tried to build
with a contract first approach. As Drew says, in some ways this is
no different than producing any other service-like API and thinking
in isolation about how you will interact with some code usually
improves the design above the “whatever falls out of the mix”
alternative.

I think the issue of tools support is interesting. To be honest
the way I’ve usually gone about this is to write the outline ASMX
service code and associated message classes while checking the
generated WSDL to make sure it looks how I want. It’s too much
trouble (and too hard to teach other people) to write the WSDL by
hand and work backwards. Some design tools to write the WSDL and
the skeleton code at the same time would be useful but until we get
something mainstream that does that, I’m not too unhappy with the
current situation.