It's a business management application ... So it really kinda has to be a MDI so users don't have to contend with lose windows scattered all over the desktop while looking up multiple clients/products/contracts/etc.
-Stoic Joker
I've done something like this in SDI with WPF, and it actually turned out better once I got rid of my preconceptions.
Two things I did to make window management simple:
1. The windows are aware of the other windows and there is a menu that allows you to select the other windows from that window
2. There is a launch application that everything is launched from, which also has an icon in the tray notification area.
How this helped and became a help rather than a hindrance:
1. They each run in their own process
2. All of the client machines have two monitors, so the MDI interface that they were used to actually limited their ability to position windows; they used to run two instances of the application.
3. They all are upgrading to windows 7; the positioning abilities of windows 7 actually made the layout more versatile.
So I'd say don't limit yourself by the classic UI, but look at the options and find out what actually works best for the client.-wraith808
Understood, I've got an IMS MDI that I did for the production department that has worked out rather well. But it was a native Win32 API app that took bloody forever to do ... Which I'd like to avoid, by leveraging some of the newer rapid development - App Framework handled by "Magic" - methods that are available these days. Assuming I can get my head around it fast enough to get the project off the ground fairly soon (eek!).
Note: (good news/bad news) This will be an in-house project so i/we are the client. We have several disperate systems that were designed for specific unrelated projects ... That are now directly related and need to be sharing data instead of (enducing errors by) duplicating it. The also aren't scaling well so I'd like to (take them all out and shoot them) start over from scratch with current design requirements...
before it becomes a complete maintenance nightmare.
Anyhow... I ran across an interesting code sample over at CodeProject, that is a MDI UI that allows children to be pulled out of the main window and docked.
Multiple Window Interface for WPF Being a fan of have your cake and eat it too solutions ... I'm leaning that direction. (And Eóin's above bombshell is pulling hard in yet another direction.)
But nothing is carved in stone yet. I've still got to meet with the brass to get the project approved, and discuss what the user access requirements actually are. There is a small possibility this may need to be (or at least have) a web interface for the road warriors.
Oh yeah, we still have many XP machines, and everybody is single monitor. They're at least (mostly...) wide monitors...but they're all singles.
Main thing I'm after is a single click to close functionality, so it isn't constantly ophaning child windows/processes like our other BM software Sage BusinessWorks. That nightmare takes an act of congress to completely kill for restart when (not if...) it crashes.