Aaron Skonnard has
posed questions to developers about their thoughts on "contract first" Web
Service development. Christian Weyer has a VS.NET add-in,
WsContractFirst, and there is some
initial (baby step) support for this type of design in
"Whitehorse", part of Visual Studio 2005. This is a well intended thought
process, however the feedback so far on Aaron's blog entry has the general
consensus: Microsoft needs to support the contract-first design model and
provide a toolset or it is dead in the water. Hopefully this will come to
fruition in Whitehorse. Code-First "design" is going to lead to chatty
interfaces, poor choice of data types (returning a DataSet versus more open
un-typed data), and systems that are too tightly coupled. I'd like to see some
design tools and best practices prevent this problem.