Blog

Live editing of fields in App Studio, menu item alignment, and simplified SSO.

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(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(183) 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(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
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.

image2.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.

image1.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.
Wednesday, March 13, 2024PrintSubscribe
March 2024 Hotfix #1

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

  • (Touch UI) The TreeView will not iterate a template node if the node defines a when expression that does not evaluate as true.
  • (App Studio) Added the Pixel 8 Pro virtual device to the standard list.
  • (Touch UI) Perfected the consistency of the menu refresh in the toolbar after the full screen transitions to the root of a virtual page.
  • (Framework) The $app.urlArgs() method will exclude the "hash" from the URL parameter values.
  • (Universal Input) The multi-line text inputs are styled to have the whitespace as pre-wrap with the "thin" system scrollbars. If such input has the scrollable content then the input caret is always set at the top of the text when it is focused.
  • (OAuth) The callback URL with the authorization_code is constructed with the help of the UriBuilder class to handle all edge cases correctly.
  • (RESTful API) The App Studio is not linked to the app running on the localhost when the OAuth 2.0 authorization request is being handled by the app.
  • (Touch UI) Implemented the instant refresh of the app buttons in the app toolbar when the first virtual page is loaded.
  • (Touch UI) Restored the delayed refreshing of the app toolbar buttons. The last release has caused the wrong timing for the app toolbar button refresh.
  • (Touch UI) The advanced search does not raise an exception when setting focus on the field with the invalid input value.
  • (Touch UI) The inputs with the static drop down button have an increased padding on the right to ensure that the button does not overlap the input boundaries when the input outline is visible.
  • (Framework) Assigning an empty array y to the BusnessRules.ResultSetArray property will result in an empty collection returned by a RESTful API resource.
  • (2FA) The ApplicationServices.AllowUserLoginResponse() method now accepts the password argument to allow a more flexible decision making when forcing the Multi Factor Authentication.

The App Studio allows browsing the data fields and categories in the views with this release.

image1.png

The changes to the values in the Properties Window will be persisted in the next release. The data controller XML files will be modified instantly along with the corresponding entries to the .Log.xml and Syn.*.xml files. This will increase the developer productivity significantly since the code generation will not be required in most cases.

The legacy Project Designer requires the app to be generated for any project configuration changes to take effect. The new App Studio is driven by the database of configuration object properties with the explicit specification of when the code generation must take place. Most properties do not require code generation. The app studio “freezes” the UI of the live app to signify its “changed” state when developers make changes to the properties. A click on the “frozen” app will either instantly reload the app or perform the code generation with subsequent reloading.

Labels: Release Notes