WebHub Release Notes for v2.069, v2.070, v2.071, v2.072, v2.073, v2.074, v2.075, v2.076, v2.077
This file was last updated 11-Aug-2008

Skip to: WebHub Object Pascal Components    The Hub    WebHubAdmin    WebHubView    Runners   

WebHub Object Pascal Components

Instructions for Existing Customers
How to convert WebHub projects made in 1995-2005 to the latest syntax stage which is 2.14 Download RTF file
Reminder: convert DFM files to plaintext before upgrading
Use the DFM Converter to convert old binary-format DFM files to plain-text in preparation for running search&replace tools on them. You should do this NOW to your existing projects, regardless of whether you are upgrading WebHub now or in the future, because it makes all search efforts easier. download DFMConverter.zip
Use FuzRegEx (or your favorite utility) to do the replacements.
Browse this folder for FuzRegEx scripts that quickly upgrade Delphi projects and whteko files.
Components use configuration version 004 "cv004" v2.069
FYI: DTDs for cv004
Readme: WHConfiguration-cv004.pdf
Components are being transitioned over to loading all settings from XML not INI.
WebServer renamed Request v2.071
TWebServer class renamed TwhRequest and WebServer property renamed Request.
WebOutput renamed Response v2.071
TWebAppOutput class renamed TwhResponse and WebOutput property renamed Response.
TWebOutput class renamed TwhResponseSimple (does not use app object).
OutputFile renamed ResponseFilespec
TWebOutputApp renamed to TwhRespondingApp v2.071
AppID renamed AppIDEx; TheAppID renamed AppID v2.071
Now, AppIDEx is the property that might contain the application process identifier.
Now, AppID is the property that is a pure string without any dots or numbers.
Literals renamed StringVars v2.071
Literal also renamed to StringVar (singular).
Checked renamed BoolVars v2.071
The plural group of checkmark variables on the session object has been renamed to BoolVars.
The singular shortcut for checkmark variables on the app object has been renamed to BoolVar.
Locals renamed LocalVars v2.071
The SETLOCAL command has been renamed SETLOCALVAR.
TextAreas renamed TxtVars v2.071
In .whteko files, use TxtVar. instead of Textarea.
WebSession renamed Session v2.071
TWebCommandLine renamed TwhConnection v2.071
pWebCommandLine renamed pConnection (webCall.pas)
TWebPage renamed TwhPage v2.071
ThtWebApp renamed TwhApplication v2.071
pWebApp unchanged; unit webApp.pas
ThtdbWebApp renamed TwhdbApplication
TWebInfo renamed TwhCentralInfo v2.071
All web action components renamed with Twh.. prefix v2.071
Helper objects renamed as well
In Delphi, Projects > WebHub > "New AppID" brings up a new wizard v2.074
This wizard makes it especially easy to define a new AppID. This wizard creates the startup configuration file for you, plus a starter .whteko file with your home page, lets you specify some important settings, and optionally configures everything for use with StreamCatcher and/or Dreamweaver.
This wizard is designed for cv004.
In WebHub v2.069 to v2.073 the wizard generated an INI configuration file. As of v2.074 it generates an XML configuration file.
In WebHub v2.075, the CentralInfo component has a "New AppID" verb which brings up the same wizard.
Components organized further; properties renamed v2.070
The list of changes is getting too long to keep here in free-form text.
The good news is that a DFM Converter is available to help you convert old binary-format DFM files to plain-text so that you can run search&replace tools on them. download
We have built a FuzRegex script to assist with doing the search&replace operations. Most of the changes have been internal to the WebHub core components. Advanced users may need to make some adjustments to their own custom code.
For example, WebSetups is obsolete. Instead, use pWebApp.CentralInfo.List.
For example, AppID is no longer a propertly on the TwhConnection object. Instead, use pWebApp.AppID.
For example, ClassNameToCSSName(Sender.ClassName) is obsolete. Change it to something like this, where TwhdbScan is the correct type for your situation: TwhdbScan(Sender).ClassNameForCSS.
HTTP version defaults to 1.1 v2.070
The HttpMaj and HttpMin properties have been renamed to HttpMajorVersion and HttpMinorVersion, and they both default to 1 now. Previously, the minor version defaulted to 0.
TwhdbChart component fixed/enhanded; TeeChart support added v2.071
Code that worked with TChartFX directly was removed (this component is not available in D09, Kylix and .NET). Instead, a common interface to work with various charting solutions based on events handlers was created.
Now TwhdbChart supports several types of graphic files, depending on platform. BMP and JPEG support is present on all platforms; GIF in .NET only; PNG in .NET and Kylix. Support of any other type can be achieved by inheritance from TImageType base class.
Units: wdbChart.pas, wdbChartFX.pas, wdbTeeChart.pas
dmWebHub.pas is deprecated; see whsample_EvtHandlers.pas v2.072
It is no longer necessary nor recommended to inherit from dmWebHub.pas for all WebHub projects.
The demos still use most of those event handlers, however they are connected through the Init method in the whsample_EvtHandlers.pas unit instead of from dmWebHub.pas, and importantly, no inheritance is involved.
Restorer: ignores 0 byte WHAppRestorer.xml file v2.069
In v2.64 to v2.68, the Restorer would raise an exception if its configuration file were 0 bytes.
This fix can be patched backwards into earlier versions upon request.
TtpAppRole now supports up to 255 instances. v2.071
This component used to support 64 instances. It now supports 255 instances (separate running EXEs) per computer.
It was implemented using Named Pipes in Windows (as was already done for Linux).
TwhdbScan supports new "Button" parameter v2.071
Syntax: ScanComponent.execute|ButtonKeyword|PhraseIfActive||PhraseIfInactive
ScanComponent would the name of your TwhdbScan component.
Keyword must be one of: First, Prior, Next, Last
PhraseIfActive should be one like: <a href="(~where~)ScanComponent.Next">next</a>
The purpose of this new syntax is to make it easier for page designers to see all the snippets which will combine to create a scrolling dataset. The original technique of loading the delimiters, captions and buttonspecs from a configuration file is still supported; however that syntax has been changed to XML-style.
If this new syntax is used, the scan component's ButtonsWhere property should be set to dsbNone.
MacroStart and MacroEnd now default to parentils v2.073
In whMacroAffixes.pas, the important variables MacroStart and MacroEnd now default to the new parentils instead of the %= ... =% symbols used in WebHub syntax stage 1.
Sequence buttons now show only image, no text v2.073
The visible phrase (caption) is used to make the alt attribute inside the img tag.
Pages run on HTTPS only if explicitly specified v2.073
In earlier versions of WebHub, once a surfer went onto a page that used HTTPS, the surfer would stay on HTTPS unless a ServerID were specified for the target page.
Now the mode will revert to HTTP immediately, unless of course the target page is specifically remapped to a ServerProfile that has its scheme set to HTTPS.
ServerProfileIDStandard is required in the application-level configuration file. ALWAYS. FOR ALL WEBHUB APPS. FROM NOW ON.
ServerProfileIDSecure is required if your web application makes any use of https.
WebIniFL unit is obsolete v2.074
If you have this unit listed in your uses clause, remove it. It was used for configuration via INI file.
htHashString function improved v2.076
Many thanks to A. Potter in the U.K. for researching htHashString and providing a replacement function.
A patch is available for earlier versions of WebHub - upon request.
F2H component registered on WebHub palette v2.076
The Delphi Form to HTML component ("F2H"), which renders a Delphi form as HTML, is now included with WebHub. Previous versions of WebHub included a limited/demo version of the same component.
This component works in any type of WebHub application, not just in WebHub apps. However, it has special features to make integration with WebHub relatively easy.
See also: DFM2HTML demo on demos.href.com.

