Thursday, January 5, 2012
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 http://blog.codeontime.com/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.