App Studio

Delivering App Studio, the Axiom Engine, and the foundation of the Digital Workforce Platform.

Labels
AI(8) AJAX(112) App Studio(10) 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(2) 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) Digital Workforce(3) DotNetNuke(12) EASE(20) Email(6) Features(101) Firebird(1) Form Builder(14) Globalization and Localization(6) HATEOAS(1) 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) Micro Ontology(3) 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(185) Reports(48) REST(29) RESTful(30) 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
App Studio
Tuesday, December 2, 2025PrintSubscribe
The Engine is Ready. Now, You Get the Keys.

We have been quiet for most of 2025. That silence was intentional.

While the software world was swept up in the hype of "Probabilistic AI" (chatbots that guess and hallucinate) we were in the lab, solving the hard problem: How do we make AI safe, deterministic, and useful for the Enterprise?

The answer wasn't to build a better chatbot. It was to build a better Engine.

We are proud to announce Release 8.9.46.0, the first major milestone in our transition to the Digital Workforce Platform. This release delivers the App Studio (App Mode) and App Explorer, the browser-based tools that replace the legacy project designer.

But more importantly, this release exposes the Axiom Engine, the infrastructure we have built over the last year to ensure that the applications you build today are ready for the Agents of tomorrow.

Built-In, Not Bolt-On The Axiom Engine is not an external plugin, a cloud service, or a third-party dependency. It is built directly into the server-side framework of every application created with Code On Time. It runs entirely within your application, on your own infrastructure (or localhost), ensuring that the intelligence that powers your Digital Workforce is yours to own and control.

1. Visual Studio 2026 Support

The engine is only as fast as the workshop. That is why Release 8.9.46.0 includes full support for Visual Studio 2026 (released November 2025).

