Roadmap 2017/2018

See what's coming next.

Roadmap 2017/2018 | 2016 | 2015

1. Touch UI (October)

We have made an enormous investment in creating a mobile- and desktop-friendly user interface called Touch UI. The purpose is to enable RAD implementation of apps that are friendly to both mouse and touch-enabled devices. We have spent close to 2 years working on perfecting this exciting technology. A few remaining features are being finalized as we speak. This is a summary of features that are expected to be fully completed in October/November of 2016.

Keyboard Shortcuts for Actions Completed in Release 8.6.0.0

Developers will be able to define keyboard shortcuts for each action. For example, configure Ctrl+S to trigger the Update action on a form, or Esc to trigger the Cancel action to close the form.

Advanced Search and User Defined Filters Completed in Release 8.6.3.0

The new Advanced Search will utilize survey controllers to allow the use of our suite of powerful field inputs. Type-specific field filters will integrate with the new Advanced Search and permit the user to rapidly add and customize search operations via shortcuts in the user interface.

Quick Find Enhancements Scheduled for Release 8.6.6.0 (July)

The developer can limit the scope of Quick Find queries by adding “$quickfind” to the Search Options of a field. Completed in 8.6.0.0

Users will be able to interactively select fields defining the scope of Quick Find. Presently, Quick Find includes all fields in the query.

Quick Find will show a panel below that displays suggestions based on known values from the currently displayed rows, as well as previous searches. Quick Find will also support operations (for example, UnitPrice>=10). The panel will also defining the search scope to limit the query to a specific set of fields from the main data view or relevant child data views.

Rich Text Scheduled for Release 8.6.6.0 (July)

Enable the editing of HTML content across all devices in an easy-to-use fashion.

Inline Editing Scheduled for Release 8.9.0.0 (August-September)

The ends users will be able to edit data directly in the grid, list, or cards, exactly in the same fashion as editing is done in forms. Complex data fields such as radio button lists or checkbox lists will be displayed in popups in order to preserve the layout of the view.

Drawers in List/Card/Grid Scheduled for Release 8.9.0.0 (September)

An optional form layout can be defined for list, card, and grid items. The end users can expand any number of rows/items at runtime if a drawer form is defined for the “grid” view. Drawer forms may contain tabs, categories, and fields of any type including “data view”.  The data view fields in drawer forms may also have their own drawer layouts, which enables infinite master-detail relationships and hierarchies. This type of presentation is frequently called “grid-in-grid”.

Data view fields configured to display charts or maps can be placed in the drawer layout in order to provide complex dashboards for each row/item presented to the user.

If a memo, image, or data view field is present in “grid1” and no custom layout is defined, then the field will not be displayed as column. Instead, a drawer form will be created to display all such fields.

List and Cards view styles will have automatically created “drawer” layouts for data view fields.

These presentation styles will also support custom templates to define the layout of list item or card. If a custom definition is not provided, then an automatic item/card layout will be created.

Hyper-scrolling Scheduled for Release 8.9.0.0 (September)

The grid, list, and card view styles will offer a vertical scrollbar with the ability to scroll to an exact location in the data. A floating tooltip will be displayed showing the row numbers that will be loaded when the user releases the scrollbar. When “Search By First Letter” is enabled for the data view, the scrollbar will represent letters in the alphabet. The tooltip will show the first letter at the current position.

Client-side Manipulation of Grid Scheduled for Release 8.9.0.0 (September)

The user will be able to rearrange, resize, and hide columns in the grid view. These customizations will be saved in the cache of the user’s browser.

Group Aggregates Scheduled for Release 8.9.0.0 (September)

Groups defined by the developer or user will display counts, sums, and any other aggregates configured in the Project Designer. Groups will also be collapsible.

Paging in Forms Scheduled for Release 8.9.0.0 (September)

Forms will allow paging/swiping between records and work interchangeably with grid/list/cards.

Search-by-Form Scheduled for Release 8.9.0.0 (September)

If search is activated in the form view, then the form will switch into a special search mode. Values entered in the fields will be used as "equals" criteria to search. Form buttons will be replaced with "Search" and "Cancel".

Promoted and Swipe Actions

Promoted actions that will be displayed under the floating “promo” button displayed in the bottom left or right of the screen. Swipe actions will be triggered or displayed when a user swipes left or right in grid, list, or card view. Swiping gestures will enable navigation between data rows displayed in forms.

