Spiking RavenDB Management Studio: Design decisions
We got a lot of compliments in RavenDB over our management UI, which is only fair, we invested a lot of time and money in it. We also got a fair amount of bug reports about it.
That is fair, as well, it has got its problems. The major one among them is that what I thought we wanted and what we actually need are two very different things. I wanted something that could do a lot, would be very dynamic, support extensions and plugins, do… you get the idea.
In practice, we never use any of those things, and supporting them cost us a lot in terms of complexity and performance. So I decided to spike a complete reboot of the RavenDB Management Studio UI.
The goals are to create an architecture with the following properties:
- Stupid, stupid, stupid! I don’t do UI very well, so the architecture should be there to support me (and others) when we want to modify / play with things.
- Blind monkey should be able to contribute code!
- Big Refresh button on the screen that would refresh everything on the screen.
- No caching of views (currently a big problems for us)
The basic idea is that we want to make it very easy for users to contribute code / fixes. That can only happen if we are actually working hard to make sure that this is the case, I am going to post more stuff about the actual design decisions relating to this.
This means that we need strong conventions support. It means that the architecture should be obvious enough that non expert users should be able to get into it very rapidly.