Parastream™ PagePorter™

Using PagePorter with FrontPage

Co-managed projects can be the most powerful way to develop a web site, but there are definitely some points to bear in mind.

  1. Do not use FrontPage and Visual Studio .NET at the same time on a project. Use them one at a time as described later on.
  2. When you use the Visual Studio .NET Copy Project command to publish the project, make sure you use either the “Copy only files needed to run this application” or “Copy all project files” option. If you use the “Copy all files in the project folder” option, you may improperly publish some of the FrontPage files.

Project Files

Sharing a project between two authoring and publishing applications can be tricky. Knowing which files are controlled by FrontPage and which are controlled by PagePorter is essential. Knowing the rules that PagePorter and FrontPage use to publish files is equally important. These rules are spelled out in the following table.

FrontPage owns Files in the project folder that are not in a FrontPage subweb folder.
FrontPage publishes Files in the project folder that are not marked as “don’t publish.” There is a user option for publishing FrontPage subwebs.
PagePorter (Visual Studio .NET) owns Files added to the project.
PagePorter (Visual Studio .NET) publishes Depending on the Copy option in the Copy Web dialog; publish regardless of the FrontPage “don’t publish” setting:
  • Only files needed to run this application: Files in the project marked as “Content.”
  • All project files: All files in the project
  • All files in the source project folder: All files in the source project folder, including any FrontPage subwebs. Not recommended.

Making modifications to some things in PagePorter might require a “Recalculate Hyperlinks” and “Publish Site” operation the next time you open the project in FrontPage. Sometimes a page that is part of the PagePorter project is interrelated with a page managed by FrontPage. For instance, in you rename a file in PagePorter that has hyperlinks to that file managed by FrontPage, you will need to publish from FrontPage also to update the hyperlinks.

If you... You’ll need to... Explanation
Change the name of a file in a PagePorter project from PagePorter that has links from a FrontPage file publish from PagePorter and FrontPage. 1 PagePorter will update the links in the FrontPage project files, but cannot publish the FrontPage project files because they are not part of the project.
Change the name of a file in a FrontPage project from FrontPage that has links from a PagePorter file publish from FrontPage and PagePorter. 1 FrontPage will update the links in the PagePorter project files, but cannot publish the PagePorter project files because they are marked as “don’t publish.”
Change the navigation structure from FrontPage publish from FrontPage only. The navigation structure is rendered at runtime on PagePorter pages.
Change the navigation structure from PagePorter publish from PagePorter, then Recalculate Hyperlinks and Publish from FrontPage. FrontPage will need to update all of its pages in the web with Recalculate Hyperlinks, and then publish the updated pages to update the navigation structure.
Change Site Settings Parameters from FrontPage publish from FrontPage only. The substitution variables are rendered at runtime on PagePorter pages.
Change Site Settings Parameters from PagePorter publish from PagePorter, Recalculate Hyperlinks and Publish from FrontPage. FrontPage will need to update all of its pages in the web with Recalculate Hyperlinks, and then publish them to update the substitution variables in the affected FrontPage pages.
Change a Shared Border from FrontPage manually change the PagePorter border and Publish from PagePorter and FrontPage. There is no link between the FrontPage shared borders and the PagePorter shared borders.
Change a Shared Border from PagePorter manually change the FrontPage border and Publish from PagePorter and FrontPage. There is no link between the FrontPage shared borders and the PagePorter shared borders.
Convert a FrontPage page to a PagePorter page publish from PagePorter and FrontPage. 2 The FrontPage publish is required to change or remove the old FrontPage page from the web.
  1. If the file is referenced in the navigation structure (which is very likely), you’ll have to also apply the action regarding changing the navigation structure.
  2. Publishing from FrontPage is not necessary if the Replace the FrontPage page with a link to the PagePorter page option in the Conversion page of the Site Settings dialog is set. In this case the old FrontPage page, which is now basically a link to the new PagePorter page, is made part of the PagePorter project and will be published from PagePorter.

 

Based on this table, it is usually best to follow these suggestions:

Working with the Navigation Structure

In a FrontPage web, the navigation structure is stored in the /_vti_pvt/structure.cnf file. The local copy of this file is accessible to both FrontPage and PagePorter. However, this file is not accessible from the remote web server using the FrontPage web access method of the Copy Project command. This presents a problem in that PagePorter needs to include this file in the project and publish changes to it.

To work around this problem, the navigation structure is stored in the /_config/structure.cnf file by default in PagePorter projects. It is marked as “don’t publish” to prevent FrontPage from publishing it to the remote server. A new site settings variable vti_navigationsitemaps contains an array of filenames and/or data sources to use. When PagePorter reads the navigation structure, it reads from the first file or data source specified by the vti_navigationsitemaps variable. When PagePorter writes the navigation structure, it writes to all of the specified files and data sources.

On the remote web server, the navigation structure is read from whichever file (/_vti_pvt/structure.cnf or /_config/structure.cnf) has been most recently modified.

An advanced optimization of the remote web server involves adding the following code to the web.config file:

  <configSections>
    <sectionGroup name="Parastream.PagePorter">
      <section name="Application"
               type="System.Configuration.NameValueSectionHandler, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, Custom=null" />
    </sectionGroup>
  </configSections>

  <Parastream.PagePorter>
    <Application>
      <add key="IncludeFrontPageWeb" value="1" />
    </Application>
  </Parastream.PagePorter>

Setting the IncludeFrontPageWeb key to "1" tells the server to look for the FrontPage Site Settings and Navigation files in addition to the PagePorter files (default), while setting it to "0" tells the server to look only for the PagePorter files.

Working with Site Settings

In a FrontPage web, the site settings are stored in the /_vti_pvt/service.cnf file. The local copy of this file is accessible to both FrontPage and PagePorter. However, this file is not accessible from the remote web server using the FrontPage web access method of the Copy Project command. This presents a problem in that PagePorter needs to include this file in the project and publish changes to it.

To work around this problem, the site settings are stored in the /_config/service.cnf file in PagePorter projects. It is marked as “don’t publish” to prevent FrontPage from publishing it to the remote server. When PagePorter reads the site settings, it reads from the FrontPage /_vti_pvt/service.cnf file if the “Include a FrontPage web” setting is checked, or the PagePorter /_config/service.cnf file otherwise. When PagePorter writes the site settings, it writes to the FrontPage /_vti_pvt/service.cnf file if the “Include a FrontPage web” setting is checked, and the PagePorter /_config/service.cnf file if there is one in the project.

On the remote web server, site settings are read from whichever file has been most recently modified.

See Also

Supported FrontPage Features