Release Notes

Labels
AJAX(112) App Studio(9) 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(178) 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(184) 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(3) 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
Release Notes
Thursday, January 5, 2012PrintSubscribe
Baseline + Log = Cache

Code On Time has released update 6.0.0.18.

This release introduces important changes to the code generator architecture that will speed up code generation.

Understanding Baseline and Cache

The previous version of the code generator created baseline application and controller collection files every time the project is generated. The temporary baseline was deleted right after the completion of the code generation. The logs of Designer changes to the application and controller collection are stored in Application.Log.xml and Controllers.Log.xml files. The transactions from the log files were applied to the corresponding baselines during each code generation session.

Things have changed with this release.

The baselines is now permanent.

You will notice four new files as soon as you change and/or generate a project.

The files are Application.Baseline.xml, Application.Cache.xml, Controllers.Baseline.xml, and Controllers.Cache.xml.

The "baseline" files are persistent copies of the baseline app and controllers.

"Cache" files are results of applying the designer transactions from the log to the "baseline".


Application.Baseline.xml + Application.Log.xml = Application.Cache.xml

Controllers.Baseline.xml + Controllers.Log.xml = Controllers.Cache.xml


You can copy the baseline from one project to another or change the baseline in XML editor if you need to move a part of your app to another existing/new project.

The new Refresh mechanism will delete *.Cache.xml files and will also offer developer a chance to indicate if any controllers in Controllers.Baseline.xml must be replaced with the fresh copy constructed by the code generator. Application baseline will be intact. Any new "host" pages for new data controllers will be added under "New Pages" node in the application. An example of using Refresh can be found at /blog/2011/12/ease-auditing.html.

The net effect is as follows:
1. If your project has a large number of designer changes then it may take a long time to process the log. The new release will process them once and will not do so again until a Project Refresh is requested. This will bring the time to process the log to zero.

2. If you change the project in Designer then the changes are written to the *.Log.xml and to the *.Cache.xml file at the same time.

3. Introduction of baselines will eliminate the issue of controllers acquiring unwanted fields that reflect changes to the database. The application navigation menu will also remain unchanged. Any new pages constructed by the code generator will show up in a predictable "New Pages" node.

Other Changes

The list of enhancements included in the release.

  • You can now develop your applications OFFLINE even if you are not connected to the internet.
     
  • New “Social” theme is now available.
    image
     
  • The project summary page has been enhanced to offer Design, Settings, Refresh, and Generate actions.
    image 
     
  • Implementation of Created By/On and Modified By/On will not interfere with the Import.
     
  • Import correctly displays the upload controls when executed under local web development server.
     
  • New “White Smoke” theme is now available.
    image
     
  • Action bar assigns "First" and "Last" CSS classes to the corresponding action  buttons in "flat" action groups.
     
  • Annotation Icon on the action bar has been restored.
     
  • Customized properties Description and Confirmation defined on standard actions are not overwritten by default values. For example, entering a confirmation on Delete action does not require a customized HeaderText of the action.
     
  • Action "Settings" displays a list of Project Wizard shortcuts. Shortcuts provide quick access to specific configuration settings group. Button Finish is displayed in all groups to allow convenient completion of configuration.
    image 
     
  • Standard control Welcome has a margin at the bottom and will not overlap with the data views and controls that belong to the same container.
     
  • Chart view with "Show View Selector" = False will not raise an exception at runtime.
     
  • Exit from Designer while the preview is generated will not result in exception if user activtes the designer and tries to preview once more.
     
  • Referential integrity verification mechanism has been integrated in Designer. The first check is removal of any references to a data field from other categories of a data view when a data field is moved or inserted in a different category.
    A data field can exists only in once category in a view.
     
  • Horizontal scrolling position is now retained in Project Explorer when an project element is changed in Designer.
     
  • All pages of Project Wizard now feature icons in headings of pages to match the menu of page shortcuts.
       
  • Project Wizard now supports Left Shift+Next shortcut to skip the rest of the steps remaining. Left Shift + Next will proceed to the summary of data controllers.
     
  • Sample images of themes are now integrated in the Project Wizard. 
     
  • Missing "partial" attribute on ControllerUtilities class is not available.

Friday, December 16, 2011PrintSubscribe
Search and Core Library Enhancements

Code On Time has released update 6.0.0.17 that includes several enhancements and bug fixes described below.

  • Search in Quick Find or Automatic Search Bar will clear the selected record and hide any related details link to previously selected master. Applying a filter will also reset the selected record.
     
  • Date and numeric “fuzzy” values are now accepted in automatic search bar and filter filters. For example, users can now enter "Thu" in the search field of DateTime type or enter a date as 12162011 (for 12/16/2011).
     
  • Virtual method HandleException can be implemented to perform global exception processing for all exceptions raised when actions are executed.
     
  • Data access objects and BLOB processing code of the application framework now uses class ControllerUtilities to determine the "standard" views that must be used to execute SELECT / UPDATE / INSERT / DELETE operations.
     
    All operations with the exception of INSERT are using "editForm1". INSERT is using "createForm1". The utility class allows overriding the decision making process, which allows a non-generic view name to be returned for certain data controller when executing specific actions.
     
  • Calls to UpdateFieldValue in the business rule method execute in response to Command Name = "Custom" and Command Argument = "abc.." will refresh updated fields.
    This can be used as an alternative to "Calculated" fields to update values in the record in response to user-initiated action.
     
  • BLOB processing will allow caching if IE 6,7,8 is downloading the binary object over SSL. Otherwise it is impossible to see the downloaded file on the client.
     
  • Time dropdown is displayed for fields with Data Format String of "{0:g} or "{0:G}". The dropdown now correctly handles am/pm values.
     
  • User-defined filter "'Field' Does Not Equal 'Empty'" will now work correctly.
     
  • Prevents an exception raised when an empty area of Project Explorer is clicked and selected node is not available.
     
  • Fixed the bug with processing of "_display" argument that can specified in the URL along with data controller URL parameters.
     
  • Preview and Generate actions executed from within Project Designer will not raise and exception if IIS Express is not installed on the computer. The code generator will try to use the local web development server that comes standard with Visual Studio.
     
  • Code generator validates presence of resources referenced in the "*.*proj" files of generated projects. If the resource (file) does not exist then the reference is excluded.
    The major side effect is the ability to change the theme in the projects other than Web Site Factory without breaking the generated web app. Developers can try all available themes in all types of projects without issues.
     
  • Various cosmetic changes to the code generator UI.

