Project Description
NDiagnostics is designed to allow for the quick and simple creation of an application diagnostics utility that can be ran by an end user or by technical support personnel to determine whether a user's machine is configured correctly for a given application. NDiagnostics is built in Visual Studio 2008 using C# while targeting the .NET 2.0 Framework.

NDiagnostics was inspired by day-to-day questions from technical support regarding how to troubleshoot a workstation for a given application. Although checklists and guidelines have proved very useful the manual processes involved are somewhat tedious. NDiagnostics is designed to expidite the initial troubleshooting and reduce turnaround times.

Screen Shots
Click here for Screen Shots of NDiagnostics.

Possible Uses
  • Add a "Help-->Run Self-Diagnostics" menu option to your Windows Forms application that launches NDiagnostics with a configuration file customized for your application. This will give your technical support staff (and end users) a quick and easy method for verifying the configuration and state of your application and end-user's workstation. NOTE: NDiagnostics can be ran as a ClickOnce application so it doesn't need to be deployed to every client machine if they have access to the ClickOnce server.
  • Compile a custom version of NDiagnostics that has your application's configuration settings embedded within the NDiagnostics utility. This single-file executable can then be copied to an end-user's workstation and ran for a quick configuration analysis.
NDiagnostics is completely configurable via an XML-based configuration file. The configuration file defines the groups of diagnostic tasks to be run as well as the order of the tasks. NDiagnostics currently ships with the following tasks:
  • Exec Task - allows you to run an external process and utilize the exit code to determine if it succeeds or not.
  • File Task - checks for the existence of a specific file and can also (optionally) check the version number.
  • Folder Task - checks for the existence of a specific folder.
  • NETFX Task - checks for a specific version of the .NET Framework.
  • Process Task - determines whether a specific process is running.
  • Registry Task - allows you to verify registry settings.
  • Role Task - allows you to verify that a user belongs to a specified group/role.
  • SQL Server Task - checks for connection to specified database; optionally check for table existence and/or query result.
  • URL Task - determines whether a specific URL is available (can verify web page or web service).
  • Windows Service Task - determines whether or not a specific Windows Service is installed, and optionally, the current status (e.g. running, stopped, etc.), startup type, and startup account.
Future Enhancements
  • A graphical configuration tool - will allow you to create diagnostic configuration files without having to manually edit XML (probably not until release 2.0).
  • Easier customization by utilizing reflection to load diagnostic task classes.
  • The ability to run the diagnostics tasks on remote machines (providing you have the appropriate rights and permissions to do so).
Customizing NDiagnostics Requesting Features
Please make use of the Issue Tracker for any feature requests - e.g. new Diagnostics Tasks, improvements to existing tasks, etc. If you have questions regarding the use and/or configuration of NDiagnostics, please use the Discussions forum.


Last edited Jan 29, 2008 at 12:39 PM by jbramwell, version 37