Ayende @ Rahien

Refunds available at head office

We want to build something... beautiful!

imageI have currently stopped working on the UI for Rhino ETL, and it is an interesting experience. In the past, I have usually started with building the functionality and then adding the UI for it. That failed. The problem wasn't that the functionality wasn't there, it was that the UI wasn't nice enough for use, or wasn't pretty enough to attract.

This time, I am doing it in reverse, I am building the UI first, at least the rough draft of it, and then I intend to go and hook everything up. This means that while the picture on the right looks very nice, it is mostly skeleton with nice UI, without much functionality.

Right now it is just an editor for Rhino ETL scripts, but I am currently hooking up the requirements for a project system that would allow me to build some really interesting functionality on top of the scripts.

You can see some of the ideas that I have in the live view pane, which should allow me to visualize everything in the project for ease of use.

Doing it the other way around is not likely to be possible, sadly, except in the most trivial cases, so I think that I will skip that.

Anyway, the point of this post is that by giving it a good looking UI, I make myself feel much better about the application. Working on an ugly application is distasteful, and you tend to just try to get away. Working on pretty ones make you want to improve the current state.

That is the whole No Broken Windows mentality again, by the way, as well as some self motivation practices. Beside, and that is a secret, working on the UI allows me to consider the back end in a very detailed way without getting too low level.

Almost by accident, there is this Daily WTF post about just this issue. Insightful is not something that I use lightly with regards to the Daily WTF posts, but this one is certainly is.

If you possibly can, make it pretty, you, your users, and the application will be thankful.

Comments

Miki Watts
08/15/2007 05:15 AM by
Miki Watts

I know it costs a lot, but if you're serious about this, SyncFusion has a text box editor control that gives you almost VS level of control, and is extensible.

Max
08/15/2007 06:57 AM by
Max

Why not build this as a VS addin? Then you get a whole bunch of functionality for free, and great integration with other project types.

Ayende Rahien
08/15/2007 08:15 AM by
Ayende Rahien

Max,

There is a tremendous amount of cost that is associated with building a VS plugin.

Damien Guard
08/15/2007 08:44 AM by
Damien Guard

He said he want's something beautiful.

That means the Visual Studio API is out of the question - it's possibly the ugliest API you will ever meet.

I'd personally go with adding support to SharpDevelop rather than yet another IDE. Their API looks much better.

[)amien

Jeff Brown
08/15/2007 09:12 AM by
Jeff Brown

Do yourself a favour and leverage an existing application shell. I know the VS add-in API is horrible but in the end it'll give you better exposure and save you mountains of work.

Unless you really feel like implementing a whole raft of basic UI views for files, execution output, debugging, etc... Ugh. Don't underestimate the cost of building a UI other people will want to use!

Tobin Harris
08/15/2007 10:21 AM by
Tobin Harris

I'd agree, leaning on someone elses work will set you up bettter in the long run. With SqlBuddy (http://sqlbuddy.sourceforge.net), I took the "build it all myself" approach. That was fun, but didn't help the project long term. I did have discuss an integration project with the SharpDevelop team, but I never got time in the end. An important decision to make up front.

All that said, what Ayende has now looks sweet in the screen shot above. The simplicity makes it particularly attractive.

Tobin Harris
08/16/2007 12:45 PM by
Tobin Harris

Lol. Just read my last comment, think I need to learn to check my posts!

@Ayende. Have just checked out the latest ETL solution from svn. Are there any bits I should stay away from or is most of it up and running?

Cheers, T

Willie Tilton
08/20/2007 09:35 PM by
Willie Tilton

I usually always build the UI first, then I attack the database, then I connect everything up to work.

The UI sometimes for me when I'm going solo on a really small project helps me flesh out the data pieces (sort of a design as you go methodology).

In either case, the UI IMHO is probably the most important piece to it all. If two applications do the exact same thing, the prettier one will sell more often.

Comments have been closed on this topic.