Action Notifications

Brief, non-modal messages will be shown in response to user actions or triggered by business rules, confirming the completion of actions such as “Saved record”, “Created record”, etc.

Google reCAPTCHA Integration for Public-Facing Forms

A single tag will enable Google reCAPTCHA in public-facing forms to ensure that only humans are entering data.

Re-Authorization for Sensitive Data

A single tag will require the user to re-confirm their identity before they can edit or submit a form, even if the user has already logged in.

One-to-One Relationship

Three new lookup item styles will be introduced: "OneToOne", "OneToOneLookup", and "OneToOneAutoComplete".

These lookups will behave like their counterparts, "Lookup" and "Complete", with one exception:

When the entered text is not matched to an equivalent lookup value, the value will remain as-is. The user interface will not display the "Create New" option. Instead, the lookup value will be processed on the server. The generic server-side handler will insert or update to the lookup controller as necessary. "Borrowed" fields specified in the Copy property will be included in the update or insert expression. The "Upsert" will execute in the context of a database transaction.

Benefits

With the above features completed, Touch UI becomes a world-class framework that works across all browsers and devices, and covers a vast number of use cases when creating line-of-business web applications of any complexity. Our unparalleled data input user interface allows your users to get their jobs done easier and faster.
Back to Top

2. SaaS  (July)

SharePoint Online, Google, Facebook, Windows Live Completed in Release 8.6.0.0

Code On Time and Cloud On Time apps will offer the ability to run in Software-as-a-Service (SaaS) mode, allowing developers to bring their web apps into other popular portals and products such as Office 365, SharePoint, Google Apps, and DotNetNuke.

SaaS feature will have to be enabled on the application level. We will provide themes to match several hosting environments. The server components of apps will respond to requests from authorized hosts in SaaS mode.

Native connector components (web parts, modules, etc.) will be provided for popular portals. Native component will require a registration key from the SaaS-enabled application for configuration. The live portal page of the hosting environment will connect to the SaaS-enabled app running on your server.

A connector instance on the portal page will perform requests to an externally hosted Code Time or Cloud On Time application. The connector will communicate the user identity, roles, and registration key to the app. The app will validate the registration key, perform single sign-on, and display the application content in the portal page.

https://codeontime.com/learn/sharepoint/add-in/configuration

DotNetNuke Scheduled for Release 8.6.6.0 (June-July)

A native DNN component will be implemented to operate as an Open Authentication provider. It will be able to confirm user identity and serve roles and tokens as claims to client applications. An Open Authentication Handler compatible with the DNN provider will be included in Code On Time apps to allow using DNN as a source of user identity.

Benefits

Developers will be able to integrate their applications into 3rd party products and popular portals.
Back to Top

3. Native Apps Scheduled for 8.7.0.0 (August)

Release 8.6.0.0 came out March 3, 2017.

The release introduces new Touch UI 2017 and provided the foundation for future Native Online/Offline Apps. The foundation is provided by the following features:

The next release 8.7.0.0 is expected to go out in the second week of August. This release will introduce generation of native apps for iOS, Android, and Windows 10.

Here is how you will build a native app with the release 8.7.0.0:

  1. Create an application with SPA page model for a "real" database engine such SQL Server, Oracle, MySql, etc.
  2. Publish your app to a server connected to the internet. Customers without a dedicated server will be able to establish their infrastructure in Microsoft Azure and publish apps straight from the app generator in minutes.
  3. Indicate platforms required for native deployment. This will enable CORs support in the app.
  4. Publish an app.
  5. App generator will make special versions of all pages in "_client" deployment folders. All scripts and CSS stylesheets will be copied there as well. Native platform code will be also created.
  6. Deploy the native code to the app stores or use a stock app provided by Code On Time for instant testing.
  7. Install the app and run it on native device.The native code will create a native WebView instance and load local instances of the pages, JavaScript, and CSS. Pages will make remote requests to the server side components. User login and session state is managed through the feature called Identity Manager.
Back to Top

4. Offline  (August-September)

Native Offline Apps Scheduled for 8.8.0.0 (August-September)

The new "Offline" property will be available for application pages.

The data controllers will be generated in ".json" format instead of ".xml". We also need that for both new CoT v.9 and Cloud On Time. The new format of controllers is used by built-in Project Designer. Scheduled for release 8.7.0.0 (August).

