Blog

Form rendering, controllers in the App Studio, and numerous enhancements.

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(8) OAuth Scopes(1) OAuth2(11) Offline(20) 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(180) Reports(48) REST(29) RESTful(29) RESTful Workshop(15) RFID tags(1) SaaS(7) Security(80) 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
Wednesday, April 24, 2024PrintSubscribe
Visual Fidelity, Controllers in Studio, etc.

The release 8.9.41.0 includes improvements to the service worker, user interface (UI), data caching, and framework enhancements. Additionally, there are updates to the RESTful API, input handling, and various components like TreeView, property grid, and lookup options. The overall focus of these changes is to enhance the user experience, improve performance, and ensure compatibility with latest technologies.

Enhanced Rendering of Forms

Switching between the read-only and editable state in a form will not cause layout shifting. The styling of universal inputs was adjusted to ensure the high fidelity of presentation. The asterisk displayed next to the labels of the editable fields is now rendered as a Material Symbols icon. Every form will look better when the app is regenerated with the new release.

image2.png

Controllers Hierarchy in App Studio

We have completed the Controllers hierarchy configuration and implemented a robust set of “field” properties. Developers can inspect the UI of the live app and jump to the relevant configuration element. Changes to the “field” property values in the Properties Window are persisted to the project design and data controllers.

image1.png

Make sure to inspect the hierarchy of your own projects. If you do find any inconsistencies, then please report them with the screenshots in a support ticket.

If you do make changes in the App Studio, then make sure to restart the app generator if you need to use the legacy Project Designer.

The next release will introduce the drag and drop manipulation of the hierarchy nodes and more editable properties.

Miscellaneous

The following enhancements are included in the release 8.9.41.0:

  • (PWA) The service worker will attempt to cache the response that has the http(s) schema only. The requests from the browser extensions to fetch resources from other schemas are ignored.
  • (Touch UI) The "required" fields are now displaying an asterisk based on a Material Symbols icon.
  • (Touch UI) The multi-line read-only text fields do not have the margin at the bottom.
  • (Touch UI) The "chevron" button in the lookup input has its top margin matching the natural top margin of the text value.
  • (Touch UI) Reduced the excessive bottom margin of the "read-only" form fields.
  • (Touch UI) Restored the visibility of the "View Details" button displayed next to the lookup fields.
  • (ACL) The "read '' permission on the data controllers now works with any kind of data. The framework does not change the SQL when selecting data. Instead the ViewPage instance removes the fetched data from the output. The Access Control List will have its own section in the App Studio in the future releases.
  • (Touch UI) The alternative view options are presented as the standard items in the sidebar. The previous releases rendered them as the TreeView items.
  • (Framework) The SQL "insert" statement will include the "default" expressions of the fields if the field value is not specified.
  • (Framework) The filter expressions are included in the resultset when a resultset is required to construct a SELECT statement. This allows creating dynamic access control rules and view-level filter expressions that work with the filtering of many-to-many inputs. Previously the filters were incorrectly included in the outer SELECT statement.
  • (Framework) Adding a virtual field without a formula will not break the filtering of many-to-many fields.
  • (Framework) Introduced the StorageServiceVersion property in the AzureBlobAdapterBase class. Developers can override the storage API version in the partial declaration of the AzureBlobAdapater class of their own project.
  • (Framework) The Azure blob adapter is now using the 2023-11-03 version of API.
  • (Touch UI) The input footer takes up to 90% of the available width if there is a text action associated with the input. value.
  • (Touch UI) Updated the icons to the latest Google Material Symbols. App Studio will allow a visual selection of icons in the relevant properties of application configuration elements.
  • (App Studio) The changes to the content in the Property Grid will trim the GET cache depth to 3 levels. This ensures fresh data fetched from the server.
  • (REStful) The $app.restful API optimizes the GET cache cleanup performed when the other HTTP methods are executed on any resource.
  • (Universal Input) The 'input' event triggered on a text input will clear the 'keepFocus' flag. This enables pasting the field values through the system context menu in the Property Window of the App Studio.
  • (TreeView) A notification with the text of the error and node template definition is displayed when the TreeView instance fails to create a node.
  • (Prop Grid) Boolean properties may have a custom list of values.
  • (Prop Grid) The configuration of properties allows custom lookup options such as the lookup-accept-any-value tag. Previously the property grid was overriding the custom definition with the lookup-null-value-none tag. App Studio uses custom lookup options in the definitions of some fields.
  • (TreeView) If the "related" node contains the selected child then the replacement of the related node "inner" content is performed. Otherwise the new node is created in the place of the original "related" node.
  • (Touch UI) The TreeView instance will trigger the "get" event to request data when a "related" node needs to be refreshed after a change to another node.
  • (App Studio) Enhanced algorithm of data field inspection will lead to the field definition in the view.
  • (Touch UI) Improved the algorithm of the toolbar menu positioning when the number of visible app toolbar buttons is changed in response to the user selection of data items.
  • (Framework) Moved AccessControllList from BusinessRules.cs|vb to Common.cs|vb.
  • (Touch UI) Removed the excessive height of the fields in the read-only mode.
  • (Touch UI) Wide notifications appear within the app boundaries in the App Studio mode.
  • (TreeView) By default, the TreeView does not track the last selected node.
  • (PropGrid) The property grid constructs the TreeView with the option to track selection.
  • (CMS) The content with no value in the Path will open correctly in “edit” mode when selected.
