WCF Best Practice #4: Know your tools
In addition to the WCF Best Practices that are already around. WCF Best Practice #4: know your tools:
Tools from the SDK:
The framework sdk comes with quite some tools that are essential for the WCF developer:
They are listed here: http://msdn.microsoft.com/en-us/library/ms732015.aspx
Svcutil.exe, SvcConfigEditor.exe and SvcTraceViewer.exe will be your new best friends :)
REST starter kit
Toolkit from the WCF Team itself to help with building REST-full services:
http://aspnet.codeplex.com/wikipage?title=WCF%20REST&referringTitle=Home
AppFabric
Hosting part previously code named “Dublin”. When released will help with hosting and tracking and tracing your WCF Services.
Web Services Software Factory (WSSF)
WSSF by Microsoft’s pattern and practices (P&P) team can help with building WCF services. It contains visual designers to build services according to good practices. Check it out at http://servicefactory.codeplex.com
The tool is quite ok but I’m not an enormous fan of it. The designers don’t add a whole lot of abstraction to building WCF Services over code. Plus stuff that comes out from the P&P team is not officially supported. It will work with VS2010 but no guarantees for a longer lifecycle.
David Slot and I wrote an extension a while ago to hook WSSF one up with Enterprise Library: http://entlibextensionswssf.codeplex.com
Enterprise Library (EntLib)
EntLib has some nice integration with WCF for the following blocks:
1. Exception Handling Application Block
ExceptionShieldingBehavior can be specified on a service contract. Calls the Exception Handling Application Block to shield exceptions from the caller
Logging Application Block
2. Logging Application Block
EntLibLoggingProxyTraceListener can be configured to enable the Logging Application Block to process WCF trace events. XmlTraceListener can be used with the block to output events in the format consumable by WCF diagnostics tools.
3. Validation Application Block
ValidationBehavior can be specified on a service contract to enable validation of data contracts
Check out the EntLib documentation for the detailt. WCF info is listed under the documentation of the blocks under the “Key Scenarios” section. For the logging block the info is under the “Developing…” section.
WSCF.Blue
Helps when you want to do contract first development with WCF: http://www.codeplex.com/WSCFblue/
Approach and tool described here:
http://msdn.microsoft.com/en-us/magazine/ee335699.aspx
Additional tools on codeplex
Not familiar with these ones probably worth checking out:
http://wcfloadtest.codeplex.com
http://www.codeplex.com/WCFVisualizer
http://wcfcontrib.codeplex.com/
http://wcfsecurity.codeplex.com/
http://wcfextensions.codeplex.com/
Missing tools
Let me know if I missed some important tools.