Tags:
create new tag
, view all tags
This page is a second (or third) attempt to explain the differences between MDI (Multiple Document Interface) as used in Word97 and earlier, SDI (Single Document Interface), and MSDI (Multiple Single Document Interface) as used in AbiWord.

I understand that Word2000 uses SDI (or MSDI?).

My earlier attempts at an explanation are in an AbiWord bug report at http://bugzilla.abisource.com/show_bug.cgi?id=1560. I will probably cut and paste things from there to here as I (re)start this effort.

See AboutThesePages.

Contents

Introduction

Windows based computer programs have evolved in at least three different styles:

  • SDI -- Single Document Interface
  • MDI -- Multiple Document Interface
  • MSDI -- Multiple Single Document Interface

This document is an attempt to explain a little about how or why each style evolved, what advantages and disadvantages each has, why AbiWord uses the MSDI, and discuss some of the ramifications to the user.

This can get complicated, so I will start with (possibly over) simplified discussion, then attempt to deal with the more confusing issues.

Single Document Interface

An SDI (Single Document Interface) style application is the simplest program that can be envisioned. One instance of a program works on one document. In fact, (usually,) such a program has only one window, which displays and allows interaction with the document. <Open item: If a program allows multiple open windows on the same document is it still SDI?>

Multiple Document Interface

The MDI (Multiple Document Interface) style application was developed to allow one instance of a program to work on multiple documents. In general each document can be viewed and interacted with via one or more subwindows. The advantage is that RAM memory is used for only one instance of the program. The disadvantage is that the documents are viewed in subwindows which look and act a little different than ordinary windows.

Multiple Single Document Interface

The MSDI (Multiple Single Document Interface) style application was the next step on the evolutionary scale. The intent was to preserve the advantage of MDI (one instance of the program to work on multiple documents) and overcome the disadvantage (subwindows vs. windows). In an MSDI application, multiple documents can use one instance of the program, but each is open in one (or more) ordinary windows, not subwindows.

Another Advantage of MSDI

One incidental advantage of MSDI is that main windows typically show up as separate buttons on the toolbar, while subwindows do not.

So, in an MDI application you may have multiple documents open, but you cannot select between them from the toolbar, you must switch between them by a means provided within the application.

For instance, in Word97, you can shrink each open document to a button that appears within the Word main window (but is only visible if all open documents are shrunk). The other way of switching between documents is with the Window menu item, which displays a list of all open document windows.

In contrast, in AbiWord, a button appears on the toolbar for each open document window. (And, if the same document is open in two windows (useful at times, for example to copy and paste between one section of a document and another), two buttons appear on the toolbar.

And, changes made in either of the open windows are viewable in all open windows.

Some Complications

Just notes of some points to cover, for now:

  • You can open more than one instance of a program in any of these approaches (SDI, MDI, or MSDI). If, for example, you open two documents in two separate instances of an SDI application, you will have two separate icons on the toolbar. Note, however, that if you have the same document open in both of these instances, changes made to one instance will not be made to the other instance, and, in fact your changes may be lost if you save and close both instances in the wrong order. <Should I go through this explanation for SDI, MDI, and MSDI?> The same thing can happen in MSDI and can perhaps be more confusing than in MDI, because it is not as easy to recognize that you have two different instances of the program rather than two open windows on the same document within the same instance of the program.

    UPDATE: I've run into a new variation that I may need to discuss -- Mozilla, in versions at least since 1.0 (IIRC) is another sort of animal -- we might consider the tabs as subwindows and you can also have separate main windows, so I might classify it as MSDI, but you cannot (AFAICT) start a separate / independent instance of Mozilla (demonstration: if Mozilla crashes, it closes all open windows and tabs). That, IMHO is a disadvantage.

  • When I talk about memory, memory is used for only one instance of the main program, but memory is utilized for each open document (and perhaps each open window).

A (Almost Blank) Sketch

Provided in case someone wants to work on a sketch. I've named this one SDI, we can create more (edit the page to see how). See EmailServerSketches for some examples of sketches that have been created.

When you click on the sketch to edit it the first time, there will be a delay while a java(script?) applet is downloaded to your machine. There are other hints about using the WikiDrawPlugin on the EmailServerSketches page. (PS: The sketches on the EmailServerSketches page are not for testing -- they are "real" -- the page will be renamed to something related to email servers, probably within the next month.)

Edit drawing `SDI` (requires a Java 1.1 enabled browser)


Contributors

  • RandyKramer - 29 Mar 2002
  • <If you edit this page, add your name here, move this to the next line>

Page Ratings

Topic attachments
I Attachment History Action Size Date Who Comment
Unknown file formatdraw SDI.draw r1 manage 0.3 K 2002-03-29 - 17:19 RandyKramer  
GIFgif SDI.gif r1 manage 0.9 K 2002-03-29 - 17:19 RandyKramer  
Edit | Attach | Watch | Print version | History: r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r4 - 2003-01-12 - RandyKramer
 
  • Learn about TWiki  
  • Download TWiki
This site is powered by the TWiki collaboration platform Powered by PerlCopyright 1999-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding WikiLearn? WebBottomBar">Send feedback
See TWiki's New Look