Beautifying Winforms Applications
Recently, I've been doing alot of reading on UI design. One of the unfortunate problems with typical Winforms applications is the lack of style or regard for attractiveness and usability of the application. Looks aren't everything, but they'll go a long way, especially with a novice end user. As developers (especially backend developers), we typically lose sight of the importance of an attractive application, and on't spend much time tweaking the UI to suit a consumer. To beautify out applications, and make them feel friendly and easy on the eyes to our end users, we must take into account some very basic concepts:
- Don't Hide Features - The most important options must be available up front, and should not be buried or poorly labeled.
- Follow Design Guidelines - It seems most developers (especially web developers) seem to have a lack of understanding of basic design guidelines when it comes to building UI's. One of the most irritating things to a user is when the UI isn't what they expect. Try following the Official Windows UI Design Guidelines (link) to ensure that you provide a consistent look and feel to the rest of Windows applications.
- Grids and Fields Are Evil - Well, not evil, but think how painful it is for a user to see a huge grid of textboxes, or an array of fields that you plainly laid out with no direction other than their labels. When designing forms, try to keep the number of fields to a minimum. Break them into steps, or break apart the fields with headers.
- A Picture's Worth 1000 Words - When designing a UI, don't forget the icons! Icons are very important visuals to a user and they make your application look more professional, feel friendlier, and keep the user from reading too much. Try http://www.iconexperience.com for a great suite of XP looking icons.
- Design For Illiterate Users - As mentioned in the previous point, reading too much is bad. In fact, users typically don't read -- so if you can, make your application self-explainatory and use icons and images to give the user feedback.
- Good Winforms Design Often Requires Custom Rendering - If you are looking to build a unique and engaging experience, the out-of-the-box Winforms controls generally don't cut it. You may want to look into some third party controls (http://www.divelements.co.uk will handle alot of your needs), and OwnerDraw or GDI+ rendering of controls may often be necissary to acheive the results you're looking for. This is Winforms, not HTML so go wild with custom rendering if you want!
- Office Ain't All that Bad - Users like MS Office. In fact, users often expect your application to work like MS Office. For that reason, when in doubt, make sure you're mimicing the way that Office works!
This kind of stuff really should be taught in school. Good UI's can really make or break an application.
For further reading, I strongly suggest the book User Interface Design For Programmers by Joel Spolsky. Possibly the best (only?) UI book ever written for developers.