You are on page 1of 5

Clarion 10 under the hood, Part 1

The first betas of Clarion 10 are now in the hands of participating third party folks and other developers.
What's new
We've previously published Bob Z's list of new features in Clarion 10 from the ClarionLive w ebinar. The
What's New document in Clarion 10 lists many of the same features plus a few more:
New templates for Sending Emails, Emailing Reports, and Sending SMS (Text) messages. The old
implementation continues to ship for backw ard compatibility.
Web Requests (PUT, GET, POST, DELETE) via HTTP/HTTPS - an easy w ay to send HTTP w eb requests (and
receive responses) to Web Servers, REST Web Services, or standard Web Services, w ith the most
commonly used HTTP verbs; POST, GET, PUT, and DELETE.
TCP Netw orking - Client/Server communications (templates to come in a later release). Connect to
server, Send Message/Command, Send Shutdow n Notification, Send Data packet w ith confirmation, Server
(Listen and Send), QuickAppConnectClass and methods.
Amazon Simple Storage Service (Amazon S3). Cloud data for your apps.
JSON Class improvements (JSON support has been around since 9.0)
Image manipulation functions: ImageToPNG, ImageRotateFlip, ImageSaveThumbnail
WorkingThreadManager Class allow s you to run a PROCEDURE on a background thread w ithout any UI, and
receive events on its status. Templates to come include: Start a background Procedure, Pause a background
Procedure, Restart a paused background Procedure, Cancel a background Procedure.
Dictionary Global Search and Replace
A new exception (GPF) log view er
A new scanner for the Clarion (CLW) compiler (Mark Goldberg has reported massively faster compiles)
Project System adds support for file copying
Option 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 w ill appear the same as
the dictionary editor. 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 w indow . This option can be useful in situations w here automatic backups are running and briefly
locking files.
Template Registry version identifiers. For example, Clarion 10 by default uses the name
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 /rt sw itch to trace file location using the redirection system
MSSQL Driver adds SCOPE_IDENTITY support
SQL drivers report more error detail w hen you try to define a KEY w hose component is a GROUP
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
Text editor's Find All runs in the background
Look and feel
The look and feel of the IDE is pretty much the same as it is for Clarion 9. Here's a comparison, w ith C9
above and C10 below .

New files
One of the first things I do w ith any new Clarion release is compare the install files w ith those from the

1 of 5

previous release.
Here are some of the interesting new files:
bin\Addins\DisplayBindings\ExceptionLogView er
Presumably this is the log view er mentioned in the release notes. The log view er is a handy utility that can
help you find the location of GPFs in your code. For instance, I induced a null reference GPF in the JSON
example app, saved the GPF info to a log file, then opened the GPF log in the view er (from the Tools menu).

If you've compiled in debug mode then w hat you'll see is pretty much the same as you'd get if you w ere
running your app using the debug version of ClaRUN.dll.
How ever if you're in release mode the exceptionlog view er does give you information you'd otherw ise have
to find by painstakingly tracing addresses as found in the map file. Here's the GPF w hen I compile in release

2 of 5

That's not particularly helpful. But if I click on Log Info and open the resulting log file in the exception view er I
get this:

That tells me that the GPF has something to do w ith the JSONDataClass's ClearObject method, and the calling
code is in TakeEvent, w hich is a big step tow ard finding the cause of my GPF.
bin\aw ssdk.dll
LibSrc\w in\ClaAw sS3.clw
LibSrc\w in\ClaAw
These files are for Amazon S3 support, and aw ssdk.dll is the Amazon Web Services SDK DLL. It's also a
.NET DLL, w hich pretty strongly suggests that Clarion's new support for Amazon S3 comes via some
interop. It also suggests that if you w ant to use the S3 support your customers w ill need .NET 3.5 installed.

3 of 5

Speaking of .NET versions, it's been pointed out in the new Clarion 10 new sgroup that the install now
requires .NET 4.
This appears to be 32 bit debugger code extracted into a DLL.
I don't see IPReq.exe in my previous installs. The properties say it's the IP Server Requestor. Perhaps this is
for H5...
These files are in support of the new background w orker thread.
LibSrc\w in\QuickSock.CLW
LibSrc\w in\QuickSock.INC
Contain code for QuickSocketClass and QuickAppConnectClass, for TCP communication. Much of this code
is commented out.
tem plate\w in\H5.TPL
tem plate\w in\H5GROUP.TPW
H5 is SoftVelocity's still-in-early-development tooling for a new w ay to create w eb applications w ith the
AppGen. The first H5 source files show ed up in Clarion 9.1, but this is the first release of a template that I'm
aw are of. H5.TPL contains an application extension and a procedure extension. No w ord yet on w hether it's
ready for experimentation or how to use it.
Changed files
Besides all the binary file changes you'd expect there are a number of source and template files that have
been modified:
LibSrc\w in\abapi.clw

4 of 5

LibSrc\w in\abprpdf.clw
LibSrc\w in\brw ext.clw
LibSrc\w in\ClaMail.CLW
LibSrc\w in\ClaMail.INC
LibSrc\w in\ClaRunExt.CLW
LibSrc\w in\ClaRunExt.INC
LibSrc\w in\EFOCUS.CLW
LibSrc\w in\equates.clw
LibSrc\w in\H5BROKER.INC
LibSrc\w in\H5CLIENT.INC
LibSrc\w in\H5CNTRLS.INC
LibSrc\w in\H5HTML.INC
LibSrc\w in\H5HTTP.INC
LibSrc\w in\H5JSL.INC
LibSrc\w in\H5LAYOUT.INC
LibSrc\w in\H5REPORT.INC
LibSrc\w in\H5SERVER.INC
LibSrc\w in\H5WINDOW.INC
LibSrc\w in\ICHTML.INC
LibSrc\w in\ICHTTP.INC
LibSrc\w in\ICJSL.INC
LibSrc\w in\JSON.CLW
LibSrc\w in\JSON.INC
LibSrc\w in\property.clw
LibSrc\w in\QuickXMLParser.clw
LibSrc\w in\
LibSrc\w in\
template\w in\ABBROWSE.TPW
template\w in\ClaTalk.TPL
template\w in\CTLBROW.TPW
template\w in\CW.TPL
template\w in\cw triggers.tpw
template\w in\ICONNECT.TPL
template\w in\RELATION.TPW
template\w in\rtarpdf.tpl
template\w in\VistaManifest.tpw

5 of 5