P&P Summit Day Four: Web Service Software Factory

The first after lunch talk was given by Chris Kinsman and Don Smith on the Web Service Software Factory.

Chris starts out stating he will not talk about what recipes are, etc., but rather what do you get out of the factory. He was not on the team that created it, but he is working on a project that it is using it.

The factory includes the entire end-to-end communications using services. Meaning, not only how to expose that service and call into that service, but also what happens behinds the service. The factory also realizes that .NET 3.0 is coming and provide guidance in the creation of your services to ensure that the transitions later are smooth.

Again, this talk was pretty much a description of the factory, all it’s pieces and a large demo of using it.

Check out the Web Service Software Factory for the documentation…you’ll get a lot more out of it than reading anything I write here about how to use it.

A couple of interesting points:

  • If you add your own projects to the generated solution you can see that your custom project don’t have the context menu for the factory for that project. You can add it by setting your project to act as one of the project types the factory knows about. To do this you can go to the solution and off the factory context menu (right click) you can select to “Unlock” the solution. Then go to your project and see that there is now a context menu for the factory. One of the options off that menu will let you select the type of object your project is. Then you can go “lock” the solution and then your project has the appropriate context menu.
  • The factory has the idea of an exception shielding. We can actually guard against exception information going out of the service that shouldn’t. There is a project in the reference implementation that can help with this called ServiceFactory.ExceptionHandling. Once he pulled that in he could add an attribute to a service implementation class (or the service operation level) and it just worked and the developer doesn’t have to remember to add try catches at the service operation level. Under the hood it uses the EntLib Exception Handler. This required a soap extension to be configured as well so that the correct exception is handled and handed back over the message.
  • The factory had a tool that when pointed at a data source you could select a table and columns within that table. Once you did that it would generate the business objects from those selections. It also could generate the database scripts for the CRUD procedures as well. Then there were recipes to create repository objects that perform the map from the objects to the generated stored procedures. Very cool.
  • It could even create some translators for your business objects and the messages. It gens the code after you supply the mappings via a wizard.

I was pretty impressed with this factory.

At this point Chris brought Don Smith up to talk about the future of the factory. The P&P group will be putting out a WCF version of this factory which they are already releasing in CTP form. They are hoping to release the WCF version in mid December. This will include a large reference application that includes using WF in the business logic, some versioning guidance and how to migrate from asmx. Based on what they are saying about the factory I’m actually very excited about what’s coming out of this.

This was definitely the whiz-bang session of the day, perhaps the conference.