# Multiple document interface

En informatique, le Multiple Document Interface (ou MDI) désigne l'organisation de l'interface graphique d'une application où des fenêtres parentes contiennent en leur sein des fenêtres enfants.

## Description

Le cas typique d'application consiste en la fenêtre principale de l'application, avec un menu et des barres d'outils, contenant une (sous-)fenêtre par fichier ou projet ouvert.
L'autre mode concurrent disponible pour les programmes utilisant plusieurs fenêtres est le mode SDI (Single document interface). Un troisième mode est apparu plus récemment, le TDI (Tabbed Document Interface).
Le mode MDI est antérieur au mode SDI car il était plus facile à programmer et les applications disposaient de tous les périphériques, sans partage de ressources entre plusieurs logiciels simultanément. Cependant, les interfaces actuelles des systèmes d'exploitation courants permettent de programmer aujourd'hui aussi facilement le MDI que le SDI.
Plusieurs grandes entreprises ont parfois changé d'implémentation d'une version à l'autre. Ainsi, Borland Delphi est un programme SDI jusqu'à la version 7. Au passage à la version .NET, l'interface a migré vers le MDI.
Certaines applications proposent aujourd'hui d'utiliser simultanément plusieurs modes (MDI, SDI, TDI), tel que Microsoft Internet Explorer (à partir de la version 7.0) ou Mozilla Firefox : un lien peut être ouvert dans un autre onglet (⇒ TDI), une nouvelle fenêtre (⇒ SDI), certaines pages web étant incluses dans des frames (se rapproche du MDI, mais n'en sont pas réellement).

## Comparaison MDI/SDI
### Avantages du mode MDI

* Avec le MDI (et le TDI), une seule barre de menu ou d'outils est partagée par toutes les fenêtres.
* Une fenêtre enfant peut être affichée ou cachée, maximisée ou minimisée sans contrainte.
* L'affichage de fenêtres enfants en cascade ou en mosaïque dans l'espace de la fenêtre parent peut être facilement mis en place.
* La vitesse de commutation d'une fenêtre enfant à une autre est plus rapide, de même que les vitesses d'accès... (En SDI, on peut considérer que toutes les fenêtres sont des enfants d'une fenêtre "mère" recouvrant le bureau ; il y a donc beaucoup de fenêtres frères).
* Les raccourcis clavier sont gérés directement par le logiciel, sans passer par le système d'exploitation (lourd).
* Les objets étant contenus dans la fenêtre parente, cela permet de visualiser immédiatement les actions disponibles dans l'application même, sans confusion avec les possibilités offertes dans d'autres applications.

### Inconvénients du mode MDI

* Utiliser un programme MDI sur plusieurs écrans n'est pas toujours évident...
* Les bureaux virtuels limitent le programme MDI à afficher tout ou rien ; on ne peut afficher certaines fenêtres enfants selon le bureau virtuel choisi.
* Les fenêtres enfants ne peuvent sortir de la fenêtre parent et ne peuvent donc être placées n'importe où à l'écran.
* Les menus pouvant s'adapter selon la fenêtre enfant sélectionnée, cela peut entraîner une certaine confusion pour des nouveaux utilisateurs.
* Les gestionnaires de fenêtre intégrés aux systèmes d'exploitation actuels proposent des possibilités de regroupement des nombreuses fenêtres, ce qui est redondant avec le MDI.