I <3 Steve McConnell*
Coding Horror
programming and human factors
by Jeff Atwood

February 17, 2004

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

Posted by Jeff Atwood    View blog reactions

 

« In the beginning, there was Movable Type .NET Compiler Performance »

 

Comments

c# version needed..
..im too tired to translate ya code :)

laszlo on October 3, 2004 04:08 AM

Been looking for a sysinfo script and ya have a great one...

KUDOs...keep up the great work


Scott on February 10, 2005 08:51 PM

In ancient Japan, the men who fulfilled roles similar to those of modern pharamacists were highly respected. The place of pharmacists in society was expressly defined in the Taih&#333; Code (701) and re-stated in the Y&#333;r&#333; Code (718). http://BestMedsWorld.com Ranked positions in the pre-Heian Imperial court were established; and this organizational structure remained largely intact until the Meiji Restoration (1868). In this highly stable hierarchy, the pharmacists -- and even pharmacist assistants -- were assigned status superior to all others in health-related fields such as physicians and acupuncturists. In the Imperial household, the pharmacist was even ranked above the two personal physicians of the Emperor.[5]

Japanese pharmacy on August 19, 2008 12:09 AM

http://sotovii.net

Sotovii on September 11, 2008 12:59 AM

http://www.adult-videos.ru/?adv=den555

1 on September 17, 2008 12:47 AM







(hear it spoken)


(no HTML)




Content (c) 2008 Jeff Atwood. Logo image used with permission of the author. (c) 1993 Steven C. McConnell. All Rights Reserved.