If at least one page is marked as "Offline", then the following will happen when a native app is running:

  1. Native application will download controllers and data in JSON format from the server.
  2. Only offline pages will be visible/selectable in navigation system of the app if there is no connection.
  3. The client-side application framework will execute any requests to read or update data against the offline copy downloaded in step 1. The log of requests to update data will be persisted locally. There is no need for additional software such as SQLite or similar libraries.
  4. "Cloud" icon will be displayed on the application toolbar. There will be several states for the icon:
    • Offline
    • Online + No Local Data Changes
    • Online + Local Changes Require Sync
  5. If the app is "online" then "Cloud" button will be in "Online+" state. If the button is pushed then the following will happen:
    1. The log of updates will be send to the server via the Batch Import API introduced in 8.5.12.0 if data synchronization is required.
    2. Conflict errors will be reconciled by the user when needed
    3. Fresh copies of controllers and data in JSON format will be retrieved from the server replacing the previous offline data set.

Transactional Data Input Scheduled for 8.8.0.0 (August-September)

Native Online and Web apps will benefit from this new "offline" capability as well. Starting with the release 8.8.8.0, forms will work in "offline" mode. It will be possible to enter child records when a new record is created. The data will be posted to the server only when the master record is posted. This capability will be available in all product editions.

Offline Data Processor Scheduled for 8.8.0.0 (August-September)

The framework of apps created with Code On Time has a unique data processing architecture. It allows alternative methods of data processing at runtime. The framework has the following characteristics and behaviors:

  • Our framework reads data by calling GetPage method for any requests to read data
  • The framework writes data by calling Execute method for any requests to modify data
  • The framework expects a formal response for both GetPage and Execute
  • Responses can be produced by any agent
  • Server-side application code is such an agent. It implements these requests by consulting definitions of data controllers and interacting with database engines.
  • A data controller is a formal representation of a database object - e.g. Suppliers, Products, etc
  • Both “offline” and “transactional” data input are handling reading and writing of data through the same component of the framework called "Offline Data Processor". It provides an alternative execution agent for GetPage and Execute methods:
  • Server-side code of the application framework composes SQL statements SELECT, UPDATE, INSERT, and DELETE to handle GetPage and Execute requests
  • SQL statements are passed to the database engine for execution
  • The framework formalizes the response and returns it to the caller in JSON format

Both “offline” and “transactional” data input are handling reading and writing of data through the same component of the framework called "Offline Data Processor". It provides an alternative execution agent for GetPage and Execute methods:

  • It is written in JavaScript and is included in the client-side framework
  • A dedicated component of Offline Processor downloads data proactively by interacting with the server-side code via a sequence of multiple GetPage requests to read data that must be available offline
  • This component also downloads JSON-encoded representations of data controllers for the raw data
  • Offline Processor interprets requests to read data in response to GetPage by consulting JSON representation of controller and scanning raw data
  • Offline Processor implements Execute requests by interpreting arguments and applying changes to the raw data in JSON format
  • It keeps track of Execute arguments in the array.
  • Raw data, JSON controllers, and array of Execute arguments are persisted in the local storage of the device
  • Offline Processor is always engaged in Offline Mode.
  • Offline Processor is engaged in online applications when data in child data views is changed by user
  • The end user has the illusion that data is persisted in the original data source after records are created or changed since the raw data is also changed accordingly by the processor. Requests to read data are also executed against the changed raw data
  • Discarded changes are simply abandoned. Offline Processor retrieves the previous copy of raw data from the local device storage, which makes it possible to have “Transaction Input” experience for the application users both in “online” and “offline” mode.
  • Logged requests to change data are executed by server-side code of application against the database when the user saves the master record or requests synchronization of offline data with the server.

Benefits

These days, more people are using mobile devices than traditional desktop computers. Every business intent on staying modern needs to have a foothold into mobile apps. Code On Time native apps offer the ability to instantly take that step into the future. Native apps offer the ability to provide a consistent and integrated experience to end users on their mobile devices, and allow your app to always be in your user’s pocket. Integration with device notifications enable a persistent connection with your data. The web browser is always there as an alternative option.

Back to Top

5. Code On Time v9  (August)

Code On Time developers use the Project Designer to customize the application configuration, regenerate the app, and preview the result in the web browser. This requires frequent switching between a live app and the design environment.

