Wow! This Microsoft Research team are prolific. I've recently become familiar with a family of products that have come out from the RiSE (Research in Software Engineering) team. As a consumer of development tools I really like it when my tools have synergy.
The tools I have been using are Pex, Moles, Code Contracts, Chess and Sandcastle (not sure if the last one is from that team but it fits in nicely).
Here's how the tools fitted together pre Visual Studio 2012:
- Code contracts - allows you to design by contract, providing runtime and static analysis contract inference for your code in Visual Studio.
- Pex - A constraint solver that is based on MS Research's Z3 solver, this is integrated with the Moles isolation framework and can also take code contracts as constraints.
- Moles - Isolation framework that Pex has knowledge of and can determine upon probing the many paths of the graph where an object is "Moled" or a "Real" object and therefore requires moling.
- Sandcastle - Creates msdn quality documentation for your code API's that can also display code contract assertions. Open source on codeplex.
- Chess - Concurrency testing framework that allows you to find and reproduce "Heisenbugs"!
- Code contracts - moved from Microsoft.Contracts assembly into mscorlib, which indicates that the project was of value to Microsoft and moved to the forefront of .Net
- Pex - No Visual Studio 2012 version available, but the RiSE team have indicated that its coming!
- Moles - Disappointing it has been "discontinued", the project has now been absorbed by the Fakes framework. Downside is that the Fakes framework is only available in Visual Studio Ultimate Sku, so that restricts most devs including myself from using it.
- Chess - This one I came across far too late, it is only compatible with VS2008, the RiSE team have indicated that the limitations of updating chess for VS2012 are due to its architecture being very dependent on the blocking semantics of the underlying platform APIs, and that the current architecture not being robust enough to handle the new blocking APIs. Its a brilliant tool that has relevance for testing the new parallel-concurrent-asynchronous programming drive. Its open source on codeplex and I really hope someone (a much better dev than me) in the community has a crack at updating it for VS2012.
3 things that I hope happen
Microsoft re-thinks restricting their best isolation framework (Moles/Fakes) from the masses.
Someone updates the Chess codeplex project for Visual Studio 2012.
- Microsoft RiSE team continue with their outstanding work!