Blog: Posts from July, 2012

Labels
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(9) OAuth Scopes(1) OAuth2(13) Offline(20) Offline Apps(4) Offline Sync(5) Oracle(11) PKCE(2) Postgre SQL(1) PostgreSQL(2) PWA(2) QR codes(2) Rapid Application Development(5) Reading Pane(2) Release Notes(183) Reports(48) REST(29) RESTful(29) RESTful Workshop(15) RFID tags(1) SaaS(7) Security(81) 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)
Archive
Blog
Posts from July, 2012
Sunday, July 1, 2012PrintSubscribe
Working with Commands

Commands provide a dictionary of SQL expressions matched to the field names of the parent data controller. The application framework uses the “from” section of the command to figure the name of the base table and joined tables, if applicable.

Commands that belong to Employees controller.

Here is an example of command1 from Employees data controller:

select
    "Employees"."EmployeeID" "EmployeeID"
    ,"Employees"."LastName" "LastName"
    ,"Employees"."FirstName" "FirstName"
    ,"Employees"."Title" "Title"
    ,"Employees"."TitleOfCourtesy" "TitleOfCourtesy"
    ,"Employees"."BirthDate" "BirthDate"
    ,"Employees"."HireDate" "HireDate"
    ,"Employees"."Address" "Address"
    ,"Employees"."City" "City"
    ,"Employees"."Region" "Region"
    ,"Employees"."PostalCode" "PostalCode"
    ,"Employees"."Country" "Country"
    ,"Employees"."HomePhone" "HomePhone"
    ,"Employees"."Extension" "Extension"
    ,"Employees"."Photo" "Photo"
    ,"Employees"."Notes" "Notes"
    ,"Employees"."ReportsTo" "ReportsTo"
    ,"ReportsTo"."LastName" "ReportsToLastName"
    ,"Employees"."PhotoPath" "PhotoPath"
from "dbo"."Employees" "Employees"
    left join "dbo"."Employees" "ReportsTo" on 
        "Employees"."ReportsTo" = "ReportsTo"."EmployeeID"
Creating a Command

New commands can be created by using the context menu option “New Command” on the Commands node. The New Command icon on the toolbar can also be used.

New Command for Categories controller.

Moving Commands

Commands can be moved by dragging and dropping onto a controller, Commands node, or on another command. The context menu options Cut/Copy and Paste will also work.

Drop command2 on commands of Alphabeticallistofproducts.     Command2 will be placed last under AlphabeticalListofproducts controller.

When a command is removed from a controller, any references to the command will be cleared. The views will need to be reconfigured with a replacement command.

Deleting a Command

Commands can be deleted using the context menu “Delete” action. The Delete keyboard shortcut will serve the same purpose. Any views that refer to the command will have their CommandId property cleared.

Delete context menu option for command1.

Renaming a Command

Use the context menu “Rename” option to rename the command. Pressing F2 will also rename the command. Any views of the data controller will reference the new name.

Command context menu option Rename.

Resetting a Command

Commands are recreated by the web application generator every time the baseline is refreshed. If the developer modifies the command, automatic recreation will no longer occur, and the developer must update the command by hand.

The “Reset to Baseline” context menu option will restore the command to baseline state.

Context menu option Reset to Baseline in the Project Explorer.

Sunday, July 1, 2012PrintSubscribe
Working with Controllers

The Controllers tab of the Project Explorer displays a list of all controllers in the project. Each controller contains commands, fields, views, actions, and business rules.

Controllers tab in the Project Explorer.

Creating a Controller

Controllers can be created by clicking on the New Controller icon on the Project Explorer toolbar.

New Controller icon on the toolbar of the Project Explorer.

The New Data Controller form will open in the Project Browser window. Enter a name and press OK to create the controller.

Controllers that have no command are displayed with a different icon.

New controller created without a command display this icon.

Cloning a Controller

A clone of a controller can be made by using the context menu option “Clone”.

Clone context menu option for Customers controller.

Confirm the operation, and the controller will be cloned. All commands, fields, views, actions, and business rules will be exactly the same. If the baseline of the original controller has changed, then the cloned controller will be affected as well. A cloned controller is a fork in the development lifecycle of the original. You can create as many clones as you want.

