NH Prof Feature Selection
We are considering the User Interface for the session diff feature for NH Prof, we have two possible user interface, and I would like to solicit some feedback about which of them you like more.
I started with this one, called the tabbed interface:
And we also have the diff view interface:
One thing that we will not have is an option to select between the two, I consider “just make it an option” a mark of ineffective project leadership.
Thoughts?
Update: People asks about having a filter option, here is how it would looks like (and yes, it works already):
Comments
I say second one, DotTrace uses something like this, and it is visually easier to see things.
I'd go with the second option, as the user intent in a diff is to see the overall differences.
Rather than either, why not simply have a filter added to the second screen, letting you hide / show the matches / additions / removals? That's how wincvs used to work and was very handy for a quick overview.
The second one, maybe with a filter on top
Option2 give the ability to check different matters in the same place, I really like it.
The diff view could display the order of events. Although, it could potentially imply an order when there is none.
Either way, not a fan of tabs... I don't like it when I feel like I'm exploring the UI. Scroll bars send the message that the information out of view is more of the same. Tabs don't.
I'd rather see Option #2 (diff view interface); jumping between tabs would drive me a bit (more) crazy. I'd rather open up the diff, see what I need, and move on.
I like option 2 - it's cleaner and it gives me a high level overview by default and then it lets me drill down as needed. Would there be a way to hide the query view if I wanted to see more of the session?
Option #2 gets a +1 from me. I think it gives you a better understanding "at a glance"
2. The first one is more polished right now, but it is a poor man's version of inline diff. I think for NHProf, showing the order (and at what point statements dissappeared/popped up) is more valuable than obfuscating it in separate tabs.
I'm ot a fan of tabs...why not Expanders instead. That way the user can hide or view all the info that would be in the various tabs simultaneously. Bonus points for allowing the user to reorder the expanders.
I think #2 with the filtering functionality is perfect.
2, but with a way to invoke an external diff utility on the full verbatim sql and meta-data of each session, the way most scm tools support external diff utilities.
Or, just bale on implementing this UI and send this functionality to an external diff app entirely. Diffing is hard, and I rely way too much on my differ's features to settle for being frustrated with a incomplete diff implementation.
I don't use RDBMs, so I don't use this app, but if I can't easily copy/past the core data into my diff tool, this app would be painful to use.
A novice question on NHProf/NHibernate (not really related to this post): if I call session.Save in NH transaction, but do not call session.Flush explicitly, what should happen?
I have loaded an object, changed its collections, and on commit of transaction it was all submitted (and shown by NHProf as such). However, a new object saved by Save is not submitted on commit and NHProf does not show any information about it unless I call Flush explicitly. What am I doing wrong here? Does NHProf provide information on changes that weren't flushed?
My first reaction when I saw that post was: it's a diff, why not show it the same way diffs are normally shown? Why switch between tabs when I need to check how different removed and added statements are? So, I definitely prefer #2. And agree with Neil re: external diff support.
Andrey,
This should go to NH Users, but basically NHibernate is trying to batch changes to get more efficient use of the database.
It only go to the database for transaction commits or explicit flushes. And the later should be avoided if possible
I like the option 3 :-)
Comment preview