The points explained in Solution 1 are very good.
MDI was a very naive design attempt introduced, if I am not much mistaken, with some versions of Word for Windows. Then there was a scandal where Microsoft was accused in using unofficial API which cannot be simulated on the application level, so Microsoft opened this API. Many naive uses (including myself, I must admit) was attracted by this opportunity, mostly because the number of available UI components for Windows was much more limited at that time.
If you look a round, you won't find any application using MDI, if we consider only the applications which are at least minimally "professional". Using MDI would be a sure way to scare off the users and face some unpleasant development problem. Aren't the inconveniences of MDI obvious enough?
I usually advise different alternatives; and the simplest and, at the same time, quite a robust one being the
TabControl
, both with WPF and
System.Windows.Forms
. There are a number of other designs. I discussed some of them in my past answers:
How to Create MDI Parent Window in WPF? [
Solution 2],
Question on using MDI windows in WPF[
^],
MDIContainer giving error[
^],
How to set child forms maximized, last childform minimized[
^].
—SA