I’ve attended DDD Melbourne and want to list the interesting points, that I’ve learned and want to follow.
To read more:
* Moles-Mocking Isolation framework for .NET. Documentation is here. (See also Mocking frameworks comparison created October 4, 2009 )
* PluralSight http://www.pluralsight-training.net/offers/default.aspx?cc=trial
* ELMAH: Error Logging Modules and Handlers Great for new sites or sites without error logging/monitoring. However if you site already have working error logging/monitoring tools, probably not worth to use ELMAH.
* VS UI Test Recorder -see posts Visual Studio 2010 Coded UI Test User Guide. Note that Microsoft Test Manager (MTM) toolis a separate application, that can be started from Program files/VS 2010 menu.It is not a menu inside Visual Studio.
* CodeContract– seems great in Debug. Will be good if in production will be possible runtime configuration, ability to log instead of throw exception.
Current recommendation to customize Debug.Assert is not trivial
The programmer is free to use the customization provided by Debug.Assert using assert listeners to obtain whatever runtime behavior they desire (e.g., ignoring the error, logging it, or throwing an exception).// Clears the existing list of assert listener (the default pop-up box)System.Diagnostics.Debug.Listeners.Clear();// Install your own listenerSystem.Diagnostics.Debug.Listeners.Add(MyTraceListener);
Note that you can’t catch specific ContractException, but can catch generic Exception(see How come you cannot catch Code Contract exceptions?)
Books recommended “Working effectively with legacy code” by Michael Feathers (corresponding article)
Fowler, Martin Refactoring: Improving the Design of Existing Code, slides http://jaoo.dk/jaoo1999/schedule/MartinFowlerRefractoring.pdf