Coding Horror

programming and human factors

About... The About Box

You'd think someone would have written a decent, generic .NET About Box by now. Well, if it's out there, I couldn't find it! The About Box isn't an essential part of any application, but my research (and practical experience) indicates it has two key uses:

  • For users: so they can identify the application, who made it, and what version they're dealing with. Real basic stuff. Dogtags for your application, if you will.
  • For developers: to provide detailed build, version, and file information. Typically used when troubleshooting problems with compiled, deployed code. Medic!

It's convenient to have an About Box-- but to continue with the dogtag analaogy, if you're whipping out dogtags on a regular basis, that's symptomatic of a deeper problem. The About Box is not meant to be used every day, but when you need it, it can be a lifesaver. It's OK to be used infrequently, but it also needs to provide decent diagnostic info. Decorative About Boxes are not helpful.

In order to meet both user and developer needs, I put together a tiered dialog, with simple mode, for users:



and complex mode, for developers:

Most of the identity of your application can be derived from those tricky little AssemblyInfo files:

<Assembly: AssemblyTitle("About Box Demo")>
<Assembly: AssemblyDescription("Demonstration of AboutBox.vb code")>
<Assembly: AssemblyCompany("Atwood Heavy Industries")>
<Assembly: AssemblyProduct("Demo code")>
<Assembly: AssemblyCopyright(" 2004, Atwood Heavy Industries")>
<Assembly: AssemblyTrademark("All Rights Reserved")>

That's the same information you'd expect to see when right clicking your .EXE file, then selecting properties. And it is!



I tried to include all the Application and Assembly level diagnostic info that I've found useful. I'm sure I left something out, but I'm pretty sure I covered all the standard stuff, too. Try it out and let me know what you think.

Download the Visual Studio .NET 2003 project from CodeProject

Written by Jeff Atwood

Indoor enthusiast. Co-founder of Stack Exchange and Discourse. Disclaimer: I have no idea what I'm talking about. Find me here: http://twitter.com/codinghorror