AJAX(112) App Studio(7) Apple(1) Application Builder(245) Application Factory(207) ASP.NET(95) ASP.NET 3.5(45) ASP.NET Code Generator(72) ASP.NET Membership(28) Azure(18) Barcode(2) Barcodes(3) BLOB(18) Business Rules(1) Business Rules/Logic(140) BYOD(13) Caching(2) Calendar(5) Charts(29) Cloud(14) Cloud On Time(2) Cloud On Time for Windows 7(2) Code Generator(54) Collaboration(11) command line(1) Conflict Detection(1) Content Management System(12) COT Tools for Excel(26) CRUD(1) Custom Actions(1) Data Aquarium Framework(122) Data Sheet(9) Data Sources(22) Database Lookups(50) Deployment(22) Designer(177) Device(1) DotNetNuke(12) EASE(20) Email(6) Features(101) Firebird(1) Form Builder(14) Globalization and Localization(6) How To(1) Hypermedia(2) Inline Editing(1) Installation(5) JavaScript(20) Kiosk(1) Low Code(3) Mac(1) Many-To-Many(4) Maps(6) Master/Detail(36) Microservices(4) Mobile(63) Mode Builder(3) Model Builder(3) MySQL(10) Native Apps(5) News(18) OAuth(8) OAuth Scopes(1) OAuth2(11) Offline(20) Offline Apps(4) Offline Sync(5) Oracle(10) PKCE(2) PostgreSQL(2) PWA(2) QR codes(2) Rapid Application Development(5) Reading Pane(2) Release Notes(179) Reports(48) REST(29) RESTful(29) RESTful Workshop(15) RFID tags(1) SaaS(7) Security(80) SharePoint(12) SPA(6) SQL Anywhere(3) SQL Server(26) SSO(1) Stored Procedure(4) Teamwork(15) Tips and Tricks(87) Tools for Excel(2) Touch UI(93) Transactions(5) Tutorials(183) Universal Windows Platform(3) User Interface(338) Video Tutorial(37) Web 2.0(100) Web App Generator(101) Web Application Generator(607) Web Form Builder(40) Web.Config(9) Workflow(28)
Friday, October 27, 2017PrintSubscribe
User Roles in SQL Business Rules

Code On Time release introduces ability to test user roles in SQL Business Rules and fixes several remaining issues related to the recent change to the folder structure of projects in the preparation to the Native App generation.

Testing Roles in SQL Business Rules

Developers can now access parameter @BusinessRules_UserRoles in the code of SQL Business Rules and test user roles for conditional processing.

For example, create a Transact-SQL business rule in Products data controller may look as follows:

if @UnitPrice > 30 AND CHARINDEX('Administrators', @BusinessRules_UserRoles) = 0
    set @Result_Error = 'Only admin can set a high price!'

Set Command Name of the rule to Insert|Update and Phase to Before. Run the app, login with a non-administrative account, and try to update a product with a price higher than $30.

SQL business rules tests user Roles to prevent data input in an app created with Code On Time app generator.

Use the corresponding “contains” function and parameter marker in front of “BusinessRules_UserRoles” when working with the database engines other than Microsoft SQL Server.

Bug Fixes

The following fixes are also included in the project.

  • Project Builder removes resources under bin folder.
  • Web App Factory marks js, css files as content.
  • File  ~/js/_ignore.txt is now marked as embeddedResource to allow compiler to build Visual Basic projects.
  • Removed "ToUniversalTime" in value converter to fix datetime shifting issue in ASPX apps.
Wednesday, May 13, 2015PrintSubscribe
Action Bar, See All, 250 Icons, Desktop Master-Detail Enhancements, Metadata Compression

Code On Time release significantly improves the speed of loading of complex master-detail pages in Desktop UI and introduces new user interface options in Touch UI. Both presentation modes can now take advantage of more than 250 icons  from Bootstrap library  integrated in the generated apps. Meta-data compression reduces the size of JSON responses for requests to read data by more than 60%.

Master-Detail Pages in Desktop UI

