Blog: Posts from October, 2017

Posts from October, 2017
Friday, October 27, 2017PrintSubscribe
Video Tutorials

Get started quickly with the tutorials we have prepared for you. Take a single Tasks table and develop a full-blown task management application with file upload, many-to-many fields, master-detail pages, and more.

Watch: Building a ToDo App

Data model of Tasks.

Our product helps you turn your database schema into a modern application that works offline, online, and on-premises.

Modern responsive web app created from the Tasks model.

Here is a summary of what you will learn:

  • We will begin by creating a database and add a "Tasks" table. We will then create the app and explore the features. Finally, we will add an icon to the Tasks forms using the Project Designer.
  • To set up business rules, we will configure default values for the "Date" and "Created" fields. Then, we'll hide the "Created" field from the create form, and prevent the user from modifying the field for existing records. Finally, we will add a custom action that will mark tasks as completed. The "Completed" field will be hidden from the create form, and prevent editing in the edit form. Finally, we will create two views, "Active Tasks" and "All Tasks".
  • To add a lookup, we will add the "Categories" table and add a foreign key to "Tasks" table, and update the Tasks model with the new foreign key. Then, we will explore the features of lookups in apps created with Code On Time.
  • We will now add maps by creating a "Locations" table in the database and creating the model. A location lookup will be added to tasks. We will then add some locations, and assign these locations to tasks using the map.
  • In order to add master-detail relationships, we will create the "Attachments" table, create a model, and add a data view field on the Tasks form. We will then upload several files to a task.
  • Now we would like to restrict user access to data. The fields "Creator" and "Owner" will be added to the Tasks table. The corresponding model will be updated to include those fields. Users and Roles will be added to the app using ASP.NET Membership. The two fields will be marked as "User Name" lookups. Business rules will be added to set the current user as the creator and owner by default. Filters will be added to ensure that users can only see tasks created by or owned by them.
  • We will need to add some calculated fields. First, we will add the Expenses table and link it to tasks. We will add "Total Price" calculated field. Expenses data view field will be added on the Tasks form. We will add business rules to calculate the Total Price field, and display some aggregates on the Tasks form.
  • Then, we will need to add many-to-many fields. First, we will add "Tags" and "TaskTags" tables and models. Then, we will add a "Tags" field into the tasks form. This field will first be configured as a checkbox list. We will add several records in-line. Then, we will convert the field to a basket style drop down list. Finally, we will remove the now redundant Categories table.
  • Adding a status bar will help the user. First, we will add a static lookup field "Status" to the "Tasks" table. Then, we will change the business rules to automatically modify the "Status" value. Finally, we will enter a status bar definition for each value of the Status field to visually communicate the state of tasks to the users.
  • Customize forms to enhance the workflow of your users. Learn rapid development of responsive forms that work on any device with any screen size. Master the form design with field flow, tabs, multi-column categories, and custom layouts. Start by changing a flow of fields after a brief introduction of responsive forms. Group in categories, configure categories to display as tabs. Configure a modal popup. Try your hand with custom form layouts.
  • Organize navigation between the single page apps of your universal business application with Quick Launch icons and menu. Drag and drop pages in the navigation hierarchy, set a few icons to populate the Quick Launch bar, and move the menu from the toolbar to the sidebar.
  • Set up a cloud to deploy the app. Our app is ready for production. Learn how to set up Microsoft Azure Cloud for publishing from the app generator. This episode explains how to sign up for an account and provides step-by-step instruction for Azure Active Directory configuration.
  • Add a database to your cloud. An application deployed to Microsoft Azure is typically configured as Web App. The deployment infrastructure of Web App includes an Internet-facing App Service and Database Server. In this episode we will set up a database server and transfer development database schema to the cloud database.
  • Learn to deploy your app as an "app service" to service both web and mobile users. App Service is an Internet facing server that reads and writes data by making SQL queries to the database engine in the cloud. We will set up our app service in the "Standard" tier with SSL, multiple deployment slots, and on-demand performance with auto scaling.
  • Learn the staging-production pipeline to enhance your productivity. Deploy changed app to Staging slot for a live preview. Instantly swap Staging and Production versions of application directly from the app generator.
  • Learn to store binary data outside of the database. Large photos and documents can run up the database size quickly. Such objects known as BLOBs (Large Binary Objects) are frequently stored in the external file system or attached storage. We will show you how to set up external storage of attachments in the file system and Microsoft Azure.
