Ayende @ Rahien

My name is Oren Eini
Founder of Hibernating Rhinos LTD and RavenDB.
You can reach me by phone or email:


+972 52-548-6969

, @ Q c

Posts: 6,130 | Comments: 45,561

filter by tags archive

We want to build something... beautiful!

time to read 2 min | 377 words

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.


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.


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


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

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.


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

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

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

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.

Comment preview

Comments have been closed on this topic.


  1. RavenDB Conference 2016–Slides - one day from now

There are posts all the way to Jun 01, 2016


  1. The design of RavenDB 4.0 (14):
    26 May 2016 - The client side
  2. RavenDB 3.5 whirl wind tour (14):
    25 May 2016 - Got anything to declare, ya smuggler?
  3. Tasks for the new comer (2):
    15 Apr 2016 - Quartz.NET with RavenDB
  4. Code through the looking glass (5):
    18 Mar 2016 - And a linear search to rule them
  5. Find the bug (8):
    29 Feb 2016 - When you can't rely on your own identity
View all series


Main feed Feed Stats
Comments feed   Comments Feed Stats