Have you ever tried using high availability technology like SQL Server database mirroring and been surprised when your ADO.NET client didn't seemlessly switch from the principal to the failover partner but instead reported an exception? The Fault Retry provider and sample (http://www.codeplex.com/SqlFaultRetryProvide/Wiki/View.aspx?title=Home) may be your ticket to a smoother high availability experience.  This project demonstrates provides a complete custom .NET data provider which automatically retries operations which have failed for certain types of transient exceptions.  By putting the retry logic in a custom data provider it avoids the problem where retry logic is sprinkled around different parts of a high availability application, but instead centralizes it in one specific spot.  It also allows retries in places which are hard to wrap try/catch blocks around (for example in a data binding scenario).  Included with the custom data provider is a WPF based application which demonstrates how you might use this provider in a simple but realistic client application.

There are some limitations to the approach used.  Check out the detailed documentation on the home page for more details.  Please let us know if this project is useful and how we can work together to improve it.  If you would like to contribute please let me know.  Thanks!