AJAX(112) Apple(1) Application Builder(244) 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(11) 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) DotNetNuke(12) EASE(20) Email(6) Features(99) Firebird(1) Form Builder(14) Globalization and Localization(6) Hypermedia(2) Installation(4) 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(15) OAuth(6) OAuth Scopes(1) OAuth2(9) Offline(19) Offline Apps(4) Offline Sync(5) Oracle(10) PKCE(2) PostgreSQL(2) PWA(2) QR codes(2) Rapid Application Development(5) Reading Pane(2) Release Notes(167) Reports(48) REST(28) RESTful(25) RESTful Workshop(15) RFID tags(1) SaaS(7) Security(75) SharePoint(12) SPA(6) SQL Anywhere(3) SQL Server(26) Stored Procedure(4) Teamwork(15) Tips and Tricks(83) Tools for Excel(2) Touch UI(93) Transactions(5) Tutorials(183) Universal Windows Platform(3) User Interface(333) Video Tutorial(37) Web 2.0(100) Web App Generator(101) Web Application Generator(607) Web Form Builder(40) Web.Config(9) Workflow(28)
Monday, June 27, 2011PrintSubscribe
Chinese Culture Processing

Code On Time web application generator now correctly performs automatic translation of all English resources to Chinese (Simplified) or Chinese (Traditional) when required. This change effects zh-CHS, zh-CHT, zh-CN, zh-HK, zh-MO, zh-SG, and zh-TW user interface cultures of generated web applications.

The following sets of culture-specific resources are now included with the code generation library: de, es, fr, hi, it, ja-JP, pt, pt-PT, zh-CHS, and zh-CHT.

If your culture is not listed then the web application code generator will automatically translate the baseline set of resources in English to your locale with the help of Google Translate. Translation is performed only one time per project. Subsequent code generation does not require translation.

Note that translations are of “automated translation” quality.

Saturday, June 25, 2011PrintSubscribe
Localization, Globalization, In-Page History

This a significant update to Code On Time web application generator and core library of generated applications. The summary of changes and enhancements is listed below.

Few users have reported a problem with automatic update installation. If the you experiencing errors while trying to upgrade then simply uninstall Code On Time and download a fresh copy at

The update includes a brand new localization framework. All resources were externalized. There is a single file that can be changed to modify ALL of the client library text strings.