Labels: Release Notes
Thursday, March 28, 2024PrintSubscribe
Live Editing in Studio, SSO, Menu Alignment, etc

Release 8.9.40.0 introduces new features and product enhancements. These include live editing in app studio, simplified single sign-on, alignment control for menu items in the app toolbar, improved logging in Sync.*.xml files, and a significant productivity increase over the legacy Project Designer.

Editing Fields in App Studio

This is the first release that includes the App Studio capable of making changes to the configuration properties of the fields and having them persisted in the project design. The following field properties can be changed in this release: Type, Length, Allow Filtering, Allow Sorting, Label, Primary Key, Read Only, Virtual, Show In Summary, Data Format String, and Allow Nulls. Please continue using the legacy Project Designer to make other changes to your application.

App Studio performs instant changes to the data controllers and also logs the corresponding entries in the Sync.*.xml files to ensure the next project refresh will reproduce your work and merge it with other developers' changes. There is no need to generate the app - just click on the “frozen” application to have it reloaded with the new configuration of data controllers.

The logging in the Sync.*.xml files have also been improved. The studio will continuously update the last log entry with the additional property values. Changes to multiple properties of a project configuration element are included in the same log entry, which significantly reduces the size of the log.

The legacy Project Designer creates ten entries in the log if you make ten modifications to the field label. You must also generate the app to preview the changes. The new App Studio creates one log entry with the last variation of the field label as long as you do the edits within ten minutes of the last change. The app must be reloaded to preview the result of changes.

App Studio offers tremendous increase in productivity over the legacy Project Designer.
image3.png

Changes to field properties are now persisted in the project configuration. Edits of the field labels will be reflected instantly in the user interface.

The Project Explorer hierarchy in the App Studio now displays the views, categories, and data fields. Make sure to inspect your own project to verify that the hierarchy is correctly representing your app's data controllers. Actions, business rules, and commands are expected to be included in the next release's hierarchy.

We are adding the universal search capability in the App Studio. It will allow you to locate configuration elements of your app by typing a few characters. Selection in the search result will instantly open the corresponding hierarchy and focus on the matching property.

Single Sign-On Enhancements

Federated Identity Management is now possible with the identity providers and consumers published to a virtual folder on a web server, powered by IIS or IIS Express.

Registering client applications is greatly simplified. The consumer registration dialog shows the Provider Uri that can be copied along with the Client Id and Client Secret to the consumer application.

image1.png

The streamlines identity consumer registration makes it easy for the app administrator to configure the single sign-on.

