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]