NetTalk Upgrade to NetTalk 14
This document should be read in
conjunction with the
Release History,
which detail items added to, missing, or removed from specific builds.
Introduction
This document works through the major changes between
NetTalk 12 and NetTalk 14. It is designed for users, currently experienced
with NetTalk 12 to quickly identify and use the new features in NetTalk
14. It covers things that are likely to break when you upgrade your app,
and instructions on how to correct the application to allow for a smooth
upgrade. It also covers other new features which you may wish to make use
of in your application.
If you are upgrading from an earlier NetTalk version, then be sure to work
through the upgrade notes for each version, which can be found on the
toolbar at the top of this page.
I've upgraded to NetTalk 14 and I'm getting
Compile Errors!
The most common cause for compile errors (in NetTalk
class code, or generated code) is because one of the other related tools
you are using has not been updated. Especially StringTheory, xFiles,
jFiles and Reflection.
StringTheory version 3.62 or later is required.
xFiles version 4.24 or later is required.
jFiles version 3.03 or later is required.
Reflection version 1.23 or later is required.
Using NetTalk 12 (or later) with Clarion 8, 9
or 9.1.
Invalid Use of Private Data
Clarion 8 and 9 do not provide access to the FileManager.HasAutoInc property. This means
you'll get an Invalid Use of Private Data
error when compiling, on a line that looks like this;
If p_forceWrite and RM.Me.HasAutoInc = false
!8000
RM.Me.TryInsert()
End
To correct this open your \clarion\libsrc\win\abfile.inc
file.
Search for the line;
HasAutoInc
BYTE,PROTECTED ! Auto-increment or not flag
and comment out the ,PROTECTED part - leaving
HasAutoInc
BYTE ! ,PROTECTED ! Auto-increment or not flag
Support for Windows XP Deprecated
Support for Windows XP has officially been deprecated.
Some features may not work on Windows XP.
Distribution
- CLANET DLL has been updated. This should be deployed with your
application
- OpenSSL has been updated. See Deploying
a TLS Client or Server for more information on deploying TLS
servers and Clients.
- CaRoot.Pem has been updated. This should be deployed with your
application.
New Features and Changes
The goal of this section is a quick overview of things
that have changed since NetTalk 12 which experienced NetTalk 12 users will
want to know about.
NOTE: NetTalk uses many of the latest
methods and functions in the following products. If you are using these
then please update them at the same time.
StringTheory 3,
Reflection,
xFiles 4,
jFiles 3,
WinEvent 5,
Draw 4,
Chrome Explorer 2
All
Desktop
- Maps: Added NetMapsHEREPlatform
class. Use Global Extension template setting to switch maps to using
this class. Necessary if you have a HERE Platform account.
- NetDns Classes Added.
- DNSLookup
and NetAddressLookup
functions added
- NetHttp (Webclient) class - AuthToken field added
- NetWebClient - No
longer follows redirects from HTTP to HTTPS by default. This
could leak API Secrets. Rather correct the URL.
- NetWebClient - Support for Content-Encoding:
Gzip added. Allows compressed POST requests.
- NetWebClient - Added support for QUERY verb (as a safe, idempotent
request method that can carry request content.)
- Minor updates to cope with various edge cases.
Web Server
- Improved Settings Control Template. Repopulate
of template on the WebServer window is required.
- Run time Settings are now documented in a separate
document.
- Some settings (Family, IP Bind Address, Ports) can be set on Command
Line. Allows multiple instances of the same Exe to be run from
the same folder.
- Added support for LetsEncrypt DNS
Challenges, especially for LAN servers.
- Added support for API
Challenges, along with an API
Challenge server.
- Added support for Certificate KEY file passwords.
- Added support for generating
a robot.txt file.
- -
- Add CSS for Sticky
Page Headers.
- -
- Added support for Small Browse Buttons
- Added support for in-browse menus
- Added support for Drag
And Drop Row Ordering on a browse.
- Added support for Format
button on browses (allows user to set column order.)
- Added support for optional Browse
Column Resizing (when in Grid mode), and JsonList Column
Resizing
- -
- Added support for Form
Labels on all form field types.
- Added support for suppressing
the prompt column, globally, procedure, tab and field levels.
- Added support for suppressing
the comment column, globally.
- Added support for the HTML Pattern attribute.
- -
- Added support for Client
Side Compression.
- Added support for Table
(t:) tags.
- Added: Global settings for Login Required.
- Accept: Incoming QUERY verb
- -
- Save and Restore sessions used JSON instead of XML since jFiles is
always there, and xFiles is optional. Going from NT12 to NT14 will
not preserve sessions.
- NetWebSessions
Interface Changed. WebServer extension allows Session Manager
Class to be set.
- DeleteSession functionality changed: Sessions are now deleted on a
single thread, not multiple threads, if multiple sessions have
expired at the same time. This improves session deleting performance
by a lot.
- p_web._jsok renamed to p_web.jsok
- old name still exists, but in the long run the old name may be
removed. _Clean method removed. CreateSortHeader renamed to CreateBrowseHeader.
- Added nt-location.js file, ntl object.
- Internal optimizations and refactorings for performance
Web API Server
- All documentation fields now (optionally) allow HTML, including Net:f: and Net:t:
tags. Which means documentation can be be built outside the app, in
the web folder, or in a data table.
- Improved documentation engine allows for documenting of Nested
structures (like views, and queues-in-queues)
- Added support for optional View Nesting at the Service and Method
levels.
- Extended attribute support for Local Fields (not in a structure).
Apps
- mBuild has been removed. This will necessitate move the
manifest.json creation to the template.
- Better support for gauges, maps, locations, notifications
- Save photos (webcam or file upload) to local data (as blobs)
- More JavaScript template options
Changes Required to Convert your App from
NetTalk 12 to NetTalk 14
All
- Nothing at this time
Desktop
- Add the jFiles and Reflection Global extensions to the app.
- If you are using HERE Maps then you may want to switch to using the
"HERE Platform" login, Authentication and API. If you do this then you
can change the authentication, and CLASS on the NetTalk Global
Extension, Options tab.
Server
- Add the jFiles and Reflection Global extensions to the app.
- If you have a Settings Control Template on the WebServer procedure,
then delete it, and re-populate it. (see below for details.) If you
don't have it then add it.
- Check the WebServer and WebHandler for orphaned embed points. Some
methods in the classes have been renamed, or had their prototype
changed.
- If you are using the Maps script, and you are locating the map to
the current position, then turn on the Location scripts in the
WebServer procedure.
API Server
- NetWebService Procedures need to be set as Declare Globally.
Apps
- Add the jFiles and Reflection Global extensions to the app.
- If you are using the Maps script, and you are locating the map to
the current position, then turn on the Location scripts in the
WebServer procedure.
Populating Setting Control Template
Populating a Control template that has SHEET and TAB
controls can be tricky. These tips will help;
- If the control already exists then delete it form the screen. After
deleting the control then close the Window editor. Failure to close
the window before repopulating results in all the USE Equates being
wrong.
- If your Main Sheet does not have a SETTINGS tab then add one.
- Add the control template to the settings tab by;
- Select NetWebServerSettings on the Control Templates pad.
- With a single click place the top left corner of the controls on
the top left corner of the Settings Tab. (Nothing will appear to
happen)
- Move the mouse straight down about a centimeter, and about 3
pixels to the left.
- Click slowly, six times. (no more, no less) (about 2 seconds
between clicks.) You should then see the control template appear.
- IMMEDIATELY, without clicking ANYWHERE else, click the green
tick icon and close the editor.
For a visual example of adding the Control Template see ClarionLive
webinar #721, at around the 31 minute mark.
[End of this document]