This document describes the updates and fixes made to Alpha Anywhere in 2025 to present.
To see the 'What's New in V12' document (which describes all of the new features in Alpha Anywhere's initial release) please click here.
Please note that Alpha Anywhere patches are only available to users with
a current subscription.
You can verify your subscription status from within Alpha Anywhere by going to Help, About, or by clicking this link shown here (https://activation.alphasoftware.com/subscriptionStatus.aspx). If you install an update for which your subscription is not entitled, you will need to uninstall the update and rollback to an older version that you are authorized to use in order to continue using Alpha Anywhere.
To see release notes for other periods, click the appropriate link:
Release notes for 2023 and 2024
Release notes for 2021 and 2022
Release notes for 2018 and 2019 and 2020
Release notes for 2017 and older
In addition to the official updates that Alpha Software makes available from time to time (which are described in this document), we also make available our internal pre-release builds that allow you to see what features have been added and what bugs have been fixed since the last official update. The features and bug fixes in the pre-release build (called the 'Nightly' build) will be part of the next official update. To see the Nightly build release notes, please click here.
In order to keep Alpha Anywhere current with new technology from Microsoft, we are announcing the end of support for older versions of Microsoft Windows and Microsoft Windows Server that are no longer in mainstream support by Microsoft.
Schedule of Alpha Anywhere Windows Operating System Support
Microsoft Windows Operating System | Supported For Alpha Anywhere Prior To | Microsoft Mainstream Support |
Windows XP, Windows Server 2003 | Already ended | Ended in 2015 |
Windows 7/Windows Server 2008-R2 | January 1, 2021 | Ended January 14, 2020 |
Windows 8/Windows Server 2012 | Not supported. | Ended October 9, 2018 |
Windows 8.1/Windows Server 2012-R2 | July 1, 2021 | Ended October 9, 2018 |
Windows 10 | Must be kept up to date. |
Rolling Upgrades Semi-Annual/Annual |
Windows Server 2016 | July 1, 2022 | January 11, 2022 |
Windows Server 2019 | July 1, 2024 | January 9, 2024 |
Windows Server (vNext/2021) | TBD | TBD |
Note: The operating system support
lifecycle does not apply to Alpha Cloud deployments. On Alpha
Cloud, Alpha Software manages the operating system deployment
for you. Alpha Cloud subscriptions currently deploy on Windows
Server 2016. For more information about Alpha Cloud see
https://www.alphasoftware.com/alpha-cloud-worry-free.
UX Component _Web Push Notifications | Using OneSignal to send push notifications in Web applications |
These videos show how you can use the OneSignal
service to send notifications to a web
application (including PWAs) Watch videos Date added: 2025-06-21 |
Xbasic, PDF_Merge() Function - Now allows you to specify the page size of the merged document. If you don't specify the page size the default page size is determined by the page size of the largest source document.
The syntax for pdf_merge() is now:
L pdf_merge(Base_File as c, Merge_File as c,
Result_File = "", flagMergeAllPages = .t., flagMergeFileOnTop = .f.,
flagNested = .f., pageWidthInPoints = "", pageHeightInPoints = "")
Push Notifications - You can now send push notifications to Web applications (including PWAs) using the OneSignal service.
OneSignal is a unified messaging platform that supports web push, email and SMS notifications. To setup an account at OneSignal visit OneSignal.com
To enable OneSignal within a web project go
to Project Properties/OneSignal and check
Enabled. Next enter your
OneSignal App Id.
(which you will obtain from the OneSignal
web site.)
Click here for information on setting up a
OneSignal project and obtaining a OneSignal
App Id.
For further details on using web push notifications with Alpha Anywhere
see the Alpha Anywhere documentation topic:
Web Push Notifications with OneSignal
For a series of video tutorials on the OneSignal
integration click the link:
OneSignal Web Push Notifications Playlist.
JSON Forms - Date Picker - You can now control if a datepicker control should have an icon to open the datepicker. if no icon is shown clicking anywhere in the control will open the dqtepicker. if an icon is shown you can customize the icon.
Datepicker control with no icon.
Datepicker control with default icon.
Datepicker control with custom icon.
To set the properties of the datepicker icon, set these properties
If you have turned on the Show Icon property, you can leave the Icon Name property blank to use the default icon
Security Framework - New folder level allow options have been added to include subfolder for the selected folder. These options are named
These options have been added to the Folder Security menu for folders.
When either of these options is used files in subfolders are allowed when the option's condition(s) are met.
Note
The implementation of the existing Allow All Files
in Folder and Allow All Files in Folder
with Login was done incorrectly under IIS. Subfolders are
included in the folder level option. Because of this, Allow All Files in
Folder and Allow All Files in Folder with Login for existing IIS
applications will continue to behave as if and Subfolders was selected.
However, if the allow option for a folder is changed, the consistent
meaning will be used and and Subfolders must be explicitly selected to
get that behavior.
Xbasic - For Each Loops - Fixed a regression that did not allow the iterator variable to be referenced directly (e.g. varname). It was required to explicitly use varname.value.
As a result of this bug, the output generated by the a5w_info() function was incorrect.
unique_key_value() Function - Fixed a regression.
List - multi-column primary key - Fixed sync bug if List has a multi-column primary key.
Classic server and IIS - Enable free threading feature by default.
Backup - Fixed regression in backup feature.
UX component - Edit-combo - Various fixes.
UX component - Date Format - Fixes for UK date format.
UX component - List - Fix delay render till visible.
Publish - HTTP Publish - Various fixes.
Security = Extended User Info Table - Added support for dynamic connection strings.
USPS Lookup Function - Various fixes.
UX Component - Advanced Dropdown Message box | Advanced Dropdown Message box |
This video show the various kind of Advanced
Dropdown message boxes. Watch video Date added: 2025-03-16 |
UX Component - Advanced Dropdown Message box | Advanced Dropdown Message box - wait style |
This video shows how a Wait style Advanced
Dropdown message box can be used to show progress
messages as a chunked Ajax callback executes. Watch video Download component Date added: 2025-03-16 |
geocode_address() Function - OpenCage - You can now use the OpenCage service to geocode addresses. OpenCage is cheaper than the Google service.
Example
key = "your OpenCage API key"
address = "36 Bigelow street, Cambridge MA 02139 USA"
dim p as p
p = geocode_address(address1,"opencage",key)
UX Component - Edit-Combo Control - .setValue() Method - Fill-in Fields - If you have defined an edit-combo lookup with fill-in fields (and the choices are populated at render time), when you use the .setValue() method to set the value in the control, the fill-in fields are now also populated.
Cordova App Builder Genie - Plugins - InAppBrowser - The installed plugin version for the InAppBrowser plugin has been upgraded to the latest release which is V6.0.0.
This resolves a bug that appeared in the latest iOS versions related to url's that specifically target the system level browser.
Cordova App Builder Genie - Cordova Android 14.0.0 - API Level 35
This release includes support for Cordova Android 14.0.0, API Level 35, which is the latest release of Cordova Android. It has breaking changes when compared to the previous release, Cordova Android 13.x.x.
The changes include:
Project Dependencies
The following project dependencies were bumped:
To install Android SDK Platform 35
To install SDK Build Tools 35
'
To download and install JDK 17:
After JDK 17 is installed, be sure to check your system environment variables to be sure that JAVA_HOME is pointed to your install of JDK 17
When building a Cordova Android App with the Alpha Cordova App Builder genie be sure to set the target SDK to API level 35.
For further information see:
Docker Container Builds - Docker Desktop - New Docker Image Required When Targeting API Level 35
If you are building Android apps with a Docker Container and your project is targeting API Level 35, you will need to delete the existing remoorejr/alpha-cordova-android-build Docker Image in Docker Desktop and install the latest version of the Docker Image.
Once you delete the container, search for "Alpha-Cordova" and select the latest version of the image
remoorejr/alpha-cordova-android-build, which is the same as
the image tagged v1.0.3-cordova-android-14.0.0.
The new container includes support for:
When building a Cordova Android App with the Alpha Cordova App Builder genie be sure to set the target SDK to API level 35.
UX Component - Advanced Dropdown Message Box = Action Javascript now allows you to define Advanced Dropdown Messages. Several styles of messages are available. These are:
Images of the various message type are shown below:
To define an Advanced Dropdown message, use Action Javascript. Select the Advanced Dropdown Message box action and then open the builder.
Builder for Confirm style message box.
Builder for Choice style message box. This dialog allow you to define the choices that are displayed.
When you click the smart field for the Choices property a dialog is shown where you can define the choices.
Builder for the Prompt style message box.
The builder allows you to define an optional Id for the message box, a title, message body and an action (the Javascript to execute when a button on the message box is clicked). The action makes a variable called action available which contains the name of the button that the user clicked.
The following methods are available for use with the Advanced Dropdown Message box.
A5.message.hide(id [, flagFireEvent]) - Hides a message box. If flagFireEvent is true, the action is executed and the action variable is set to hide.
A5.message.update(id,title,message) - updates a message box
Free Threading - This release is now free-threaded. Xbasic is now thread-safe. The benefits of free-threading are explained below:
Watch video
Download test .a5w page
In the past, the XBasic interpreter was cooperatively shared between simultaneous
web requests. While one request was processing XBasic all the other
requests would wait until the first request finished processing or
paused XBasic processing by doing something like accessing a database. This was
needed because there was a limitation with internal data that was not
thread safe.
Free threading fixes this limitation so
that multiple simultaneous requests can be processed at the same time.
In other words, the XBasic interpreter does not need to be cooperatively
shared. This change benefits web apps that have a high load or spikes in
requests as these requests can be handled simultaneously. Additionally,
these requests can be handled on any core where in cooperatively shared
mode, there would be an affinity to a single core. This means there will
be a more balanced usage of processor resources.
Free-threading can be enabled or disabled on the classic server on the Performance tab of the Server Settings dialog.
For both IIS and AlphaCloud, there is a setting in the publish profile:
UX Component - List Control - List Builder - Return Value - The List builder now requires you to specify an explicit return value. Previously, the return value could be blank.
Google Sheets - Xbasic Functions to read and write data - Two new Xbasic functions are available to read data from and write data to Google Sheets. These functions are:
IMPORTANT Before you can use these functions on your Google Sheet you must first share the Sheet with this email address: sheets@sheets-448303.iam.gserviceaccount.com You can get the email address by calling the google_sheet_to_json() function specifying a blank id. For example: google_sheet_to_json("","")
Syntax
C jsonData = google_sheet_to_json(C
spreadsheetId [,C range ])"
google_sheet_update(C spreadsheetId ,C values ,C
range )
Where:
The Sheet id is obtained by taking the address shown in the browser when you have the Sheet open and then extracting the id from the URL:
https://docs.google.com/spreadsheets/d/this is the id /edit?gid=0#gid=0
The range starts with the sheet name followed by ! and the starting and ending cell address, separated by a colon. For example: Sheet1!A1:E10
When updating a Google Sheet the range need only specify the starting cell. For example: Sheet1!A1
Examples
Dim id as c = "1klxbQOgMiE1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
dim range as c = "Sheet1!A1:B5"
?google_sheet_to_json(id,range)
= [
{
"firstname":
"Fred",
"lastname":
"Smith"
},
{
"firstname":
"John ",
"lastname":
"Jones"
},
{
"firstname":
"Nancy",
"lastname": "Kiley"
},
{
"firstname":
"Cecil",
"lastname": "Luxa"
}
]
'To update the Sheet
dim p[2] as p
p[1].company = "alpha"
p[2].company = "beta"
dim json as c = json_generate(p)
google_sheet_update(id,json,"Sheet1!a1")
UX Component - Textarea Control - HTML Editor -- QUILL - When you configure a textarea control as an HTML editor, you now have the option of using the 3rd party, open source, QUILL editor.
The image below show how the QUILL editor is rendered in a UX component.
You can customize the QUILL editor toolbar by defining the HTML editor toolbar customization property. If you do not customize the toolbar, a default toolbar is shown.
CURL_Post_data Function() - this function now takes an optional timeout parameter. The default timeout is 10 seconds. Previously this function did not timeout. If you set the timeout to 0, then no timeout is set.
a5_showHtml_browser() function - Displays HTML content in a browser tab using the default browser. Contrast with a5_show_htmlchrome() which shows the HTML using the embedded chrome control.
UX Component - Client-side Calculated Fields - Client-side calculated field are now automatically set to read-only.
UX Component - List Control - Query By Example - You can now specify that certain fields should be excluded from QBE. Previously, all fields in the List were automatically included in the QBE.
UX Component _list Control Action Bar- Detail View Buttons - You can now specify that the Save and Synchronize actions should be combined into a single action.
UX Component - List Control - Fixes a regression where the List control did not render.