Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

When I created my first web application few years ago, I remember trying to use the designer in VS 2008. Before I can even remember I abandoned it to the favor of actual debug to understand how my UI will actually look like.

Since then, I gave it few more shoots but I was never convinced that it's even possible to build an complex UI with it.

How much progress designers have made in the recent few years? Are there any designers that can enable real-time view of highly complex UI? is it programming language/framework dependent?


share|improve this question

closed as primarily opinion-based by gnat, GlenH7, Kilian Foth, Dan Pichelman, MichaelT Oct 18 '13 at 0:15

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

I'm going to make an attempt at an answer, but I call tell you right now your question is too vague. What do you mean by "complex?" What doe you mean by "real-time?" – Robert Harvey Oct 16 '13 at 21:13
Realtime == when you look at the designer in an advanced stage and it doesn't look like my kitchen. My main interest is - is it worthy for me to "try changing my habits". – Yosi Dahari Oct 16 '13 at 21:21
up vote 4 down vote accepted

Having a UI Designer tool greatly streamlines the UI design process for most developers. Designer tools help developers visualize what they are creating, and write some of the code for them. But if you already feel productive hacking that code by hand, more power to you.

XAML is probably the closest thing to language-independent UI that Microsoft has. Given the "many languages" paradigm that Microsoft adopted when they created .NET, XAML was a natural choice. You can manipulate a XAML UI just as well in VB.NET as you can in C#, or any other .NET language, for that matter.

What you see as complexity in a designer is mostly necessary. Each control on a form may have 40 to 50 properties, ranging from event bindings to size and location in a container. Having this level of complexity insures that you have the necessary flexibility to mold the UI to your particular vision.

The real choice to be made is not the designer per se, but the underlying technology. Do you choose a proprietary but mature interface like WPF, or an open standard like HTML5? The designers, from what I've seen, are not all that different from each other. They all have property pages, design surfaces, etc.

I personally would shoot myself if I didn't have a designer. Even the simplest of Windows forms involves dozens to hundreds of lines of boilerplate code, code that I don't have to write by hand if I'm using a designer. A simple example of something you don't want to have to code by hand: the position of a control on a form. Why estimate the X and Y position numbers when you can just drag the control to the proper position on the form, and have it automatically line up with other controls or snap to a grid?

Actually, I'm a huge fan of code-generating a UI through templates. Creating a detailed UI is very tedious for most software developers, whether you're using a designer or not, so if I can hand some code generator a table or series of tables, and have a template code-generate a sensible UI for me, why not?

share|improve this answer
+1 - "If you already feel productive hacking that code by hand, more power to you" – Yosi Dahari Oct 16 '13 at 21:26

I think that even on the most complex of UIs, you're going to spend a tiny part of your time on designing it, either by hand or using a designer.

As far as new UI designers, I'm not familiar with Microsoft products but if you are interested in cross-platform ones, Qt Designer and Stetic are the only relevant ones (Glade too but you've probably heard of it).

Qt Designer is an excellent UI designer in my opinion - it's very versatile in letting you lay out widgets in a WYSWIG manner and I don't see why you wouldn't be able to write complex UIs in it. Since you can subclass any widget you want, virtually all designing could be done in Qt Designer. Plus it's integrated in Qt Creator, a pretty good C++ IDE (of course, if you use VS you probably wouldn't use it). Plus, Qt runs on pretty much everything. The only thing that could turn you off Qt is its Meta-Object compiler. I personally don't have any problems with it, though I usually dislike such abuses of preprocessing.

As for Stetic, it's not bad but you if you are a Windows developer and want to make WinForms stuff, Stetic is not an option. I have nothing against GTK# but, unlike WinForms, it was obviously not designed specifically for .NET, so I'm afraid you might not like it. Using Glade+Vala (a C#-like language designed specifically for GObject/Glib) is probably a better choice.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.