A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.
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 (http://www.digitprop.com/p.php?page=toniclf&lang=eng). I posted a question regarding the availability of such third party L&Fs for .NET (http://groups-beta.google.com/group/microsoft.public.dotnet.framework.windowsforms/browse_thread/thread/cd2f48312aad1c5d/94d60882e58125c8) 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?
There are lots of third party components available that can do nice GUI things. Have a look at www.devexpress.com for some that I use all the time.
Wednesday, January 05, 2005
and http://digilander.libero.it/chiediloapippo/Engineering/iarchitect/mfame.htm 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.
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.
Aaron F Stanton
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.
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.
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
Monday, January 10, 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.
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
Thursday, January 13, 2005
This topic is archived. No further replies will be accepted.Other recent topics
Powered by FogBugz