Customers1 is a cloned controller of Customers.

Deleting Controllers

Controllers can be deleted by using the context menu option “Delete”, or using the Delete keyboard shortcut. Deleting a controller will also delete all referencing data views.

Delete Customers and Customers1 controllers.

Renaming Controllers

Controllers can be renamed using the context menu option “Rename”, or using the F2 keyboard shortcut. Renaming a controller will change corresponding references of the data views.

Controller context menu option 'Rename'.

Pasting Controllers

When a controller is copied and pasted on a page, then a new data view from this controller will be added in a new container at the bottom of the page.

Paste command on Customers page.     Customers view pasted in a new container on the Customers page.

When a controller is pasted onto a container, a new data view will be added to the bottom of the target container.

Paste context menu option for container1 on Employees page.     Customers view pasted at the bottom of container1.

Multiple data controllers can be copied onto pages and containers if necessary.

Sunday, July 1, 2012PrintSubscribe
Drag and Drop, Cut/Copy/Paste, and More…

Code On Time release 6.0.0.29 includes enhancements to both code generation library and application design environment.

Generated web applications now support JavaScript Business Rules and Automatic Tracking of Selected Record. The Project Designer has been enhanced with drag & drop and cut/copy/paste  capabilities and offers “Navigate To” window that allows quickly locating project configuration elements.

The following features, enhancements, and bug fixes are included in this release:

  • Drag & drop and cut/copy/paste are support for pages, containers, data views, controls, user controls, controllers, and commands. Other project configuration elements will also be enhanced in the coming weeks.
     
  • The entire data controller can now be cloned.
     
  • Project Designer properties of menu configuration elements can be easily synchronized with Project Explorer.
     
  • Navigate To window allows quickly finding project configuration elements.
      
  • Code generator automatically combines all JavaScript files found in [Documents]\Code OnTime\Library\_Client\Scripts folder in a single _System.js file. The file is included in the generated web applications of all types.
     
  • Automatic Tracking of Selected Record is supported by the client library. Developers can take advantage of selected record synchronization.
     
  • New search option $autocompleteanywhere will cause the auto-complete to search anywhere in the field values. By default, the framework searches using "Begins With" operation, which generally performs better, but will not yield partial matches.
     
  • Data field property "Search Options" supports $disableautocomplete, $disablesamples, and $disablemultiplevalues options.
     
  • Modal form views now support dragging of the header.
     
  • View Details shows a modal view that will refresh the original source if changes are made.
     
  • "Hidden" fields will be displayed in summary if marked as "Show In Summary".
     
  • Master data sheet views automatically set focus on the first cell of the first row.
     
  • "Flat" actions will display the action description as a tooltip.
     
  • Implemented a fix for Import Processor to ensure that field values that are missing in import file are created to simulate as if the values were entered in the user interface form. Previous implementation has passed the non-blank values only. This makes it possible to implement UPSERT when importing data records.
     
  • Code On Time will now pre-process the designer logs before navigating to the data controller summary.
     
  • Localizer now takes into account the name of the module/webpart when caching the resource strings.
     
  • Project Explorer tab now feature "Home" button that shows List of Pages, List of Controllers, or List of User Controls.
     
  • The issue with the left border in AjaxControlToolkit tabs is fixed in all themes.
     
  • Sorting on fields with Format On Client = false will not cause a runtime exception.
     
  • Method Controller.UserInInRole is now creating an instance of ControllerUtility class to verify the user identity. This allows implementing custom role validation against SharePoint or DotNetNuke user groups.
     
  • ControllerDataSource will correctly perform Update/Insert/Delete operations when C#/VB business rules are associated with the data controller.
     
  • Component ControllerDataSource will use "=" filter operation if FilterParameter instance has its DBType property set to any value other than Object or String.
     
  • Aggregate fields are correctly formatted on the server when "Format On Client" property of a data field is set to "false".
     
  • It is possible to specify "about:blank" as the URL of top level pages without breaking the rendering of Advanced Menus.
     
  • Context Field Filters now support static filters in the both formats:
    FieldName = 12345 and FieldName='12345'
      
  • Decimal parameters are automatically initialized as Decimal(38,10) in SQL Business Rules and SQL action.