Updating from a Previous or Shareware Version
Once you've registered the product you will get a new copy of the library files sent to you via a registration link. The registered version ships with all source code PRG files.
To update to the latest version you need to:
- Install the new files from the registered package
- Install over the old ones or delete the old files first
- Recompile all of the library code
wwClient.appif upgrading from the Shareware version
In the shareware version
wwclient.app holds all the Client Tools library files in pre-compiled and shareware mode format. In the registered version this file is not used and therefore it needs to be deleted. It's important to delete it because you may still run
DO wwClient to load all libraries, but that will now trigger
wwClient.prg to load the libraries.
To delete the file:
ERASE FILE wwclient.app
After installing a new version be sure to recompile all classes and PRG files manually by using something like the following from the VFP IDE command line:
ERASE FILE classes\*.fxp COMPILE classes\*.prg
to ensure all files are up to date when you run the code. If you've added the libraries to a project make sure that you also recompile your project explicitly with the
COMPILE EXE <yourApp> from <yourApp> RECOMPILE (or in the Project dialog with the Recompile Checkbox set) to force updating of all files.
The shareware version uses
DO wwClient.app to load libraries - this file is not shipped with the registered version of the Client tools and we recommend you change your code to directly load the libraries that you want to use individually.
We recommend you load all the libraries you actually use in an application at the start of the application in one place using
SET PROCEDURE TO <wwClientClass> ADDITIVE, since it's so much easier to reason about versions and where and how libraries are loaded.
But... it's obviously not a requirement and you can load on demand, or use
NEWOBJECT(). Keep in mind that in most cases
NEWOBJECT() is considerably slower than
CREATEOBJECT() on a pre-loaded library especially on many repeated instantiations.
When explicitly loading individual libraries, use code like the following by running the class PRG files directly to load dependencies:
DO wwHttp DO wwSql DO wwDotnetBridge
If you prefer to be more explicit you can also explicitly load libraries instead, but if you do, you're responsible for loading all required dependencies. For example, to load
wwHttp with all of its dependencies you need to use are:
SET PROCEDURE TO wwHTTP ADDITIVE SET PROCEDURE TO wwUtils ADDITIVE SET PROCEDURE TO wwAPI ADDITIVE
as opposed to the simpler:
which does the same thing. You can always check the
.prg file for the dependencies required.
We also ship
wwclient.prgso if you don't want to change anything from the shareware
DO wwClient.appyou can just replace with
DO wwClient.prginstead, and effectively get the same behavior as the .app file from the source files. But be aware it'll pull in all libraries into your project when you compile, which I wouldn't recommend. It's better to only include what you actually need.
A number of the Client Tools libraries have dependencies on various
dll files, and these files need to be kept in sync with the FoxPro PRG classes in each released version of the Client Tools.
Although we don't frequently change the dependency relationships between DLL and PRG classes, they do change occasionally. You can find the explicit changes in the Change log in the Breaking Changes section of each release.
However, the safer, recommended approach is to keep the DLLs and PRG files in sync to ensure they are a matched set.
These following two DLLs are specific to the tool so the version should match the
Major.Minor Client Tools release version. You should update these with each update to the Client Tools as they are used extensively for many support features.
These libraries are third party libraries. They are occasionally updated and should match the version of the files used in the Client Tools release.
- Newtonsoft.Json.dll (any JSON features)
- Renci.SshNet.dll (wwsftp)
- Markdig.dll (MarkdownParser)
These are old libraries that will never be updated, so they don't need to be updated.
Comment or report problem with topic