Desktop applications with complex master-detail pages will see immediate increase in speed of initial page loading and refreshing of selected master rows and linked children. We have recently discovered that a large number of data views may lead to degradation of page rendering. One customer has close to 40 data views connected in various master-detail configurations on a single page. Application essentially uses data views to create an electronic data record giving a comprehensive understanding of a business process at a glance. Application has been created two years ago and has performed very well. Recent modifications have uncovered that the same page is rather slow when produced with newer releases of Code On Time. We have corrected the issue – the page with 40 data views loads fluidly and rapidly.

Touch UI Enhancements

This release brings the action bar to Touch UI. Compare the screenshots of Products screen presented in two different interfaces.



User interface components of Touch UI look almost identical to the Desktop presentation. If the promoted actions are turned “off” in settings then the floating “+” button will disappear and New Products action will migrate back to the action bar.

Summary views now display “See All” button with the count of records when only a subset of records is visible. Summary views also keep track of the current selection.


Also note that the page title is not displayed anymore on the toolbar if there is enough space to display at least three menu options. The title will reappear in the toolbar on devices with narrows screens. The navigation menu migrates under “menu” button on the left-hand side of application toolbar.


We are committed to transforming Touch UI in a true replacement for the legacy Desktop user interface of generated apps. Future releases will allow displaying all levels of master-detail relationships on the pages in Summary mode. This release finally introduces complete support for cascading lookups in Touch UI. We now support dynamic lookups for Drop Down List, List Box, Radio Button List, and Check Box List with full processing of Context Fields.

Icons in Actions

It is now possible to use glyphicons from Bootstrap library as icons of actions in Desktop and Touch user interface. Touch UI also supports a dedicated set of icons from jQuery Mobile. See sample icons at  Follow the link to see configuration instructions. The screenshot below shows a custom glyphicon-leaf icon in configuration of New Products action.



Miscellaneous Enhancements

Here is the list of fixes included in this release:

  • Annotations are disabled in Touch UI. Multiple file upload will be implemented in the future instead of "one note" + "one file" at a time in Desktop UI.
  • New drag & drop file upload works with annotations in Desktop UI.
  • Desktop UI shows summary on first selection of a master row when a child view with "Show In Summary" = true is placed on a different tab.
  • Touch UI supports creating new lookup values with context filter based on the current field values.
  • Cascading lookup works with Drop Down List, Radio Button List, Check Box List, and List Box.
  • Dedicated login page issue on iPad has been resolved in Touch UI.
  • Pivot API: Quarter calculation fixed.
  • Minifier now adds ";" to every script file as a fix for DNN script compression.
  • Fixed transparency issues on iOS and made enhancements to the keyboard input on android.
  • Charts: Added ICU Decimal Format support with "pivot1-val1-format:'##'" tags. Supported .NET-compatible formats are “c”, “C”, “d”, “D”, “e”, “E”, “f”, “F”, “n”, “N”, “p”, “P”, “x”, “X”.  Example of Orders chart:
  • EmployeeID Tag: pivot1-row1-column

    Freight Tag: pivot1-val1-sum-format:'c' 

  • It is now possible to use $row.FieldName and $master.FieldName syntax in business rules and various expressions instead of old syntax ([FieldName] and [master.FieldName]).
  • Dates are correctly processed in JavaScript business rules in Touch UI.
  • Enhanced error reporting when compiling JavaScript business rules.
  • Data access objects correctly convert dates to Universal Time when using PageRequest to retrieve data.
  • MySQL will hide string primary key fields of length 36 (GUID).
  • Bug with "Remember Me Checked" in HTML page implementation has been fixed.
  • MySQL Session State Provider will use mediumblob instead of longblob.
  • Embedded ASP.NET membership provider for Oracle is now generated if membership feature is enabled.
  • Membership business rules correctly handle representation of GUIDs and "bool" in Oracle databases.
  • Synchronization command wraps primary key field names in "quotes" specific to the database engine.
  • Membership bar extender uses "_invoke" as a path for service requests in SPA applications.
  • Adding a GUID parameter to an SqlText or SqlProcedure will perform automatic conversion from Guid to byte[].
  • Partial implementation of ApplicationServices class allows overriding of UserSessionStart, UserSessionEnd, InstanceStart, InstanceStop, and HandleError methods to handle session-level and application-level events. Delete ~/global.asax file to ensure that the new code is being engaged if you plan to use any of these methods.
  • Custom Session State provider is now generated in Azure Factory, Mobile Factory, Web App Factory, and Web Site Factory projects if installed on database connection settings page of Project Wizard. Use session state provider if application is deployed in  multi-server configuration.
  • It is now possible to have a "root" page when CMS is enabled. Give it a name “index” with blank path.
  •  Dynamic Controller Customization in CMS now supports When-SQL and When-Test to allow data-driven customization of controllers
  • Application framework now support VirtualControllerConditionally method. Developers can call SelectFieldValue method to inspect values of the current row when virtualizing form views.
  • Added data view tags view-style-charts-disabled, view-style-grid-disabled, view-style-list-disabled, view-style-cards-disabled, and view-style-map-disabled to allow disablement of specific view styles.
  • Fixed bug in Firefox and IE10 of chart context menu not opening.
  • Data views can now be configures with the property "Tags" and "data-tags" instead of Tag and "data-tag".
  • Site content is not visible if Role or User exceptions are detected. Previously, both "Role Exceptions" and "User Exceptions" would have enabled access to content instead.
  • If a site content page exists in CMS and it is visible to the user then it will override the "design time" page definition. Previous implementation has been using the application-defined page even if a site content page is available.