The Redirect Uri can be copied to the identity consumer app registration when the identity provider is registered in the client app.

image2.png

The identity provider registration form was reorganized to streamline the copying of configuration parameters from the identity provider app.

The OAuth Identity Provider also simplifies registration of identity services from Google, Microsoft, etc.

Menu Alignment

The menu items in the toolbar are automatically centered by default if three or more menu items are available to the user. Otherwise the menu items are aligned to the left.

image5.png

The menu items in the application toolbar are now centered by default. Configure the menu alignment in the Client / User Interface section of the project settings in the App Studio.

Developers can specify the preferred menu item alignment in the Client / User Interface / Menu / Location / Align property directly in the application settings with the help of App Studio..

image4.png

This is the Settings hierarchy presenting the item alignment options for the menu located in the toolbar.

Summary

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

  • (Framework) Resizing of the sidebar will cause the toolbar menu to refresh without fade-in effect.
  • (Framework) The ui.menu.align option in the ~/app/touch-settings.json controls the horizontal alignment of the menu items in the toolbar. By default the options are centered if there are at least three items in the menu. The supported menu alignment values are auto, left, center, and right.
  • (SSO) Identity consumers report a JSON error directly in the browser when the provider is refusing the connection.
  • (SSO) If the identity provider is configured as "Auto Login", then the consumer app will display an error message if the identity provider is not online.
  • (SSO) The identity consumer app will not attempt to redirect to the identity provider if it is not online.
  • (SSO) The calculated provider_uri becomes visible in the OAuth Identity Consumer registration form when the new consumer record is saved.
  • (SSO) Federated Identity works correctly in the provider and consumer apps deployed to a virtual folder.
  • (Touch UI) The TreeView API implements createNodes and replaceNode methods.
  • (App Studio) The appearance of the changed object properties is reflected in the hierarchy above the Properties Window..
  • (Universal Input) Tag a data field as text-style-(primary|large|medium|important|accent) to change its presentation style.
  • (Touch UI) The default menu alignment is now centered if there are at least three items available to the user.
  • (FIM) Federated Identity works with the providers and consumers of identity that are deployed to a virtual folder on the IIS Web Server.
  • (App Studio) The studio log will display the runtime server errors when the app fails to reload after it has been re-generated or synced. This allows them to continue using the studio tools to address the issue even if the app is inoperable.
  • (Data Aquarium) The $app.cookie() method will set the 'path' of the cookie to the baserUrl of the app without the trailing "slash".
  • (Data Aquarium) The $app.urlArgs(url) method correctly detects parameters with empty values specified in the argument. A map of parameters is returned.
Monday, March 18, 2024PrintSubscribe
March 2024 Hotfix #2

The release 8.9.39.0 introduces the following enhancements to the application framework:

  • (OAuth) The TextUtlity.ToUniversalTime() method is used to parse the dates serialized in the OAuth data entries. This resolves the incorrect date parsing that was occuring in some locales. The error was reported as "String was not recognized as valid DateTime".
  • (Framework) The TextUtilities.ParseYamlOrJson() method will parse JSON without attempting to detect the "date" values. The serialized dates must be converted from the "string" type to the corresponding "date" type explicitly (REST Level 2). This avoids incorrect processing during the OAuth 2.0 authorization.
  • (RESTul) The $app.restful() method will correctly process requests with the query parameter when the url is specified explicitly.
  • (App Gen) The app generator will make up to 10 attempts to modify the configuration file of IIS Express when starting apps. This may be required when IIS Express is installed for the first time and performs the construction of its configuration files.
  • (App Gen) Enhanced the detection of the installed Microsoft IIS Express.
  • (App Gen) The App Studio is started even when the [Documents]\IISExpress folder does not exist. This ensures the successful creation of the first project on the workstations that have not had VS or IISExpress installed.
  • (App Gen) The new entries in the Sync.*.xml logs are time-stamped with the UTC dates. This ensures the correct merging of the App Studio and legacy Project Designer log entries.
Continue to March 2024 Hotfix #1