A VS.NET Add-In for "Contract First" development
Disclaimer: There is a good chance you have already
heard of this Add-In and/or the concept of contract-first development of Web
Services. I just felt I would be remiss for not having a link to it ... even if
it has existed longer than this blog has. Heck, even if I've just made it easier
to find, I've done my part.
As I've said before, if you're designing and developing Web Services, the
most important thing you should be thinking about is what that XML message will
look like on the wire. The easiest way to do that is to create the WSDL document
first. I know this isn't very intuitive the first couple of times, but if you're
comfortable with XSD, you can probably copy/paste/modify from an existing one
without too much trouble. Another option to creating the WSDL is to use a tool
like Kamiak's
Omniopera.
Once you have the contract, the next step is code generation. To do this, you
can use wsdl.exe from a VS.NET Command Prompt. But what if you want properties
instead of fields ... or collections instead of arrays ... or if you want your
service to validate the incoming message? Well, Christian, over at Thinktecture, has something for you. WsContractFirst,
or WSCF (pronounced: Wizz-kaff - haha) is a VS.NET
Add-In that does all this for you and more whether you need proxy code for the
client or stub code for the service. The next version (0.4) will also contain a
command prompt interface. I recommend you check it out.