We decided to integrate design capabilities directly into live apps and improve your rapid application development experience. For example, if the text of a label in the form needs to be changed, then you will do it on the spot in the live app. If the position of a field in a form or the column of a grid requires adjustment, then we want you to drag the user interface element to the desired location. Missing a field in the form? Drag the field from the Project Explorer, drop it in the live form, and instantly see the result.

To make this possible, the Designer will be integrated into the live app, and will appear alongside the application pages when activated.

Code On Time v9 has a brand new mode of operation on top of the original foundation.

Previous releases of the application generator rely on a WebBrowser component embedded in a native Windows Forms application. Locally stored HTML pages are loaded in the browser. The pages provide configuration screens implemented with Desktop UI allowing design-time configuration of project elements. A native tree component provides the foundation of the Project Explorer. When the application is generated, the app generator performs steps defined by the project configuration to create the web app. An instance of IIS Express is started pointing to the generated application. The default browser is launched with the local web address of the application. Browser requests are served by the IIS Express instance.

Benefits

Code On Time v9 will greatly enhance the productivity of Code On Time developers and shorten the development cycle when building line-of-business apps. Instant visual tracking of user interface elements allows quickly finding configuration properties. Task-oriented wizards will be available throughout the Project Explorer hierarchy. They will provide a quick and convenient shortcuts for common multi-step tasks, such as adding connection strings, defining project logos, configuring many-to-many fields, adding data view fields, and etc. Even expert users will benefit from rapid execution of various tasks through wizards.
Back to Top

6. Cloud On Time  (September)

Code On Time v9 will be enhanced to run in the cloud. We will be calling it Cloud On Time.

Public Cloud

It will...

Updates of COT v9 and it’s cloud counterpart will go hand-in-hand. It, in fact, is exactly the same product.

Private Cloud

Cloud On Time offers a vastly superior RAD environment to life-of-business application developers with any skill level. The hosted environment eliminates the need to maintain servers and software releases. A low monthly subscription fee makes it affordable to most budget constrained organizations and individuals.

However, privacy- and security- conscious customers may require complete control over their database and application. In order to offer the terrific features of Cloud On Time in a private and secure fashion, the software will be provided as the pre-compiled and ready to run Private Cloud option.

A perpetual license will allow customers to install the software on their own private infrastructure. Maintenance updates will be included with the purchase. Renewal maintenance licences will also be available.

Benefits

The unified application development experience across both private and cloud environment will allow Code On Time customers to leverage their expertise and comfortably selecting the right environment for a given project.

Users will have access to all of the latest features from the palm of their hand. Gone are the days of experimenting and installing different versions of .NET frameworks, connector components, databases, and Visual Studio. Cloud On Time gives a new definition to “Rapid Application Development”.

Back to Top

7. Data Driven Surveys (September)

Survey data controllers offer a lightweight method to capture arbitrary data from the user. One can think of survey data controllers as “smart forms”. These smart forms can be designed visually using COT v9 or Cloud On Time.

The JavaScript definition of the survey data controller can be stored in the rows of a database table. A dedicated feature will be offered for our customers to allow capturing survey responses at runtime. Developers will be able to set up catalogues of smart forms. Dedicated tables of smart form assignments will capture user responses.

One can envision the following use cases for data driven surveys within the custom application:

Any time it is necessary to collect data with a structure not known at design time, the data driven survey will prove to be an invaluable tool.

