| **Navigation:**  What's New in this Version? >What's new in Clarion 10 | [[c11.htm|{{btn_prev_n.gif|Previous page}}]][[coming future.htm|{{btn_home_n.gif|Return to chapter overview}}]][[build notes for 11897.htm|{{btn_next_n.gif|Next page}}]] | | || {{logo.png|Logo}}[[welcomeclarion.htm|]] These are highlights of new features in 10.0,(Build 11834) for the complete list of fixes, changes and enhancements please refer to the readme text files issued with each new interim release.. **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 specify source not to be compiled .htm| OMIT]]/[[compile specify source to compile .htm|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 search.htm|Dictionary Global Search and Replace]] Powerful global **Search and Replace** for all the settings/attributes of FILEs, FIELDs.and KEYs. [[tcp template support.htm|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 Code templates 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) [[tcpip appendixf.htm|QuickAppConnectClass and methods]] [[tplextensionglobalcommunications.htm|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 via http.htm|Web Requests (PUT, GET, POST, DELETE) via HTTP/HTTPS]] [[httpwebrequest.htm|HTTPWebRequest]] [[httpwebrequesttofile.htm|HTTPWebRequestToFile]] [[amazon web service s3.htm|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, news feeds, etc. [[jsondataclass overview.htm|JSON Class]] 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.htm|HttpWebRequest.]] Image manipulation functions;\\ [[imagetopng.htm|ImageToPNG]], [[imagerotateflip.htm|ImageRotateFlip]], [[imagesavethumbnail.htm|ImageSaveThumbnail]] [[workingthreadmanager.htm|WorkingThreadManager Class]] The WorkingThreadManager class allows you to run a PROCEDURE on a background thread without any UI, and receive events on its status. The class design is thread-safe. Template {{workingthread.png|WorkingThread}} [[exception log viewer.htm|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 -** [[pragma filecopy.htm|#file copy srcfile dstfile]]** - command.  If the command is included via the [[pragma control pragma settings from source.htm|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:** You can now 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. {{applicationoptions2.png|ApplicationOptions2}} **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:** You can now trace the location of a file and the folders search order used by the redirection system from [[clarioncl exe.htm|ClarionCL]]** using the /rt switch.** **MSSQL Driver:** You can now get the MSSQL driver to use **SCOPE_IDENTITY** to retrieve server identity values by adding /[[autoincusesscopeidentity.htm|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. {{optionrediropen.png|OptionRedirOpen}} **Text Editor:** Find All in the text editor now runs in the background allowing you to do other things while the search is continuing.