I have an application that uses a variety of external resources (web services, filesystem, database), and therefore can be quite difficult to configure. The plan is to add a self-diagnostic tool to the application so it can report problems with the configuration and allow the user to correct it. Are there any design patterns, libraries, examples, etc, that I should consider when designing such a feature?
The application is written in C# and ASP.NET.
One way could be to have, in the admin area of your site, a set of pages that report on the state of these external resources. For example, it might tell you the database it is configured to connected to (and if it could establish a connection), what server it is running on (if loadbalanced), and so on).
For web services, I have a little service that runs and every couple of minutes “pings” the web service to see if it is still there. If it isn’t I get a text message on my phone (through another third party service incidentally) and a detailed error report in an email – You might prefer that than having to know to check a web page on the site.
I don’t know if there are any specific design patterns for this, I just add this reporting element to the normal layers in the application.