Here are instructions for building a hypothetical audit system:

  1. Configure a database with the following schema:

  2. Create an app and use the Project Designer to make the following changes:

    1. Tag "Definition" field in "Surveys" controller as "survey-form".

    2. Tag "Response" field in "Audits" controller as "survey-data".

  3. Run the application and define a few surveys. An example of a survey is shown below:

    A survey is a hierarchy of topics and questions. The questions are equivalent to inputs in Touch UI. In fact, a survey without a topic is a standard form - this technology is used throughout Touch UI. Dynamically created surveys are used to implement batch edit, import, and advanced search screens. It is possible to create complex surveys with hundreds of topics and questions, and have them rendered as wizards and tabs.

  4. When the user starts working with an audit record, the Response field will render as a special round button that displays the completion progress.

  5. Activating the Response field will open the survey form. The user can create a new response or update an existing response.

  6. Saving the form will write the JSON-encoded answers to the Response field.

    {
        "Customer": "abc",
        "Order": "xyz"
        ...
    }
  7. Developers can create business rules to parse the response and write the data to separate tables or external systems when necessary.

  8. Code On Time v9 will have the ability to visually design survey forms. Alternatively, developers can dynamically generate survey forms.

  9. A product called Survey Form Editor will be available. If the Survey Form Editor is installed in the binary folder of the app, then data fields tagged as “survey-form” will display a visual form designer directly in the application at run-time. The Survey Form Editor will have a subset of capabilities in COTv9 Form Designer. It does not require Code On Time to be installed. It will include the ability to map survey question answers to the columns of the application tables. When the survey response is captured, the mapped answers will be distributed to the specified tables automatically.

    Price for Code On Time and Private Cloud customers:

    • 1 Core - $1999/year
    • 2 Core - $2999/year
    • 4 Core - $3999/year

    Software maintenance releases is included for one year. There are no restrictions on the number of users filling out surveys.

Benefits

Many business applications require custom data collection. Built-in data driven surveys make on-demand data collection possible at a fraction of a cost of typical implementations. The world class data input capabilities of Touch UI will make simple the data gathering on mobile and desktop devices online and offline.
Back to Top

8. ERP Integration  (August-September)

Open Authentication Integration Completed in 8.6.5.0

Integrating with SharePoint relies on Open Authentication. The application captures an OAuth access token when registering SharePoint Single Sign-On as explained here when pressing “Add System Identity”.

The same capabilities will be implemented for Google SSO and Microsoft Graph SSO (Azure AD, Windows Live, Office 365).

Enterprise Blob Adapters Scheduled for 8.8.0.0

Upload your BLOB content to SharePoint, Google Drive, and more. Additional blob adapters for SharePoint and Google Drive will be available.

REST API Data Controllers Scheduled for 8.8.0.0

The last component of the ERP Integration strategy is the ability to create data controllers from any REST API. The Data Model Builder will allow creating data models defined by the output of an API request. Optional specifications to Create, Update, and Delete data will be available for each Data model based on REST protocol. The application generator will make use of the configuration at runtime to perform data operations.

Model Builder will support creating Data Models for SharePoint Lists with simplified automatic configuration of REST endpoints out-of-the-box. It will make possible creating apps that work on top of SharePoint with the direct read/write operations.

We are planning to add more “known” APIs to simplify creation of data controllers based on user-specified REST endpoints in the future.

Benefits

Online and offline access to ERP data sources.
Back to Top

9. Voice Input/Commands  (December-January)

Automatic integration of generated apps with Actions on Google will enable configuring data controllers to accept voice-activated data input from Google Assistant and Google Home. Unique architecture of apps created with Code On Time makes it possible to offer voice alternative to Touch input.

We will also consider voice command and data input integration for Amazon, Microsoft, and Apple devices as the next steps of evolution of Data Aquarium Framework and Touch UI.

Benefits

Effortless voice commands and data input in the generated apps.
Back to Top

10. Node.js  (February-April)

Code On Time v9 migrates XML data controllers to JSON format. The development environment of CoTv9 and Cloud On Time is one and the same. The JSON controllers will be modified, and data controller logs will be produced directly in the browser. We will provide an alternative implementation of the server-side framework written/generated completely in JavaScript. There will be no dependences on .NET. The framework will be extended with additional support for MongoDB and DocumentDB as server-side database engines. It will be possible to write server-side business rules completely in JavaScript. We will also provide a mechanism to invoke business rules written in C# or other languages through REST APIs.

Code On Time developers will have a choice to implement their apps using the Microsoft platform with C#/Visual Basic, or Node.js with JavaScript. The objective is to give our customers the option to write universal business applications on a platform of their choice. If your app exclusively uses SQL and JavaScript business rules, then your app can be hosted on either a Linux or Windows server.

Benefits

Provides additional deployment options for Code On Time v9 apps to Linux and Mac OS X platforms.
Back to Top
Disclaimer: This roadmap does not represent a guarantee that the features described in this document will be delivered on the specified dates. The delivery dates may change, and features may be added or removed at any time. It is merely an outline of our thoughts for the future, and is subject to change at our discretion.
Talk to us: Let us know what you want to see in the product. Open a support ticket or share an idea with the community.