Examples of ControllerUtilities class and sample implementation of HandleException are presented below.

The first class instructs the application framework to use myCreateForm when application data access objects are trying to insert records through MyController data controller.

The second class shows how to display a custom message instead of a generic error reported by SQL Server when DELETE statement fails due to foreign key constraints.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace MyCompany.Data
{

    public partial class ControllerUtilities
    {
        public override string GetActionView(string controller, string view, string action)
        {
            if (controller == "MyController" && action == "Insert")
                return "myCreateForm";
            return base.GetActionView(controller, view, action);
        }
    }
}

namespace MyCompany.Data
{

    public partial class Controller
    {
        protected override void HandleException(Exception ex, ActionArgs args, ActionResult result)
        {
            if (ex.Message.Contains("DELETE"))
                result.Errors.Add("Can't delete a record");
            else
                base.HandleException(ex, args, result);
        }
    }
}
Monday, December 12, 2011PrintSubscribe
Live Inspection, EASE Auditing, New Themes

Code On Time has released update 6.0.0.16. The new updates includes a collection of new features and bug fixes described below: 

  • Live Inspection is now available.
     
  • Integrated EASE Auditing is now available in Unlimited edition.
     
  • New Modern and Dark Knight themes.
  • Reduced metadata footprint with all databases. Previous version would have enumerated all table columns even if the tables are not selected in the project.
     
  • Custom project references (for example, external assemblies) are not lost when Visual Basic projects are re-generated.
     
  • Mr. Adalberto Hernandez Vega has contributed Spanish localization for es-HN culture. Thank you!
     
  • Client Library now supports new data controller URL parameter, which allows indicating, which URL filter fields shall remain visible. The default behavior is to hide the data fields specified in the URL.
     
    A comma-separated list of fields can be specified as follows: _display=Field1,Field2,Field3. The client library will also populate field values from the values in the URL when _commandName is New. Read more about data controller URL parameters at /blog/2011/01/data-controller-url-parameters.html
     
  • Left Shift + Click on the project name will re-generate the project.
  • If the HyperlinkFormatString property of a field starts with “mailto:” then the links is formatted correctly.
     
  • The header text of the action group with scope "Action Column" is displayed in the header of the action column. If the text is blank then "Actions" is displayed instead.
     
  • Various cosmetic improvements to Project Designer.
     
  • Project Explorer tracks and updates multiple visible nodes linked to the same data controller on all tabs.
     
  • Client library detects HTML tags and does not perform HTML formatting in menus and "filter details" area of views if HTML is detected.
     
  • Automatic expansion of collapsed nodes in Project Explorer upon refresh of a node by monitor. 
     
  • Code generator will not try to delete project folders under control of Subversion.
     
  • Multi-field filter fields (up to five) are now available to allow multi-level master detail configuration with multi-column primary keys.
     
  • Client library now supports [Master.FieldName] expressions in When Client Script of actions and in new Visible When property of data views.
    Multiple-value filter fields are now working correctly.
     
  • Visual style of buttons in "Action Column" scope has changed.
     
  • Data Field Visibility is now a property of a Data Field instead of a list of Visibility expressions.
     
  • Shortcuts to Value/Text Items and Validators are displayed in fields and data fields.
     
  • Fixed the bug that was preventing deletion of visibility expressions on data fields in grid views.
     
  • Core.css has been changed to use the new Outer CSS class for icons. Existing apps will require modification to support custom action icons.
    For example: .NewIcon .Outer, .FlatGroupIcon.NewIcon
     
  • Fix the problem with disappearing “Reports|*”  nodes due to wrong schemas deduced from "_" in the names of tables.
     
  • Preview window is maximized if the Designer window is maximized.
     
  • Data controller URL parameters now support _commandName2 and _commandArgument2. The second command is executed as a follow up to the first set of _commandName and _commandArgument. Use the first set to select a record and the second command to execute a custom action on the activated record when needed.
     
  • CloudApp project file in Azure Factory applications is now compatible with Azure SDK 1.6.4
     
  • Action groups and actions feature Id property. It is used as as a CSS style on all user interface elements representing actions.
     
  • App Preview shows precisely on top of the Designer window. 
     
  • Utility Css classes are assigned to UI elements representing actions to support Designer inspection.
     
  • Icon column in grid views now renders a span to allow better formatting.
     
  • Menu options now feature Inner, Outer, and Self CSS classes to allow sophisticated styling.
  • Restored ability to go back from Controller Summary page in Project Wizard.