Some highlights for the C10 release

These are highlights of new features in 10.0, for the complete list of fixes, changes and enhancements please refer to the readme text file as its always up to date with all of the latest new features, changes and fixes. All of this information is in the main Help file under the “What’s New in this Version” topic with links to the related topic content.

Compiler:
Big performance boost – in most cases your build time will be cut in half (or better).

  • New scanner for the Clarion (CLW) compiler
  • Support of nested OMIT/COMPILE blocks. Every source/include file
    can have nested OMIT/COMPILE blocks with a maximum nesting equal to 8 with a condition that when evaluated does not omit source, plus one additional OMIT/COMPILE with condition evaluated to omit source code.
  • The compiiler’s scanner uses the OS settings to determine the type of characters to expect. That allows for local national language alphanumerics to be used in identifiers (LABEL).

Dictionary Global Search and Replace
Powerful global Search and Replace for all the settings/attributes of FILEs, FIELDs.and KEYs.

TCP Networking – Client/Server communications
Drop-in a template to put network communications into your applications (using TCP/IP over a LAN/WAN or the Internet). You can pass messages (or files) between applications running on the same computer, and from one computer to another. You can also broadcast messages to all connected computers or processes. The templates and underlying QuickAppConnect class handles all the difficulties associated with socket programming.

The associated Code templates listed below provide support for the following
Socket “Actions” without writing any code:

  • Connect to Server
  • Disconnect from Server
  • Start Server
  • Stop Server
  • Initialize IP and Name
  • Send Message
  • Send Notification
  • Broadcast Notification (broadcasts a message to all connected apps)
  • Broadcast Shutdown (tells all connected apps to shutdown)

Language extensions – templates for Sending Emails, Emailing Reports, and Sending SMS (Text) messages
The new implementation for emails supersedes the prior implementation, and provides many more features, and is far easier to use. Based on the latest support implemented in the Microsoft .Net Framework.
(The original email implementation continues to ship for backward compatibility.)

Use HTTP or HTTPS to download web pages, or any other type of file. You can also post form data to web servers. Very easy way to send HTTP web requests (and receive responses) to Web Servers, REST Web Services, or standard Web Services, with the most commonly used HTTP verbs; POST, GET, PUT, and DELETE.

Web Requests (PUT, GET, POST, DELETE) via HTTP/HTTPS
HTTPWebRequest()
HTTPWebRequestToFile()

Amazon Simple Storage Service (Amazon S3)
Easily provide secure cloud server access in your App using the Amazon Simple Storage Service (Amazon S3).  Use it for backing up data, sharing files amongst remote clients, news feeds, etc.

JSON Support

JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write, and easy for computer languages to parse and generate. JSON is an easier to use alternative to XML. JSON can be fetched or uploaded with an HttpWebRequest.

Image manipulation functions;
ImageToPNG, ImageRotateFlip, ImageSaveThumbnail

Background Threads

The WorkingThreadManager class allows you to run a PROCEDURE on a background thread without any UI, and receive events on its status. The implementation is by a template and the class design is thread-safe.

Exception log viewer

The exception log viewer will read the map files created when you built your project and use these to turn the stack trace in the exception log into a list of procedures so that you can quickly and easily find the point of failure.

Project System

Support for the – #file copy srcfile dstfile – command.  If the command is included via the PRAGMA command in a source file, the copy occurs directly after the compilation of the source file.  If the source file does not need recompiling, the copy occurs directly after the source file would have been compiled.

The project language supports the – #file copy srcfile – command.  This comand copies the srcfile to the destination directory for the current project.  The copy only occurs if the build is successful.  The copy occurs after the destination binary (the exe, dll or lib) has been built.

Application Options

Now you can choose to have the %FILE Template symbol return files in the same order that they are displayed in the dictionary editor.  This means that some lists of files inside the application generator will appear the same as the dictionary editor.  However, take note, the File sort order also affects the order of code generation, so that files will be generated in a different order to what they were previously. To turn this feature on you need to go to Tools/Application Options/Generation tab and check the “Sort %FILE the same as the Dictionary editor” check box. Note: If you use LIKE in your file structures the changed order of generated FILEs could possibly cause compiler errors.

Lock Retries
You can now set how many times generator tries to gain access to a file in the Application Options window. This option can be useful in situations where automatic backups are running and briefly locking files.

Template Registry
The Application Generator now supports product version identifiers in the naming convention for the TemplateRegistry.trf file.  For example, Clarion 10 by default uses the name TemplateRegistry10.trf.
If the Application Generator does not find a registry .trf file with the version appended name, it then looks for TemplateRegistry.trf (without the version identifier).  By default when a new .trf is created it is created using the version number as part of the file name.

Dictionary Editor

  • The Dictionary Editor now remembers dialog sizes and positions
  • The Dictionary Editor now stops you from adding GROUP fields to keys of SQL tables
  • The Dictionary Editor now stops you from adding dimensioned fields to a KEY

ClarionCL
Now you can trace the location of a file and the folders search order used by the Redirection system from ClarionCL using the /rt switch.

MSSQL Driver
Now you can get the MSSQL driver to use SCOPE_IDENTITY to retrieve server identity values by adding /AUTOINCUSESSCOPEIDENTITY=TRUE in the driver string

SQL Drivers (all)
The SQL drivers now set FILEERROR() and FILEERRORCODE() to give more details when you try to define a KEY who’s component is a GROUP

IDE
When you select “Open Containing Folder” from the context menu of the tab for a document in the IDE it now highlights the file in the opened folder

Open File Dialogs
New option to use the Redirection System File Open Dialog as the default.

Text Editor
Find All in the text editor now runs in the background allowing you to do other things while the search is continuing.