The Hub, WebHubAdmin, WebHubView

Hub, WebHubAdmin, WebHubView use configuration version 004 "cv004" v2.069
Hub requires runner of same version v2.070
The Hub v2.070 is NOT compatible with earlier runners. Please use runisa.dll or runbin.exe v2.070.
Same for v2.071.
WebHubView: Tools > Down-WebApps feature v2.071
This feature, which requests that all WebHub applications except the hub.exe close immediately, has been moved from WebHubAdmin to WebHubView.
WebHubView: Cover and Uncover Apps v2.077
The Tools menu now has an option which let you cover and uncover WebHub applications based on AppID.
New configuration possibility v2.071
Previously, setting up the flags to make the prologue perfect on IIS and Apache on the same machine was difficult. Old example code:
      { on demos.href.com }
      if posci('Apache',CgiServerSoftware)>0 then
        { Apache web server runs on demos.href.com }
        { You MUST set UseHttpHeader to false for use with cgi-bin on Apache }
        pWebApp.WebOutput.UseHttpHeader := False;
        pWebApp.DynURLConfig.UseShortFormat := False;
        pWebApp.WebOutput.UseHttpHeader := True;
        { Note that HttpColon has already been set to "False", which works
          with IIS and is compatible with IE 6 SP 1 released in Dec 2002}
        pWebApp.DynURLConfig.UseShortFormat := True;
Now the same idea can be put directly into the WHNetworkInfo.xml file.


Runners use configuration version 004 "cv004" v2.069
Runners respect "refresh" command v2.070
You can now use runisa.dll?refresh to clear the cache of system message details. This is helpful when you are designing your system messages.
More security: runners respect admin domain v2.070
In WHNetworkInfo.xml, under LocalMachine/Runners/Runner/AdminAccess, you can specify a domain name to be used for administrative commands such as echo, refresh, and cover pages. Example: scheme="https" authority="www.href.com:443"
When restricting features, the runner allows access via the admin domain plus localhost plus
For public internet servers, we recommend that you leave the admin domain as localhost or change it to a subdomain which you carefully control via your http server. You should NOT use your normal public web address as your admin domain!
We also recommend that you set the scheme to https. You can obtain a free SSL certificate from Thawte. After the 30 days, you will have to ignore the security warning about the expiration date but the certificate will function nonetheless.
Ideally, use a domain name that is restricted by your VPN.
Planned downtime: runners support "cover pages" v2.070
With "cover pages", you can perform planned maintenance on your WebHub application while leaving a carefully customized message for your site visitors, including fill-ins for the date/time of maintenance start, the expected duration, and the reason for the downtime.
Command to turn ON a cover page for an app: http://localhost/scripts/runisa.dll?coverwhapp-appid
Command to turn OFF a cover page for an app: http://localhost/scripts/runisa.dll?uncoverwhapp-appid
Each AppID may have its own cover page.
Cover page files should be named *.whmsg and are configured through System Messasges.
The cover page feature is fully working as of v2.076. The runner writes a simple CoverPageInfo file if it is asked to cover an app and the CoverPageInfo file does not exist. Use WebHubView to manually cover an app while providing the expected-downtime-minutes and reason.
WebHubRunner.cfg is obsolete v2.070
Move any custom configuration settings from WebHubRunner.cfg to WHNetworkInfo.xml

Installation Program

Installers upgraded v2.069
Always run the WebHub Runtime installer first, then the WebHub Object Pascal installer.
The installers support cv004.

FYI: Valid DTDs on w3.org
FYI: Valid DTDs on w3.org
FYI: Reasonable source for Kylix licenses: Kylix 3 Pro
Copyright © 2006 HREF Tools Corp. All Rights Reserved. TPACK and STREAMCATCHER are registered trademarks of HREF Tools Corp.