Monday, December 10, 2012PrintSubscribe
Managed Oracle Provider, Report Action Parameters, Azure SDK 1.8

Code On Time release is now a Microsoft.NET 4.0 application. This results in up to 30% increase in the speed of code generation. The benefit is especially visible on multi-core computers to Premium and Unlimited edition customers.

Full support for Managed Oracle Data Provider (ODP) and extended processing of Oracle-specific data types is now a part of the application framework. Learn to create projects with Oracle databases.

Action “Report” and its variations (Report As PDF, Report as Excel, Report as Image, Report as Word)  are extended with reporting parameters. Use Project Designer to configuring Data property of an action with parameters “_controller”, “_view”, “_count”, “_template”, and “_sortExpression”. Developers can also specify a filter referencing values of the data row selected in the browser. A tutorial will be available this week.

Application generator now supports Windows Azure SDK 1.8 released in November of 2012.

The following enhancements and bug fixes are also includes:

  • Custom Membership provider handles "password attempt window start" and "password answer attempt window start" dates.
  • Locked-out user will be able to re-try login when "password attempt window" becomes available. The time interval is controller by Password Attempt Window option. Its default value is 10.
  • Password reset is also controlled by the same option when user tries to answer the password question.
  • Custom Membership provider uses "Comments" as an SQL alias of "Comment" field.
  • Compatibility of field length and type for custom membership providers generated from Oracle databases is included.
  • Unique identifier columns of type raw(16) are fully supported by application framework in Oracle database projects.
  • Quick Find implementation creates dedicated parameters in Oracle apps when Managed ODP provider is detected.
  • Long project names will not cause compilation error in Visual Basic projects with the application framework placed in a class library.
  • "Hidden" data fields mixed with visible data fields in a data sheet view will not break focusing of cells.
  • SQL and Email business rules are not executed twice when processing custom actions.
  • Action Navigate will not disable data view events when "_blank" or any other target is placed in front of the value in Command Argument.
  • Role provider binds ApplicationName parameter on-demand.
  • Fixed the bug with custom Google Translate API key processing.
  • Data sheet view with multiple selection will not scroll to the top of the view when a data row is selected.
  • The app generator will not fail to start project builder when Visual Studio without Web Developer Tools is installed on a computer. Only "Web Site Factory" projects can be created if that is the case.
  • Virtualization node sets now support MoveNext method and Current property to allow easy iteration when implementing virtualization of data controllers.