Don't hesitate. Jump right in!
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.
Thursday, October 26, 2017PrintSubscribe
User Pictures in SharePoint, Facebook, Google

Release introduces automatic capturing of user profile picture for Facebook, Google, and SharePoint accounts when configured for Single Sign-On with OAuth. The user picture is captured directly from the identity provide and stored in the CMS of the app.

We have corrected the latest iteration of themes to re-enable conditional styling rules. Just make sure to place your CSS rules into ~/css folder instead of ~/touch.


The release aslo corrects muscellaneous issues related to the introduction of the new file structure compatible with the upcoming native apps. See the details below.

  • Restored modal-never tag function to force fullscreen presentation even when modal forms are allowed by the screen size.
  • Summary in the sidebar does not display NULL values anymore.
  • Fixed. If Int field has Text values in Items then advanced search must be configured as text. Previously the lookups were displayed as simple “numeric” values.
  • Lookups with static context field values (e.g. "CategoryName='Condiments'" or "CategoryID=1, CategoryID=5") do not expose them in the filter that can be cleared. Also the specified fields are hidden in the filtered view. This reproduces the behavior of the Classic UI.
  • Static lookup fields with Context dependencies will first cause Calculate if defined and then popuplate the list of values. Previously items stopped being populated.
  • Actions in "Custom" group are rendered as "hidden" if defined in the view layout but not available in the controller in Touch UI apps.
  • Automatically created row of "Custom" actions is removed when there are no "visible" custom actions in Touch UI apps.
  • “Form Layout” feature in Developer Toolbar of Touch UI apps correctly pre-selects the current page size for the layouts available for download.
  • Calendar view style correctly displays tabs making possible interactive selection of Day/Week/Months/Year/Agenda mode.
  • Resolved the bug with “Controller not found.” when ~/controllers folder is spelled in camel notation.
  • SharePoint OAuth now downloads user profile photo if supported.
  • Fixed - Blob fields marked as "required" will allow submitting a form. Physical BLOB  columns in tables must allow NULL values for apps to allow uploading of large content. Developers can mark BLOB fields are required to force a submition when the record is created.
  • Facebook OAuth now supports download of profile picture.
  • Fixed issue with "Sync Roles" showing true in oauth wizard.
  • Google OAuth provider now downloads user avatar.
  • Fixed issues with Web App Factory publishing.
  • Files daf-resources.js and daf-resources.min.js are now removed from ~/js/sys folder, since these files are not needed for an application to execute correctly. Only the localized versions of these files will remain in the project.
  • Fixed issue where ASPX projects adding an account would navigate to "login" instead of "login.aspx".
  • Removed "Sign Up" and "Forgot Password" if Active Directory is enabled in Membership and Autentication Settings.
  • Included images & fonts in Web App Factory. Fixed regression when js folder does not exist.
  • Toolbar located at the bottom of the sidebar will become hidden if there are no icons displayed in it.
  • Model Builder - Duplicate model field names are not created when columns are borrowed from the master tables joined in the model query.
  • Ensured duplicate site content is not created if model exists with name "SiteContent".
  • Removed legacy rules app-icon-check to prevent interferance with the ui-btn::after in the grid/list/cards.
  • Ensured bootstrap CSS link in Classic projects is formed correctly.
  • Disabled Native App SUpport for ASPX projects.
  • Removed unused references to AJAX framework script resolution.
  • Fixed issue with OAuth registration - adding system identity no longer sets content type to "application/octet-stream".
  • Ensured that Active Directory authentication configuration will cause the login button to display.
  • Fixed issue with Web App VB not including culture JS files in assembly.
  • Fixed compilation issues of GetManifestFileServiceRequestHandler when implemented in Visual Basic.
  • Removes remaining references to Sandbox project created in WebApp Factory projects.
  • Fixed issue with Localizer JavaScript encoding values in controls.