Co-managed projects can be the most powerful way to develop a web site, but there are definitely some points to bear in mind.
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:
|
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. |
Based on this table, it is usually best to follow these suggestions:
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.
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.