File ClientLibrary.*.txt (for example, ClientLibrary.en-US.txt or will be created in the root of the project when you generate your application with the updated version of the code generator. Unlimited edition users can have multiple ClientLibrary.*.txt files matched to their selected cultures if more than one culture is supported.

If you change resource tokens in the file and re-generate the project one more time then the client library will use the content supplied by you. The ClientLibrary.*.txt file is not required at runtime.

There will also be additional resource files that are matched to resources such Web.Sitemap (for example, or data controllers descriptors (for example, ~/Controllers/ Changes to the files will be reflected at runtime. These files are a part of your application.

The web application generator will automatically produce localization files and perform actual translation using Google Translate if you apply a certain syntax to the text labels.

The localization and globalization tutorial will be available.

Fixes and improvements in this release:

  • Localization of both Web App Factory and Web Site Factory has been completed.
  • The entire client library now supports a mechanism to translate resources in a language of your choice.
  • In-Page History is now implemented in the Client Library. Previous implementation has stored user filters in the Session object on the server. The session state was restored whenever the data had to be presented. This was creating a somewhat undesirable user experience effect and significantly increased the size of the user session data. The new implementation will save history in the page and will restore the history only if you return to the page via Back button of your browser.
  • Container menus will now remember the selected tab. The new implementation of the in-page history will restore the selected tabs and selected row in Grid and Data Sheet views.
  • Field-level errors are now displayed in pop out boxes one at a time. This is probably the most visible change from the end user perspective. You can see the new style of field-level error message if you leave a mandatory field empty in a form and try saving it.
  • The bug preventing setting focus on a field in a Data Sheet view has been fixed.
  • Automatic localization of localized resources via Google Translate is now supported in all editions of the code generator.
  • Two new classes Localizer and CultureManager are now a part of the core framework of generated applications.
  • Membership bar will now display a language selector if multiple UI cultures are supported in your application. Multiple cultures are supported in Unlimited edition only.
  • Dynamic reports are using the current UI culture and display currency, numbers, and dates as is required by locale.
  • Adaptive filters have been changed to supported “typed” filter values. Previous implementation has been relying on simple string conversions between the client and the server. “Typed” values eliminate all sorts of filtering problems that were encountered with some locales.
  • Designer will open all objects in “edit” mode when an object is selected from a grid view. This should speed up and simplify project modifications.
  • Page containers show tabs with linked data views and controls when selected in Designer.
  • Numeric values will not wrap when displayed in Grid and Data Sheet views.
  • Modal forms will maintain the same width if user navigates between records using navigation arrows.
  • Interface System.Web.SessionState.IRequiresSessionState is implemented in all generic handlers to support ASP.NET session. This will ensure that you can access session data in business rules during import, export, and blob processing.
  • Membership bar replaces the browser URL to prevent the home page with login prompt from being displayed when user clicks the Back button in a browser. This only affects applications that do not rely on a dedicated login page.
  • The 'About'  box header text on pages has been placed in resources to support globalization.
  • BusinessRules class implements Localize(token,text) method to simplify localization of messages sent to the client from business rules classes.
  • MembershipBusinessRules class is using the new Localize method to display system messages.
  • Grid views will remember the last view type (Data Sheet or Grid) selected by end user and restore the view type when user returns back to the page via browse Back button.
  • Help system has been upgraded to include configuration instructions. It has been enhanced to match the web application theme and display a relevant customization instruction when a user selects Help link on the membership bar.
  • System messages by blob handler, controller, and annotation plug-in are now localized via global Resources.*.txt file.
  • Component DataViewExtender now supports method AssignStartupFilter. This method allows setting up an initial filter values using custom code. We recommend placing a custom user control on a page in designer and writing the logic assigning the initial filter in the code-behind file of the user control.
  • Import processor is not using the thread pool anymore. This will eliminate the bug related to unavailability of HttpContext during the export process. Context is now available since the execution of the import process is not asynchronous anymore. We will revisit this later to see if asynchronous processing can be accomplished via other means.
  • Added support for missing handlers to allow blob, reports, etc. with IIS / IIS Express and .NET 3.5 web apps. This was typically resulting in BLOB images not displayed when application is executed.
  • Sandbox app in Web App Factory solutions will now have the same base page YourNamespace.Web.PageBase to support globalization and localization.

Coming next:

  • Azure Factory project is ready to go. We wanted to implement a complete localization framework prior to rolling this out. The plan is to roll Azure Factory out over the next weekend. The feature will be available to Premium edition users.
  • Partial implementation of the Tree view has been released in this update. You can give it a try if you change the type of grid view to “Tree” in Designer and add a self-referring data field to this view. We are hoping to complete this data presentation style in the release. The feature will be available to Premium edition users.
  • Custom Membership and Role providers. We are planning to include this feature in Unlimited edition.
Monday, May 23, 2011PrintSubscribe
Dynamic Client Expressions, Page Base, Resetting Cascading Lookup, etc.

This release of Code On Time web application generator includes several bug fixes and enhancements.

  • Annotations column rendering in Data Sheet view has been enhanced in all themes.
  • It is now again possible to click on a thumbnail of an image field in grid and data sheet view to download the original file stored in the database table column. The first click will activate a row. The second click will initiate the download process.
  • Visual Basic.NET version of generated applications will correctly handle extended upload/download utility fields File Name, Content Type, and File Size.
  • Check boxes are correctly rendered in form views with templates.
  • Read-only and static fields are not causing “Field value is required” error in the user interface when user saves a form even if the field is not set to “Allow Nulls=false”.
  • Client library includes significantly improved processing of Client Script expressions used to evaluate conditional styling and control field / category visibility. All data types are handled correctly. You can also use special JavaScript Date class extensions. For example, the client script Date.$within([RequiredDate], 5) will return true if Required Date is within 5 days as of now. The client script Date.$pastDue([ShipDate], [RequiredDate]) will return true if the ship date of an order is greater than required date or if a ship date is not specified and the time to ship the order has passed. This type of expressions may be useful to specify conditional styling calling for attention.
  • Some enhancements to the system files of the code generation library were deployed to support the upcoming Azure Factory web application generator project.
  • Field property “Copy” now supports expressions in format FieldName=null to support clearing/resetting of cascading lookup fields when the value of the master field has changed. Read about configuring cascading lookups in Code On Time applications at /blog/2011/05/cascading-lookups.html.
  • All pages of the generated applications are now based on Namespace.Web.PageBase. This partial class will detect “right-to-left” cultures and switch the text flow to right-to-left from standard left-to-right. The class will also handle culture/language selection that will be enabled on the membership bar. User Interface Language selection feature will be available in the upcoming releases.
Continue to Cascading Lookups