The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

creating a professional look and feel

I have started developing a windows application in C# using the express c# visual studio ide.  It is a simple application, similar to many chat clients.  While I can do all the logic and lay out components on the GUI, I'm horrified at how ugly it looks!  I've done a small number of GUIs in Java as well, but there are some very nice L&Fs for Java which turn an average GUI into something nice (  I posted a question regarding the availability of such third party L&Fs for .NET ( but didn't get what I wanted.

In the end, I suppose my question is how other individual developers who hope to create a professional, marketable product go about doing GUI design.  I don't mean general user interface, I mean how to make an application 'pretty.'  Color combinations, font styles, sizes, border width, etc., etc.

If this was a website, I could hire one MANY people who are very good at graphic design to do a mock up (it is amazing what some kids can do with CSS or Flash).  But it is hard to hire a designer to mock up a winforms app since changing the look and feel seems to require knowledge of api, OnPaint method, etc., etc.  Even if they can show me a design through photoshop, some of their ideas may not be workable programatically.  I obviously can't afford to hire someone who is both a good graphic designer AND has knowledge of api, can't give $50-$100-$150 per hour for something which may never leave my computer.

Ideally I would like to be able to plop some components on to a Form, send it to someone and have them give me back a good design for my application.

I'm obviously utterly confused about this :)  Any ideas?
Shahbaz Send private email
Wednesday, January 05, 2005
There are lots of third party components available that can do nice GUI things. Have a look at for some that I use all the time.
Craig Send private email
Wednesday, January 05, 2005
Try googling "skins" + <your language> ?
Thursday, January 06, 2005
 and could help.

The basic notion that I run with is to make things look as much like every other application as possible. That may be too blah a look for your application, if what you're looking to do is make something really cool. But I build applications that people use to get their jobs done, so I don't care how cool it looks, I care how easy it is for them to understand, how easy it is for them to guess at the functionality based on the layout.

JeremyNYC Send private email
Thursday, January 06, 2005

Study other apps and "steal" what they do that looks good to you.

Ask users what they like and dislike about applications they use every day.

Microsoft publishes a style guide for Windows - I can't remember its name but you could Google for it.

Think of common sense things that your application needs to do, then figure out the least-keystrokes methods to make them happen.
Karl Perry Send private email
Thursday, January 06, 2005
Whatever look you decide on, component suites like those from DevExpress (referred to a few messages above this one) and some other 3rd party component vendors include "style repository" components.  These enable you to change the look of your app just by going to the style repository and changing a few settings. To use them, you use a "style" property of your regular components to point them at a style in the central style repository.  Then the format settings in the repository are used instead of having to change individual property settings on each edit component.
Herbert Sitz Send private email
Thursday, January 06, 2005
Take a look at, they have created some really nice looking components for Windows Forms. Even if you aren't interested in buying 3rd party components, their tools should serve as a good source of inspiration.
Martin Hoffmann Send private email
Saturday, January 08, 2005
The nicest GUI for the user is the GUI he used to see for all his life. I use Windows... let me think... since 1996 and I'll never forget that a menu bar is on top, etc. And that app... Tonic, offers a GUI which doesn't look like 'standart', and such GUIs make a feeling that something is wrong. Microsoft, KDE, etc. used professional designers to create the style, and it looks complete. Never try to use something 'unusual', like flat buttons and all that stuff. I saw errors in such programs on a 'strangely' setupped machine - wrong colors, wrong fonts... You should use the controls provided by the common GUI, and don't try to be 'the best' - you'll be blamed for the errors in the GUI, not the developer of 'super nice visual components'

Sunday, January 09, 2005
As others have pointed out, the best way to create a professional look and feel is to stick to the OS's default and UI guidelines. Don't change the colors, window shapes, location of the toolbar, order of the menus, etc. because that'll just look like, well, either a project by somebody who thinks they can do better than what 35 years of UI research has shown us, or one of those horrid interfaces that the OSS movement has unleashed onto the world. If you use the default colors/locations/naming conventions/etc from Visual Studio, you'll have something that looks like a normal app and that people will be comfortable with from the get-go.
Roger Billerey-Mosier Send private email
Monday, January 10, 2005
While I agree that it's a good idea to use the system settings where applicable so your app fits in with native apps, part of me wonders why the look and feel of the system itself keeps changing.  I mean, sure, a certain amount of refinement is to be expected, but some of the changes have been pretty large.

Fortunately, if you use system api's properly, your app should have the matching look and feel regardless of the os version.
Aaron F Stanton Send private email
Monday, January 10, 2005
I think, that Microsoft is the first that change the look and feel before the OS do. You only have to show Office 2003 o Visual Studio .NET.
DreamTangerine Send private email
Tuesday, January 11, 2005
I'm surprised so many people have suggested I stick to the default system look and feel.  My purpose is certainly not to create some wacky, weird interface which only few elites can figure out.  There are three main reasons for deviating from the default .NET look and feel:
1. The default look and feel isn't even the look and feel used by Microsoft iteself: think various versions of MS Office, MS Money, MSN Messenger, MS Media player,etc., etc.  Even MS Windows itself has different color themes
2. Having an application look slightly different (modern, elegant, etc.) is necessary for branding/customer loyalty...I say this as a MicroISV wannabe (MicroISV==one person company).  A good example is that of Winamp.  Winamp looks completely different from any other application for MS Windows...yet huge number of people just love it.  Winamp's functionality is really not so different from 20 other media players, but winamps still has a loyal following.
3. Sometimes a more effecient interface can be utilized for a specific application.  Once again, I'll use Winamp as an example.  Users can stick it to one corner of their screen...keep it out of the way.  Double clicking on some areas brings up equalizers, etc., etc.  Imagine building the same application in .NET using standard components: menus on top, status bar on the bottom, etc., etc.
Shahbaz Send private email
Wednesday, January 12, 2005
The problem with deviating from the norm is that it is much easier to wind up with a really bad design than it is to wind up with a really great design.  Going with a standard keeps you at least somewhat close to the norm of what people expect, so it doesn't intrude into getting their job done.  It's comfortable automatically.  It's possible to create great interfaces that deviate radically from the norm, but it's really hard.
Aaron F Stanton Send private email
Thursday, January 13, 2005

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz