              An Overview of the Server Extensions

An Overview of the FrontPage Server Extensions

  * What Are the FrontPage Server Extensions?
  * FrontPage Webs
  * FrontPage Authoring Support
  * FrontPage Administrative Support
  * FrontPage Browse-Time Support
  * Publishing FrontPage Webs
  * FrontPage Product Architecture
  * FrontPage Extensibility
  * FrontPage Client and Server Extensions Compatibility
  * FrontPage Server Extensions: Supported Platforms

What Are the FrontPage Server Extensions?

The FrontPage Server Extensions are a set of programs on the Web
server that support:
  * Authoring FrontPage webs. For example, when an author moves
    a page from one folder to another in a FrontPage web, the
    Server Extensions automatically update all hyperlinks to
    that page from every other page and Microsoft Office
    document in the FrontPage web, directly on the Web server
    machine.
  * Administering FrontPage webs. For example, a FrontPage web
    administrator can specify which users can administer, author
    or browse a FrontPage web.
  * Browse-time FrontPage web functionality. For example, users
    of a FrontPage web can participate in a discussion group.
    The Server Extensions will maintain an index of hyperlinks
    to articles in the discussion, separate discussion threads,
    tables of contents, and search forms to locate pages of
    interest.

A FrontPage web is a project containing all the pages, images,
and other files that make up a Web site. For a full description
of FrontPage webs, see FrontPage Webs.

The design of the FrontPage client and Server Extensions
minimizes the need for costly file transfers over the Internet.
When an author using the FrontPage Explorer opens a FrontPage
web from a Web server containing the Server Extensions,
information about the FrontPage web, such as its hyperlink map,
is downloaded to the client machine so that the FrontPage
Explorer can display the information. However, the full set of
pages and other files that comprise the FrontPage web remain on
the Web server machine. A page is only downloaded over the
Internet when it is opened for editing in the FrontPage Editor.
This is a very efficient mechanism: an entire Web site can be
changed directly on a Web server at the cost of downloading and
editing a single file.

When a Web server machine has the FrontPage Server Extensions,
FrontPage web authoring and administering functionality is
available from a PC or Macintosh computer that has the FrontPage
client program and that is on the Internet or an a local
Intranet. The browse time functionality of the Server Extensions
is available from any Web browser on the Internet or Intranet.

Communications between a client computer and a Web server
containing the Server Extensions uses the same open, ubiquitous
HTTP protocol that Web browsers on a client computer use to
interact with a Web server. No file-sharing access on the Web
server machine is needed, nor are FTP or telnet access required.
No proprietary file system sharing calls are necessary.

The Server Extensions are designed to work with any standard Web
server using the Common Gateway Interface (CGI), the
near-universal Web server extension mechanism. This includes
freeware and shareware servers such as those from Apache, CERN
and NCSA, and commercial web servers from Netscape, Microsoft,
and O'Reilly and Associates. The Server Extensions are designed
to be easily ported to all popular hardware and software
platforms for cross-platform Web server compatibility. See
FrontPage Server Extensions: Supported Platforms for a complete
list of the operating systems and Web servers for which the
Server Extensions are available.

On Windows Web servers, the Server Extensions are integrated
with Microsoft Visual SourceSafe and support version control and
check-ins and check-outs of files from the Web server.

The Server Extensions are also used by Microsoft Visual InterDev
in the same way that they are used by Microsoft FrontPage.

FrontPage Webs

FrontPage works with World Wide Web content by managing
FrontPage webs. You can think of a FrontPage web as a project.
It contains all the pages, images, and other files that make up
a Web site. Authors can create, delete, open, and close
FrontPage webs using the FrontPage Explorer and FrontPage Editor
on a client computer. A FrontPage web can be stored on a remote
Web server computer, a Web server running on the same computer
as the client program, or in the client computer's file system.

Many of the features of a FrontPage web require the FrontPage
Server Extensions to be on the server containing the FrontPage
web. Some of the features of FrontPage webs that are supported
by the FrontPage Server Extensions are:
  * A full hyperlink map of all files in a FrontPage web. The
    FrontPage Explorer displays hyperlinks using this hyperlink
    map. When a FrontPage web is copied from one Web server to
    another, the entire hyperlink map is recalculated.
  * A full-text index of all Web pages in a FrontPage web. This
    lets end-users search a FrontPage web for pages containing
    words or phrases.
  * A persistent structure that authors can create and
    manipulate. This structure defines the key pages in a
    FrontPage web and the relationships among these pages.
    Authors operate on the structure of a FrontPage web in the
    FrontPage Explorer. When the structure of a FrontPage web is
    changed, affected pages are updated to reflect the changes.
  * Web themes. A theme is a set of color-coordinated page
    elements, including background colors, text colors, bullets,
    borders, and horizontal lines. By applying a theme to a
    FrontPage web, an author can easily give a FrontPage web a
    consistent, attractive appearance. When a new theme is
    applied to a FrontPage web, all pages are automatically
    updated to use it.
  * A Tasks list containing the tasks needed to complete a
    FrontPage web. Tasks are linked to the pages on which they
    occur.
  * Unique security settings. Each FrontPage web can be made
    available to a different group of administrators, authors
    and end-users.

FrontPage supports two kinds of FrontPage webs: root webs and
sub-webs. A root web is a FrontPage web that is the top level
content directory of a Web server or, in a multihosting
environment, of a virtual Web server. It can have many levels of
subdirectories, containing it's content. There can be only one
root web per Web Server or virtual Web server.

A single root web can support a number of sub-webs. A sub-web is
a complete FrontPage web that is a subdirectory of the root web.
Sub-webs can only exist one level below the root web. Each
sub-web can have many levels of subdirectories, making up its
content. Sub-webs cannot have sub-webs.

Even though sub-webs appear below the root web in the Web
server's file system and URL space, the root web does not
include the content in its sub-webs. This separation of content
is done by the FrontPage Server Extensions.

The root web and all sub-webs on a server have separate copies
of the Server Extensions installed, or have stub executables of
the Server Extensions programs. Having separate Server
Extensions copies for each FrontPage web lets the Web server
enforce different end-user, author, and administrator
permissions on each FrontPage web, since FrontPage uses the Web
server's built-in security mechanism to control access.

FrontPage webs can be implemented on a Web server and accessed
by Web browsers in the following ways:
  * As private domain names, such as "www.mycompany.com." These
    are usually implemented as virtual servers on the same
    physical server machine using multihosting. Private domain
    name customers each get their own root web and have the
    option of creating sub-webs.
  * As a common or shared domain but with private virtual
    servers, as in "www.mycompany.myprovider.com," where
    "myprovider.com" is a shared domain and "www.mycompany" is a
    private virtual server. Private virtual server customers on
    a shared domain each get their own root web and have the
    option of creating sub-webs.
  * As a URL on an Internet service provider's server machine,
    as in "www.myprovider.com/mycompany." URL customers get a
    single sub-web.

FrontPage Authoring Support

In FrontPage, authors create Web pages and entire Web sites
using FrontPage on a client computer (a PC or Macintosh). The
FrontPage client programs are the FrontPage Explorer and the
FrontPage Editor.
  * The FrontPage Explorer is the FrontPage tool for creating,
    designing, viewing, maintaining, and publishing FrontPage
    webs. Various views in the FrontPage Explorer provide
    different ways of looking at and modifying the contents of a
    FrontPage web.

  * The FrontPage Editor is the FrontPage tool for creating,
    editing, and testing World Wide Web pages. As an author adds
    text, tables, forms, images, controls and other elements to
    a page, the FrontPage Editor displays it in WYSIWYG style,
    as it would appear in a Web browser. The FrontPage Editor is
    fully integrated with the FrontPage Explorer.

Much of the FrontPage Explorer and Editor's functionality is
supported by the FrontPage Server Extensions. Some examples are:
  * Saving documents to FrontPage webs.
  * Creating, copying, and publishing FrontPage webs.
  * The Tasks view, containing a list of tasks needed to
    complete a FrontPage web.
  * FrontPage web-structure editing. An author defines the
    structure of a FrontPage web in the FrontPage Explorer's
    Navigation View and inserts navigation bars in the FrontPage
    Editor. FrontPage navigation bars automatically create the
    hyperlinks that express the FrontPage web's structure. If
    the author changes the structure in the Navigation View, all
    FrontPage navigation bars automatically update these
    hyperlinks.
  * FrontPage components (also called WebBot components).
    FrontPage includes a rich set of active components that
    update pages when a change occurs in the FrontPage web. For
    example, the Table of Contents component keeps an updated
    table of contents of the entire FrontPage web. When an
    author moves a page, the table of contents is updated.
    Another FrontPage component, the Include component, inserts
    the contents of one page into another. If the inserted page
    changes, all pages that include it are automatically
    updated.
  * Hyperlink map. A FrontPage web's hyperlink map is browsable
    in the FrontPage Explorer's Hyperlink View. Using this map,
    FrontPage updates affected hyperlinks in the FrontPage web
    when a page is moved or renamed.
  * Themes. Authors select FrontPage web themes in the FrontPage
    Explorer, or they can apply a theme to a single page in the
    FrontPage Editor. When the theme for a FrontPage web
    changes, FrontPage automatically updates every page in the
    FrontPage web to use the new theme.

FrontPage Administrative Support

The FrontPage Server Extensions provides a set of
web-administration tools that can be used remotely from the
FrontPage Explorer. These tools provide access control and
general Web-administration functionality. The Server Extensions
support three levels of access control of FrontPage webs:
administrator, author, and browser.
  * Administering permission gives a user, group of users, or a
    computer permission to administer the FrontPage web.
  * Authoring permission gives a user, group of users, or a
    computer permission to open the FrontPage web in the
    FrontPage Explorer and edit its pages and files.
  * Browsing permission gives a user, group of users, or a
    computer permission to browse the FrontPage web when it is
    published on the Internet or on an intranet.

For a full discussion of FrontPage Server Extension
administrative capabilities, along with a general discussion of
Server Extensions security issues, see The FrontPage Server
Extensions: Security Considerations.

FrontPage Browse-time Support

FrontPage browse-time support occurs when a user views a page in
a FrontPage web from a Web browser. Browse-time support is
implemented in the FrontPage Server Extensions as FrontPage
components (also called WebBot components).

A FrontPage component is an active object that is inserted on an
HTML page using the FrontPage Editor. It has a persistent state
that is encoded as HTML comments. FrontPage components typically
produce as their output HTML that is inserted in the surrounding
HTML page. FrontPage components can be active at authoring-time,
while the FrontPage Editor and Explorer are in use, or at
browse-time. For example, the Include component is an
authoring-time component that includes the contents of one page
in another.

Some browse-time FrontPage components are:

  Search Form
    The Search Form uses the full text index created by the
    Server Extensions. It appears as a form on a page. When
    a user submits a Search Form containing words to locate,
    the Search Form returns hyperlinks to all pages in a
    FrontPage web that contain the words.

  E-mail Form Handler
    The E-mail Form Handler gathers information from a form,
    formats the information, and sends it to an e-mail
    address.

  Discussion Form Handler
    The Discussion Form Handler lets users participate in an
    online discussion. It collects information from a form,
    formats it into an HTML page, and adds the page to a
    table of contents and to a text index.

When a user browses an HTML page containing a browse-time
FrontPage component, the Server Extensions do whatever
processing is required and then generate a new HTML page to
display the results of the operation. For example, a Search Form
will generate an HTML list of hyperlinks to pages and an E-mail
Form Handler will generate a page confirming that a form's
contents have been processed and sent to an e-mail address.

An HTML page with no browse-time FrontPage components does not
use the Server Extensions when a user browses the page. Instead,
the normal Web server page-retrieval process occurs.

Publishing FrontPage Webs

Publishing a FrontPage web means making the FrontPage web
available to users for browsing from a Web server, either on an
intranet or on the Internet. The Internet and intranet cases
typically use different methods of publishing.

In Internet publishing, the most common method is for an author
to create a FrontPage web on a Web server installed on the
client computer. (When the FrontPage client program is
installed, FrontPage optionally installs a Web server with the
Server Extensions on the client computer.) Then, when the
FrontPage web is completed and tested, the author publishes it
to an Internet service provider's Web server using the FrontPage
Explorer's Publish FrontPage Web command. Authoring on a local
Web server is efficient because it does not require an author to
be connected to an Internet service provider while working on a
FrontPage web.

The Publish FrontPage Web command copies the FrontPage web from
a source (desktop) Web server to a destination (production) Web
server in batch mode. Only new or changed pages and files are
copied by default. Pages and files deleted from the source
FrontPage web are also deleted from the destination web.

When an author publishes a FrontPage web using the Publish
FrontPage Web command, the home page is renamed, if necessary,
to match the naming-convention on the destination Web server.
Also, all FrontPage components in the FrontPage web are
regenerated to take advantage of platform-specific
functionality. For example when a FrontPage web is published to
an IIS server containing Microsoft Index Server, any Search
Forms are configured to use the Index Server.

In Intranet publishing, the most common method does not require
the Publish FrontPage Web command. Instead, an author works
directly on a Web server machine on an internal network, which
is typically used to share information inside an organization.
In this method, whenever a page is opened from the Web server
and edited, the change is published to the intranet when it is
saved from the FrontPage Editor.

FrontPage Product Architecture

The FrontPage client system communicates with a Web server via
the FrontPage Explorer. The library dedicated to communicating
from the client is the WEC (Web Extender Client), a private
FrontPage library. This library communicates via WinSock and
TCP/IP. Wizards and custom applications on the client
communicate with the Editor and Explorer using OLE automation.

The FrontPage client tools communicate with the Server
Extensions using HTTP, the same protocol used to communicate
between Web browsers and Web servers. FrontPage implements a
remote procedure call (RPC) mechanism on top of the HTTP "POST"
request, so that the FrontPage client can request documents,
update the Tasks list, add new authors, and so on. The Web
server sees "POST" requests addressed to the Server Extensions
CGI programs and directs those requests accordingly. FrontPage
correctly communicates between client and server through
firewalls (proxy servers). FrontPage does not use or require the
HTTP "PUT" request. As described in the HTTP specification,
"PUT" sends a document to a Web server. However, few Web servers
implement "PUT." Therefore, FrontPage uses the
universally-implemented HTTP "POST" request for all
communications with the Server Extensions.

For most web servers, the Server Extensions are accessed by the
Web server using the Common Gateway Interface (CGI), the
near-universal Web server extension mechanism. The
implementation of CGI differs somewhat among Web servers and
platforms. For example, most Unix web servers invoke a CGI
extension by running it in a separate fork, whereas some Windows
NT web servers support a Dynamic Link Library (DLL) variant of
CGI-style communication that incurs less overhead. But the
information flow is similar for all CGI implementations:
user-driven values and environment parameters are passed to the
CGI extension using a block of name/value pairs, and the CGI
extension program returns a result in HTML format.

The Server Extensions are divided into three libraries:
  * admin.dll for FrontPage web administration
  * author.dll for FrontPage web authoring support
  * shtml.dll for browse-time support

FrontPage Extensibility

FrontPage is extensible in the following areas:
  * Web wizards and page wizards
  * Web themes and page themes
  * menu commands
  * FrontPage components

The Microsoft FrontPage Software Developer's Kit, which is
included on the FrontPage CD-ROM in the \SDK folder, contains
full documentation for adding these features, including examples
and sample code.

FrontPage Client and Server Extensions Compatibility

The FrontPage Server Extensions exist for FrontPage client
versions 1.1, FrontPage 97, and FrontPage 98. Each FrontPage
client release is accompanied by a new Server Extensions release
that supports the new features of the client. For example, the
current release, FrontPage 98, is accompanied by a new FrontPage
98 Server Extensions release. It is always most effective to use
the most up-to-date versions of the FrontPage client and the
Server Extensions.

Each new release of the Server Extensions is backward compatible
with previous FrontPage client versions so that it continues to
support the client's functionality at each earlier level. For
example, a FrontPage 97 client can open and edit a FrontPage web
from a Web server that has the FrontPage 98 Server Extensions
installed with no loss of functionality in the FrontPage 97
client. However, the client will not be able to access new
Server Extensions functionality added for the FrontPage 98
client such as applying themes to a FrontPage web or creating
and saving a FrontPage web structure.

A FrontPage client can also open and edit FrontPage webs on a
Web server containing an earlier version of the Server
Extensions. However, the client will not be able to use its
newer features, because they will not be supported by the
earlier version of the Server Extensions.

Bug fixes and patches are occasionally issued for the current
released version of the Server Extensions . Older versions of
the Server Extensions do not receive these occasional updates.
However, patches to the current version of the Server Extensions
will work with earlier versions of the FrontPage client.

FrontPage Server Extensions: Supported Platforms

The following table provides the complete list of operating
systems and Web servers for which the FrontPage Server
Extensions are available.

   On the following operating systems:  | The FrontPage Server
                            Extensions
                 are available for the following
                          Web servers:

                              UNIX

                  Digital UNIX 3.2c, 4.0 (Alpha)
                      BSD/OS 2.1 (Intel x86)
                      BSD/OS 3.0 (Intel x86)
            Linux 3.03 (Red Hat Software) (Intel x86)
                   HP/UX 9.03, 10.01 (PA-RISC)
                IRIX 5.3, 6.2 (Silicon Graphics)
                    Solaris 2.4, 2.5 (SPARC)
                  SunOS 4.1.3, 4.1.4 (SPARC)  |

                        Apache 1.1.3, 1.2
                            CERN 3.0
          NCSA 1.5.2 (we do not support 1.5a 0r 1.5.1)
                  Netscape Commerce Server 1.12
               Netscape Communications Server 1.12
               Netscape Enterprise Server 2.0, 3.0
                     Netscape FastTrack 2.0

    Windows NT Server, Windows NT Workstation, and Windows 95
                                .
                        Intel x86 Win 32
                                .
                                .
                                .
                                .
                                .
                                .
                                .
                                .

                Windows NT Server 4.0 or higher,
            Windows NT Workstation 4.0 or higher  |

  Internet Information Server 2.0 or higher, including IIS 4.0
     Microsoft Peer Web Services (on Windows NT Workstation)
                  Netscape Commerce Server 1.12
               Netscape Communications Server 1.12
                 Netscape Enterprise 2.0 and 3.0
                      Netscape FastTrack 2.0
                        O'Reilly WebSite
          Microsoft Personal Web Server (on Windows 95)
                  FrontPage Personal Web Server

  Microsoft Internet Information Server2.0 or higher, including
                             IIS 4.0
     Microsoft Peer Web Services (on Windows NT Workstation)

