WSCF - Web Services Contract First

Christian Weyer, Buddhike de Silva

There has been a lot of buzz around contract-first Web Services design & development lately. A number of people think that it is a good thing and that we finally should reach a state where we all can live and breath it. But most people have been complaining about the lack of tool support for the so called 'first step':

  • Design your contract's data, messages and interface
  • Generate code from the contract

This first step can be done either in code or can be done with XML and XSD. As it turns out a number of enterprise-related projects prefer to take the second option. Therefore a tool is needed to ease the pain that shows up with angle brackets.

thinktecture is proud to present the next version of the very successful and freely available WSCF tool.

WSCF offers a simple yet powerful WSDL Wizard that abstracts away all the nitty-gritty details of WSDL and therefore does not give room for making errors and wrong assumptions just by trying to use and applying everything that can be done stated by the original WSDL specification. The current version 0.7 also enables the developer to create .NET data transfer code directly from XSDs without having to have any WSDL at all.
Plus there are number of new items that primarily made it into the tool based on customer feedback. Thank you all.

Additionally, the tool also offers a command line interface to the code generation engine (wscf.exe). WSCF can thus be included in your batch scripts and/or build processes.


Please uninstall any previous versions of WSCF.
Then install WSCF 0.7 by running the installer MSI while Visual Studio 2005 is not running.


There is a thorough walkthrough document (this is still based on WSCF 0.6!) with a lot of screenshots that explains, based on a simple sample scenario, all the steps necessary for successful schema-based contract-first design and development with WSCF.


Many thanks goes to the numberless testers. Thanks!

Changes with 0.7

New Features

  • Generate data transfer object/data contract code from schema descriptions in XSD or WSDL files - via the VS 2005 add-in and the command line tool.

Bug Fixes

  • SOAP validation extension crashed when applied as an attribute.
  • Could not remove multiple items at once from the operations list in step three of WSDL wizard.
  • Byte arrays were not properly serialized when the code is generated with “Change casing” option.
  • Code generation crashed when the configuration file contains the XML namespace information in the <configuration> element.
  • Edit WSDL wizard crashed when the WSDL contains relative paths referring to a location outside the current directory (e.g. ../contracts/restaurantdata.xsd).
  • When "Data binding" code generation was enabled the PropertyChanged event raising statements were not added to the property setters of types that inherit a parent type who implements the INotifyPropertyChanged interface.
  • Importing multiple schemas with the same target namespace is now allowed in WSDL generation wizard.
  • Visual Studio hogged the CPU when WSCF was installed together with certain other add-ins, like GhostDoc or the Windows Workflow Foundation Extensions.
  • When default values are specified in the schema and the 'Change casing' option is turned on for the code generation, the generated code did not have all required attributes to properly serialize and did not change the casing in certain places.
  • During the uninstallation any path appeared after WSCF installation directory path in 'PATH' environment variable got deleted.

Known Issues in v0.7

  • Currently there is no way to generate only the service interface code after generating the data contracts using the new data contract generation feature.
  • SOAP validation extension crashes when the client is also a web service (or any other application) that is using the validation extension.
  • The RPC/Literal to Document/Literal converter does not work under certain circumstances.
  • Being able to import multiple schemas with the same target namespace in the WSDL wizard, now you can import chameleon XSD files (i.e. XSDs without a target namespace) into your WSDLs. However, the web service code generation is not yet capable of generating code from such WSDLs.


For Visual Studio 2008 Version 0.7 2007/12/7


Please read and accept the license (free of charge, no warranty) for this software which is included in the download and the installation files of the tool.