4

Surely MDI not so bad?

I have an ERP-type app and I have chosen a MDI UI model. The reason for this is to enable the user to multitask. Yes, many say that a user cannot multitask, but hear me out.

My app has several modules or functional areas e.g. Admin, Pricelists, Sakes Orders, Production, Stock Shipping, etc. I chose to create a MDI parent window for the main app window with a toolbar button for each module.

So let's say the user wants to create a Sales Order. He clicks the Sales Order button on the main toolbar and the Sales Order window appears. This is a MDI child that allows the user to create and edit a sales order and perform some functions on it e.g. Post, Accept, etc. So, if you are in the middle of creating a sales order and you need to change a pricelist or add some reference data you need in the SO, you simply open that module from the toolbar without having to abandon the SO. You cannot accept the SO, because it could violate business rules.

My app is not MDI in the sense of editing more than one document of the same kind like XLS or Word. The modules each have their own MDI child window.

Comments would be appreciated.

  • 1
    Where reasoning have you heard that MDI is bad? – Darrel Miller Sep 04 '10 at 19:48
  • 2
    Traditional MDI applications were largely a work-around for resource limitations and poor support for multitasking and window management on older systems. That said, there are still reasons for hosting multiple, separate documents in a single application - see: [Is there still a place for MDI?](http://stackoverflow.com/questions/486020/). You don't seem to be working with a document-centric application in the first place though; from the sound of it, you're actually arguing in favor of a *non-modal* UI, [usually considered *a good thing*](http://stackoverflow.com/questions/361493/) – Shog9 Sep 04 '10 at 20:02
  • 2
    Non-modal is good; multiple top-level windows are fine. But MDI's practice of caging its windows inside a single top-level window is a vile UI horror with endless usability problems. MDI must die. Die, die, MDI, die. DIE. – bobince Sep 04 '10 at 20:06
  • 1
    bobince: There are times when having several windows together in one is useful, but only if there's some convenient way to 'pull out' windows to use space outside the parent. – supercat Sep 04 '10 at 23:53
  • Hmm yes you are right. I am actually referring to non-modal. I chose to use MDI as the implemententation for a non-modal UI model. It will be pretty easy for me to change that to fully non-model non-MDI. – Louis van Alphen Sep 06 '10 at 06:53

2 Answers2

2

MDI is not bad. It is just pointless nowadays. SDI (Single Document interface) with nice docking manager and good tabs support is sufficient enough.

Look at your IDE for example. I am almost sure that it is SDI (like Visual Studio, Delphi, Eclipse, Net Beans, etc.)

Gad D Lord
  • 6,620
  • 12
  • 60
  • 106
  • 1
    Visual Studio 2010 is still MDI, though they do try to hide it... – mjfgates Sep 04 '10 at 22:54
  • It's multiple documents, true. But it's tabbed editing, which isn't the same as classic windows-inside-windows MDI. – Joe White Sep 04 '10 at 23:27
  • Visual Studio 2002 through 208 are actually regular old MDI with fancy tabs. In VS 2002-2008 there's a configuration option to go back to standard MDI. (I have not used 2010 so I cannot say whether that is still true.) – ARKBAN Sep 05 '10 at 00:09
  • Visual Studio is MDI, even in 2010. Here's the clue. If you close all documents, and there's still a window, then it's MDI. In SDI, if there's no document, there is no parent window. Additionally, If you see a "Window" menu, it's a good bet it's MDI under the covers. – Erik Funkenbusch Sep 05 '10 at 05:11
1

There's nothing wrong with MDI if you have good reasons for doing so. However, the reasons you have expressed are not really valid reasons to choose MDI in my opinion. You can just as easily do what you want with SDI popup windows, so long as they are non-modal.

The disadvantage of MDI is that it doesn't work very well in multiple monitor situations. The advantage of MDI is that it provides lots of nice child window management features (ctrl-tab, etc..) that you would have to emulate in SDI.

I'm not saying that MDI is bad, or that it is bad for your circumstances, but simply being able to work with more than one window at a time is not a reason to choose MDI.

Erik Funkenbusch
  • 92,674
  • 28
  • 195
  • 291