Wednesday, June 20, 2007 3:08 AM
vinaybh
Conform to WSDL - New Feature in Team Architect Orcas
The first beta is available for Visual Studio Team Edition for Software Architects "Orcas". You can download Orcas Beta 1 here, there are also VPC images available to give it a try.
Team Architect released the summary of new experiences and features in this Visual Studio edition recently here. In this post we'll focus on Conform to WSDL feature.
Conform to WSDL addresses the problems related to contract changes during the development lifecycle, by providing an automated means to update an existing Web service implementation so that that its skeleton (methods, method signatures and message classes) conforms to a specified WSDL contract. The developer is then required to make the associated changes to the business logic (and possibly the implementation logic), which generally cannot be known from the contract definition. This feature facilitates developers adopting a contract-driven approach to webservice development.
This feature is available as a context menu as shown below on all webservice endpoints both in Application Designer and System Designer (including System Endpoints).
Upon invoking this menu and providing the new WSDL file to conform to, the following is accomplished in the code file (if endpoint is implemented) or the model (if unimplemented):
· Creating method signatures with WebMethod attribute declarations for new operations.
· Modifying signatures of existing web methods for updated operations.
· Deleting the WebMethod attribute where operations are not present.
· Adding/modifying appropriate WSDL attributes to methods and message classes.
· Declaring/recreating new message classes while moving old message classes to an obsolete namespace.
· Adding comments whenever changes are made.
Of particular note is that the algorithm *never* deletes user-written business-logic which may contain valuable intellectual property or represent the result of significant effort that the user may wish to use in some other context.
Here is an example that demonstrates the usefulness of this feature. Below is the code-behind file of an endpoint that represents a webservice named CalculatorService. It has two webmethods Add and Divide that take integer inputs.


Feedback
Please try this out give us feedback on if this feature addresses some or all of your requirements for contract driven webservice development.