Application Factory

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
Application Factory
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.
     
Wednesday, May 23, 2012PrintSubscribe
Feature: Advanced Navigation Menus

These examples were created in minutes straight from Adventure Works database featuring 91 tables and views. Complex navigation hierarchy is effortlessly displayed in a configurable advanced two-level main menu.

An example of a customized advanced two-level menu in 'Adventure Works' web app with the 'Graham' theme

An example of a customized advanced two-level menu in 'Adventure Works' web app with the 'Social' theme

A traditional multi-level menu is automatically configured in a generated web application by default.

The automatically composed multi-level menu structure of 'Adventure Works' app created with Code On Time web application generator

Another presentation option offers a minimalistic rendering of the most complex navigation systems. The site menu is hidden in the screen shot and can be activated if a user moves a mouse over the application name in the page header.

A web app is configured with "Navigation Button" site menu. The button is not active.

Menu presentation style “Navigation Button” displays available site pages when a user “hovers” over the application name.

A web app is configured with "Navigation Button" site menu. The button is active.

The navigation menu has multiple levels reflecting the relationships between database tables. Developers can change the automatically composed navigation hierarchy in Project Designer.

A single configuration option allows changing the menu presentation style to two-level advanced menu or navigation button menu.

Wednesday, May 23, 2012PrintSubscribe
Customizable Main Menu with Two Levels

Database web applications may contain multiple pages with a complex navigation hierarchy. Traditional multi-level menus do a good a job of presenting such hierarchies. 

Consider the following web app created from Adventure Works database with Code On Time. The navigation menu has multiple levels reflecting the relationships between database tables. Developers will likely want to change the automatically configured menu structure but will still be forced to create multiple levels of navigation menu options.

The automatically composed menu structure of 'Adventure Works' app created with Code On Time web application generator

A web application can be configured to use an advanced two-level menu.

Start the web application generator, select the project name, choose Settings option, and proceed to alter the layout of application pages under Layouts section.

Choose Advanced Two-Level menu presentation style and click Finish.

Generate the app and inspect the new look of the navigation menu in the browser. The second level of the menu is rendered flat with indentation reflecting the hierarchy. All navigation menu levels are visible and accessible immediately.

Advanced two-level menu in 'Adventure Works' sample created with Code On Time web application generator

The accessibility of menu options can be further improved by breaking them into multiple columns.

Start Project Designer and select Pages tab. Select New | New Page option on the action bar. Enter the following properties and click OK to save the page.

Property Value
Name ProductionFirstColumn
Index 1345
External Url about:blank
Path Production| First Column
Roles *

Select  Home link in designer bread crumbs and create another page configured with these properties.

Property Value
Name ProductionSecondColumn
Index 1485
External Url about:blank
Path Production | Second Column
Custom Style menu-new-column
Roles *

These is the partial hierarchy of the pages in Project Explorer with some of the child nodes under Production page collapsed for clarity.

image

The highlighted page properties affect the menu presentation.

  • If about:blank is found in the External Url property, then the corresponding physical page is not created by the application generator. The menu option will be rendered as a static text.
  • It is mandatory to enter “*” in the Roles property. Otherwise the security trimming mechanism will remove the option from the menu at runtime.
  • If the CSS class with the name menu-new-column is entered in Custom Styles, then a new column of options is started in the second level of the advanced two-level menu.

The indexes of new pages were selected so that they would precede pages Production | Product and Production | Location.

Here is the effect of the changes. All navigation menu options under Production are rendered in two columns.

Customized advanced two-level menu with two columns of options in 'Adventure Works' sample created with Code On Time web application generator

If an option of any sub-level is selected, then the user interface of the main menu reflects that.

The advanced two-level menu reflects selection of any options on its sub-levels

The second level of advanced two-level menu can be further enhanced with the custom CSS style sheets. Create a custom CSS stylesheet in the project and enter following rules.

div.two-level div.production-menu
{
    background-image: url(../_Shared/Page_Categories.png);
    background-repeat: no-repeat;
    background-position: 110% top;
}

div.two-level div.human-resources-menu
{
    background-image: url(../_Shared/Page_Announce.png);
    background-repeat: no-repeat;
    background-position: 130% top;
    padding-right:70px!important;
}

Start Project Designer and modifying the following pages.

Page Name Page Path Property New Value
HumanResources_Home Human Resources Custom Style human-resources-menu
Production_Home Production Custom Style production-menu

Generate the app, refresh the browser page, and inspect Human Resources and Production options on the top level of the main menu.

A custom CSS rule displays a background image in the second level of 'Human Resources' menu option in 'Adventure Works' sample created with Code On Time web application generator

A custom CSS rule displays a background image in the second level of 'Production' menu option in 'Adventure Works' sample created with Code On Time web application generator

These are the examples of advanced two-level menu with other available themes.

An example of a customized advanced two-level menu in web app with the 'Graham' theme

An example of a customized advanced two-level menu in web app with the 'Social' theme