Monday, October 14, 2019PrintSubscribe
Announcing Offline Sync Add-On
Code On Time is pleased to announce Offline Sync Add-On!  This new product converts your online application into an offline app capable of running in disconnected mode on tablets, phones, and laptops. Simply enable the add-on in the project and mark a few pages as “offline”. This is it!

The application shown in the next screen shot has been rapidly constructed with Code On Time app generator.

End users can access this app in any modern web browser on a device with Wi-Fi and Cellular connectivity.

What if your end users do not have a robust network connection? Offline Sync is the answer!

Enable the add-on in the Settings | Features of the projects.

Click Finish and activate Project Designer

Select a data page that will be available in disconnected / offline mode. Enable “Offline” checkbox and save the page. Repeat as needed.

Exit designer and proceed to generate the app. 

Copy the URL of the app in the web browser.

Install Cloud On Time app from the App Store of your mobile device. This app is available for  iOS, Mac OS, Windows, and Android (November 2017).

Start the app on the device. Cloud On Time app looks virtually the same on all platforms.

Tap the Connect button, paste the application URL in the input and press Save. 

Tap OK and Cloud On Time will load your online application in the hosted web view. 

Cloud On Time will proceed to install the front end of your application as soon as you sign in. The front end is composed on HTML pages, JavaScript, CSS, and Fonts. The front end files are transferred from the online application to the device.

This will be followed by downloading of data linked to “offline” pages. Offline Sync will follow the discovered data relationships and transfer the relevant records. User identity and application access control rules will limit the number of records. Downloaded information is persisted in JSON format on the device next to the front end files.

Your application is now running on the mobile device in hosted web view.

The cloud icon with a checkmark is displayed next to the user avatar indicating that the user is working in offline mode. The availability of network connection is irrelevant since Offline Sync is executing all data requests directly on the device.

If data is changed then Offline Sync executes the requests to update, insert, and delete records directly on the JSON copy of data while storing the requests in the log file. The cloud icon will change to indicate that the synchronization with the cloud is required.

End user can work with the app for extended period of time, close the app and restart the device as needed. The changes are safely persisted on the device. If the application on the server is down then this fact will have no impact on the “offline” users.

A tap on the cloud icon will activate synchronization. This process does require a network connection and the application on the server to be running.

If the user taps on Synchronize button, then the log of changes is submitted to the application on the server for execution. Errors are returned to the device for user review and reconciliation. 

If the synchronization was successful and “Refresh Data” checkbox is not selected, then the log of changes on the device is cleared and the data on the device is considered to be “in-sync”. It means that the local data does not reflect the true state of the database on the server. 

If the user elects to refresh data, then the successful sync is followed by synchronization of the front end files and downloading of the complete dataset from the server. Once again the data will be limited to those records that the user can access as defined by application access control rules.

The pricing for Offline Sync starts at $9 USD per device per month. See the license agreement and pricing examples at

Code On Time will begin shipping purchased licenses on October 18, 2019. Links to download the software will be delivered via email. The automated distribution system for Offline Sync Add-On will be launched later this year.

Offline Sync Add-On relies on the Offline Data Processor (ODP) included in the framework of applications created with Code On Time app generator. ODP does not require licensing and enables the exciting new feature Transaction Data Input in both offline and online applications. 

If at least one Data View field is included in the form used to create new records, then the end user will be able to enter child data rows along with the master on the pages marked as “offline”. ODP accumulates new child records on the client and submits them alone with the master in a single transaction when the master record is saved.

Watch this cool feature in action at

Offline Sync Add-On and Offline Data Processor are compatible with Code On Time v8.9.0.0 and up.

Sunday, July 28, 2019PrintSubscribe
Save and Continue
Action command Update now support SaveAndContinue argument in Touch UI with the release This special argument value changes the behavior of the form after successful completion of Update command on the server. The form will not return to the previous view and remain in edit mode. It will retrieve the server values and display them to the user. Any visible DataView fields will be refreshed.

User can continue editing the record. Any server-side changes to the master and detail rows are visible to the user.

We will incorporate Update/SaveAndContinue action in the "Form" scope in the new projects by default . The new button will be displayed between Save and Cancel buttons in edit mode. Define this action explicitly to have it in your apps today.

The forms will also start displaying Next and Previous navigation buttons that will perform Update/SaveAndContinue as needed. You can try the hidden "Next" form navigation feature in "read" mode today by pressing Right Arrow key.

Release introduces the following features and bug fixes:
  • (Touch UI) Action with command Update and argument SaveAndContinue will not close the form after successful execution. The form will stay in the current state and refresh the current row with the server data. The form will also sync the child data views.
  • (App Gen) New command line option -DataModel changes behavior of -generate and -refresh commands. App generator will not produce the source code when the option is specified. It also resets the data controllers. If the data models are changed manually or via automated scripts then the next execute of -generate command will incorporate the model changes into the app.
  • (Framework) New method ActionArgs.AddValues allows adding values to the Values array.
  • (Framework) Method SqlStatement.Configure accepts DbCommand parameter. It allows configuration of command properties such as CommandTimeout to be applied to the entire application framework. Create a partial class SqlStatement in Data namespace to override the method.
  • (Framework)  Server-side API _invoke allows specifying additional path/query information. 
  • (Framework) OAuth access_token and refresh_token must be non-blank to be written to OAuth configuration. Refreshing of tokens will not cause loss of token. 
  • (Framework) Site Content now supports ModifiedDate and CreatedDate to allow date-driven manipulation of content in the upcoming Content Add-On.
  • (App Gen) Prevented  interruption of Project Designer operation when exception "Unable to initialize native support external to the web worker process..."  raised while trying to access HTTP cache. The error seems  to be have its source in ASP.NET 4.8  HTTP Activation feature.
  • (Touch UI) Apps based on Touch UI do not specify data-show-modal-pages attribute on "div" elements representing data views. This setting applies only if Classic UI is also supported.
  • (App Gen) File web.config is correctly processed with "regex" expressions when created for the first time.

Friday, July 26, 2019PrintSubscribe
Cloud On Time for Windows
Cloud On Time for Windows is based on Chromium Embedded Framework v75.1.14.

It supports Offline Sync and fixed several issues related to version detection.
Labels: Mobile