The Code On Time app generator now automatically detects Visual Studio 2026 on your workstation and uses it to build your projects. For our customers who write custom business rules in C# or VB.NET, this upgrade is a game-changer:

  • 20-40% Faster Load Times: Open your generated solutions instantly. VS 2026’s optimized parallelization means you spend less time waiting for projects to load and more time coding.
  • Reduced Memory Footprint: Experience a smoother workflow with significantly lower RAM usage compared to VS 2022, even with large enterprise solutions.
  • AI-Native Editing: Leverage new features like Adaptive Paste (which automatically formats pasted code to match your project's style) and deeply integrated GitHub Copilot to write business logic faster than ever.

Your Code On Time applications are standard .NET solutions. When Microsoft innovates, you benefit immediately. Upgrade to Release 8.9.46.0 to unlock the full power of the latest IDE.

2. App Studio & App Explorer: Your New Workbench

For years, you have relied on our Windows-based project designer. It was powerful, but it required you to switch contexts constantly - compile, run, stop, design, repeat.

App Studio changes everything. It is a completely browser-based IDE that runs inside your live application.

  • Live Inspection: Click any element in your running app (a field, a grid, a button) and App Studio instantly locates it in the configuration hierarchy.
  • Instant Updates: Change a label, move a field, or adjust a property in the App Explorer, and see the result immediately.
  • The "Glass Box": App Explorer visualizes your application exactly as the Axiom Engine sees it. This is not just for you; this metadata structure is what allows our future AI Agents to "read" your application without hallucinating.

3. SACR: The Laws of the Universe

Back in May, we introduced Static Access Control Rules (SACR). If you missed it, now is the time to pay attention.

Security in the age of AI cannot be "hidden" in C# or VB.NET code. It must be declarative. It must be a "Law of Physics" that no user (human or Agent) can break.

  • What it does: SACR allows you to define complex security filters using standard SQL in a simple JSON configuration file.
  • Why it matters: It removes the need for complex EnumerateDynamicAccessControlRules methods.
  • The Agent Connection: When a Digital Co-Worker (our upcoming AI agent) queries your database, it inherently obeys SACR. You don't need to teach the AI security; the Engine enforces it automatically.

4. Static Pick Lists: A Shared Vocabulary

In June, we reimagined how you define data relationships. Static Pick Lists are no longer just a UI convenience; they are the dictionary for your application.

  • The Feature: Define status codes (0="Draft", 1="Submitted") directly in the App Studio property grid. No more lookup tables for simple enumerations.
  • The Agent Connection: This prevents "Data Hallucinations." By strictly defining allowed values in the metadata, you ensure that an AI Agent never tries to insert a status that doesn't exist.

5. Custom Actions: The Skills Matrix

Your application needs "Verbs" - actions like Approve, Reject, or Calculate. In this release, we have unified the workflow for creating these Custom Actions.

  • SQL-Driven UI: You can now drive user interactions (toast notifications, confirmations, focus changes) entirely via SQL.
  • The Agent Connection: Think of a Custom Action as a Skill. When you define a Confirmation Controller for an action, you are effectively writing a "Prompt" that tells the AI exactly what information it needs to collect before it can execute that task.

Here is the draft for the "Data and Models (January 2026)" chapter to be included in your Release 8.9.46.0 announcement.

It is positioned as a "teaser" for the immediate future, sitting right before the "Workspace Mode" chapter.

Data and Models

Release 8.9.46.0 delivers the App Explorer, which currently visualizes your application's Settings, Controllers and Pages. In January 2026, we will expand the explorer with two powerful new hierarchies: Data and Models.

This update introduces the Unified Data Modeling Workflow, ending the distinction between internal SQL tables and external APIs.

  • The "Data" Hierarchy: The new anchor for all data connections. You will use this to manage traditional SQL Data Sources (Oracle, SQL Server) alongside API Data Sources (SharePoint, Google Drive, REST services).
  • The "Models" Hierarchy: A dedicated design library for your *.model.xml blueprints. Whether the data comes from a physical table or a JSON endpoint, it lives here as a standardized model.
  • API Entities: You will be able to define "Virtual Tables" backed by APIs. The AI Co-Worker will assist you by analyzing raw JSON responses and automatically mapping complex structures into flat columns.
  • The "Pending" Workflow: To keep your design and runtime perfectly synchronized, we are introducing an intelligent "Pending" state. When you modify a model, the app will visually guide you to the Generate trigger, ensuring your application never runs on stale definitions.

By standardizing how data is defined, we allow the Digital Workforce to operate on any data source (SQL or API) using the exact same tools and logic.

The Road to v9: Workspace Mode

Release 8.9.46.0 delivers App Mode, the ability to edit a running, functional application. But we know the reality of development: sometimes, you break things. Sometimes, the app won't compile.

Coming in January 2026, we will release Workspace Mode.

  • The "Safe Haven": Workspace Mode runs independently of your live app. It allows you to work on the "broken" parts, perform deep architectural changes, and manage your projects in a local browser dashboard.
  • Goodbye, Legacy: With the arrival of Workspace Mode, we will officially retire the old Windows-based Project Designer. The transition to Code On Time v9.0.0.0 will be complete.

Introducing the "Builder Edition"

As part of this evolution, we are renaming the Community Edition to the Builder Edition.

The Builder Edition is now available for Commercial & Nonprofit Use. It allows you to build unlimited database web applications using a pre-compiled server-side framework without source code, excluding certain Professional features. Despite these limitations, it is a fully functional platform installed on your machine (localhost) that includes the Axiom Engine, App Explorer, 100 Free Digital Co-Workers, and 100 Free Field Workers. Apps created with the Builder Edition can be published to your own production server.

For our existing customers with a standard license or higher, you continue to get the full source code generation and edition-specific capabilities you are used to. However, you will notice new options in our Services portal: Builder Credits.

  • What are they? These credits will power the AI generation features (The Builder persona) inside App Studio.
  • Why use them? You can use the Builder to "Vibe Code" - describe a change in plain English ("Move the status field to the top and make it red") and watch the Engine execute it. It is the perfect way to speed up the mundane parts of development.
  • For New Prospects: The Builder Edition is free to download. It is an excellent tool for Agile Requirements Gathering (ARE). Use the free credits to prototype a "Realistic Model App" in minutes, generating high-fidelity Product Requirement Documents (PRD) and Project Estimates (LOE) automatically.

The Field Worker (Now Available)

The Digital Workforce isn't just about AI; it's about empowering every agent of your business to operate autonomously. For years, our Offline Sync technology has enabled applications to run without a network connection. Today, we are elevating this capability to its rightful place as a core pillar of the platform: The Field Worker.

  • The "Carbon" Co-Worker: Just like a Digital Co-Worker runs autonomously on the server, a Field Worker runs autonomously on the edge. Whether they are inspecting wind turbines, visiting patients, or managing inventory in a shielded warehouse, they carry the full intelligence of your application in their pocket.
  • Connection-Independent: This is not just "caching." When a user assigned the Field Worker role signs in, the application downloads the entire front-end and their specific dataset to the device. They can search, edit, and capture complex data (including Master-Detail records) with zero latency.
  • The Smart Envelope: Every action taken by a Field Worker is captured in a transactional "Smart Envelope." These envelopes are stored securely on the device and synchronized with the server only when the user chooses to, giving them complete control over bandwidth and battery life.

New Licensing Model To support this vision, we are simplifying how you deploy this capability.

  • 100 Free Field Workers: Every application created with the Builder or Enterprise edition now includes 100 Field Worker licenses at no cost. You can deploy a mission-critical field app to an entire department today without a procurement cycle.
  • Scale on Demand: For deployments exceeding 100 users, additional Field Worker licenses are available for $100 per user/year. This simple, flat pricing aligns perfectly with the Digital Co-Worker model, allowing you to scale your human and digital workforce using the same predictable economics.

Existing Enterprise customers already have this power. It is time to unleash your workforce.

Summary

You have been building "Agent-Ready" applications with Code On Time for years - you just didn't know it. The HATEOAS architecture, the structured metadata, and now the Axiom Engine are the keys to the future.

We spent 2025 building the engine. Now, you get the keys.

Monday, April 7, 2025PrintSubscribe
Introducing App Explorer

App Studio 2025 introduces significant enhancements to the Code On Time development environment, focusing on streamlined app customization and improved user experience. Key features include the “App Explorer”, which combines a hierarchical view of app configurations with the Properties Grid, offering both horizontal and vertical layouts, as well as a table mode for easier navigation. “Live Inspection" allows developers to directly interact with the live application UI to select and modify configuration elements, while “Global Search” enables querying across all configuration hierarchies. Additional features such as “Background Inspection”, “Peek Through”, and “Auto Complete” further enhance the development workflow.

The App Explorer provides a tabbed interface for quick access to different configuration sections like Settings, Models, Controllers, and Pages, and it supports both tree and table views with breadcrumb navigation. Live Inspection simplifies the process of locating and modifying configuration elements by clicking on the UI, with background inspection and pulsating icons indicating corresponding UI elements. Global Search allows for comprehensive searches across the app configuration, including specific terms and related items, with search results displayed in a list with full paths and element types.

Transform your app development workflow with the all-new App Studio 2025! Unlock powerful features like Live Inspection, Global Search, and the innovative App Explorer. Ready to revolutionize your development process? Dive into the details and learn more about App Studio 2025 now!

Upcoming features planned for future releases include a standalone mode for launching apps directly from the App Studio homepage, an Assistant panel that provides contextual information and guidance, and a Toolbox panel that facilitates the creation and transformation of UI elements. The API View will also be introduced, allowing developers to work with RESTful APIs of Code On Time applications. These updates aim to enhance the developer experience, streamline the workflow, and make the powerful configuration options of Code On Time more accessible to both new and expert users.

image1.png

The provided screenshot displays the App Explorer following a live inspection of the "Product Name" column header. The image shows the attached hierarchy and properties side-by-side, with the "Label" property of the "ProductName" field selected. A brief description explains the property's purpose. Tabs within the title grant quick access to "Settings", "Models", "Controllers", and "Pages". The right side of the title contains buttons for "Search", "Display Hierarchy as Table", "Split Vertically", and "Close".

image2.png

The ability to view key node properties in a table format is incredibly useful. Clicking on a cell within the table rows will highlight the corresponding node in the Properties Grid and focus on the property associated with that cell. Boolean properties are displayed as checkboxes, allowing you to toggle the property value simply by clicking on them. Click the “Display Hierarchy as Tree” to switch to the standard navigation.

image3.png

Finding application configuration elements is easy with App Studio's built-in search feature. Simply click the "Search" button located in the top toolbar of the studio, and enter your search terms into the provided prompt. The search icon within the prompt will pulsate to indicate that the search is in progress. Results will be displayed as a list of hierarchy nodes, each with its full path, including the hierarchy itself. Select any node to view it in the App Explorer.

Sunday, December 15, 2024PrintSubscribe
App Studio December 2024

Code On Time developers will experience a significant boost in productivity with the release of version 8.9.45.0, which introduces full drag-and-drop support and instant preview of changes in the data controller hierarchy. The new app studio simplifies the process of locating configuration elements through direct and background live UI inspection, even in the most intricate projects. This update marks a significant milestone, as it allows for data controller configuration within live applications.

image1.png
App Studio's background inspection feature displays an inspection frame over the corresponding user interface component in the live app when the selected configuration element in the hierarchy matches the component. App Studio tracks the selection in the active hierarchy and displays it over the live app.

The properties of material symbols can be adjusted using the Property Grid in the associated object's view, such as form views.

image2.png
The primary icon of the form view is previewed directly in the property grid.

The standard icon selector allows search for the icons by exact name or partial match.

image4.png
In App Studio, material symbols can be searched using the standard icon selector, which allows users to search for icons by exact name or partial match. The icon selector can be accessed when adjusting the properties of material symbols using the Property Grid in the associated object's view, such as form views.

The Code Mirror integration allows for the viewing and modification of SQL, JavaScript, and Email business rules.

image3.png
Here's an example of a JavaScript business rule that is triggered when a user clicks the Login button on the built-in login form.

Release Summary

The following product features and enhancements are included in the release:

  • Touch UI
    • Added a color to the material-symbol icons in the dark theme.
    • The context menu is taking into account the edge proximity tolerance when the popup menu is displayed without an arrow and the right edge of the screen is overlapped. Previously the menu would display having its right side flush with the screen edge.
    • Tap/click on the view selector of a child DataView field in the form will not cause the partially visible child rows to upscroll.
    • The views in the same "Filter Family" will share the filter when users switch between views.
    • The view's Remember property will not retain the user selection when the page is reloaded if the property is set to "No".
    • If the view is tagged as view-selector-remember-none then the user selection of the view is not persisted.
    • Fixed the incorrect positioning of the dropdown arrow when displayed on the right edge of the screen.
    • The scrollbar is not expandable if it contains 'false' in the ''expandable' data variable.
  • Universal Input Controls
    • The auto-complete suggestions displayed in the lookup field will not have the "Clear" option at the end if the field does not allow null values.
    • Deleting a lookup value text in the lookup input will not allow the user to leave the field if the field is "Required".
    • The optimization of the data input popup rendering is not performed if items contain 'color' or 'icon' definitions.
    • The data input popup can display color boxes and icons next to the item text. App Studio shows colors for the theme accent names in settings. App Studio shows various data controller components are shown with the corresponding icons.
  • Advanced Search
    • Changed the style of the "match mode" in the advanced search to "less bold".
  • App Generator
    • The "-CodeFile" parameter specified in the command line argument along with "-Develop" will start the development environment with the specified code file loaded.
    • New actions will have the specified ActionId. The default Id is assigned if the value is not provided.
    • Deleting a controller will clear the controller property of the DataView configuration in the corresponding fields of project data controllers.
    • The references to the deleted controller are cleared from the corresponding DataView fields.
    • Renaming of a data controller will also rename the reference to the controller in the DataView fields.
    • Deleting a data controller will clear the "copy" attribute of the lookups in the controllers that were using the deleted controller for data lookup.
    • The new action is created with the "ActionId" value specified in the "insert" action. This allows App Studio to create efficient "insert" transactions without impact on the legacy Project Designer.
    • The new action group is created with the "ActionGroupId" value specified in the "insert" action. This allows App Studio to create efficient "insert" transactions without impact on the legacy project designer.
    • The renaming or deleting of a view in the data controller will also remove the view references in the DataView fields of all affected project controllers.
  • RESTful API Engine
    • The 'is' and 'null' keywords are allowed in the filter parameter expression. This allows specifying expressions such as field1 is not null.
    • The RESTfulEngineBase.AllowActionPath(string) method allows overriding the action detection in the path of a resource in the POST requests. Action identifiers can be specified in the last segment only. This method allows avoiding an exception when the resource identifier matches the action name.
    • The restful API will not allow invoking actions with the generic names when specified explicitly in the URL. The generic pattern includes a1..a999.
  • Data Aquarium Framework
    • Refactored the XXS attack detection to include the field name in the error message.
    • The RequestValidationService.RequiresValidation(controllerName, fieldname) method returns true if the XXS validation is required.
    • If the missing controller is referenced on the page then the app will still load and display an exception in the UI. Previously the page was not rendered with the server-side error output making the app unusable.
    • The studio mode ignores the app's "ui.scrollbars" settings when activated in the live app.
    • It is now sufficient to specify only the Start Command Name if the Start View is specified when activating a form view. Previously the view Id had to be duplicated in the Start Argument.
    • The $app.survey API now supports the 'cancelText' option that specifies the alternative label for the 'Cancel' button.
  • Tree View
    • Hypermedia actions may define a studio "trigger" as a static value.
    • The typeAlt property is evaluated when figuring the node's property set, which allows it to change the property set dynamically upon arbitrary condition.
    • The static type is assigned to the nodes even when typeAlt is specified. This allows the nodes with the dynamic property sets to be selected.
    • The static nodes with the "iterate" peers will remain hidden until the dynamic items are loaded and created. The parent node appears empty when expanded until the dynamic children are loaded and static items are revealed.
    • The hypermedia action applied to the top-level node will refresh the tree and trigger the 'select' event if an identifier to select is not specified.
    • Refresh of the entire tree in response to the hypermedia action will not freeze the tree content if the selected node is not specified, such as when a top-level node is deleted.
    • The entire tree is refreshed if the top-level object is created or changed/renamed. The node is selected if matched to the specified identifier.
    • The "create" hypermedia action executed on the "_root" node will cause the tree to refresh and select the new node.
    • The Ctrl-click on the selected node without a 'type' will unselect the node.
    • Unified the fetching of the missing "self" hypermedia when right-clicking the node and when the action bar is updated to display the "_root" actions.
    • The "_root" node definition creates an invisible node that lands its actions to the action toolbar and context menu when no node is selected in the hierarchy. This allows users to invoke the top-level commands that apply to the entire hierarchy.
    • (PropGrid) The reset of the property values is correctly reflected in the compound property values.
    • The replaceNode method will re-evaluate the nodeType using the new node data.
    • The 'treeview.app' event contains the nodeType property calculated from the 'type' key of the current node.
    • (TreeView) The "select" event is triggered if the execution of the hypermedia action returns an empty "selectIdentifiers" array in the "result" key. This event signifies that the selection has changed. This allows the property grid to handle the event and to clear the selected object.
    • The "create" and "create-" hypermedia actions will select the "identifier" field in the property grid giving users an option to rename the object after it has been created.
    • If node's hypermedia action has the 'body' key set to null or false, then the action will have no body in the request. Otherwise the {parameters: {data: [node1, node2]}} is created in the body with the data set to an array of selected nodes.
  • Prop Grid
    • The studio trigger defined on the property level will be evaluted against the current data object representing the property grid values.
    • The change of the property set will transfer the selected property from the previous property set to the new one. This ensures the smooth user experience.
    • Specifying a 'validate'expression to the property marked as 'identifier: true' will override the standard " identifier validation. The expression has access to all field values through this and the value argument gives access to the value to validate.
    • The double-click on the information pane divider will rotate the height of the pane to fit the content in its entirety and then to the default height.
    • The property grid is not cleared when the _root element data is fetched.
    • The "reset" property will reset the specified properties to their default values if the "changed" property with the "reset" array has been changed.
    • The node's 'values' property may specify the JavaScript expression that evaluates to a list.
    • The property grid will automatically load the new property set if the node.type is an expression whenever any property values are changed. This allows displaying different property sets for the same node.
    • An exception will be thrown if the property grid was not able to fetch the data for the node selected in the hierarchy.
    • An unsuccessful renaming (changing of the "identifier" property) will cause the app to select the peer hierarchy node that does have the same identifier.
    • A click/tap on the "toggle" of a category or complex property will put the focus back on the scrollable area of the property grid. Subsequent keyboard navigation will remain active. Previously the focus was lost.
    • Missing "identifier" property will not cause an exception when a new object instance is created with "create" in the hypermedia name.
    • Method $app.touch.propGrid.select(propertyName) will choose the "identifier" field of the object.
    • The "node" hint is displayed in the info pane when the last selected property is not visible for the selected node.
    • Collapsing/expanding the focused category or complex property with "Left" and "Right" keyboard keys will refocus the property grid to allow continuous keyboard navigation of properties.
    • The hint of the first selected node in the hierarchy is displayed as a hint in the information pane attached to the properties grid.
    • A pair of "backquote" characters will wrap the contents in the <code> tag. The pair of "**" will wrap the contents in the <b> tag. The sequence of line breaks is replaced with the <br/> tag.
    • The vertical scrollbar is not auto-expandable in the Desktop mode. This prevents accidental scrolling when clicking the "..." and "arrow down"due to the scrollbar covering the buttons in the value input of properties.
  • TBD - 10/30/2024

Next Update

This release gives you changes to instantly improve your productivity and try the new Controller hierarchy configuration. tools of the Code On Time v9. The next update will follow swiftly with the similar productivity tools in the Pages hierarchy.