Changes in version 2.6
This version includes a .NET debugger for QueryStorm apps, improvements in the package manager and changes in how the full-window IDE works.
It also includes some breaking changes so existing apps will need to be recompiled in order to work on the new runtime. Minor code changes will be required as well since some members/types have been renamed (breaking changes marked in the last paragraph of this document).
Debugger
The focus of this version is the introduction of the C# and VB.NET debugger. Previously, QueryStorm apps could only be debugged by attaching Visual Studio to the Excel process. Now they now be debugged right inside QueryStorm.
In order to accommodate the new debugger, various changes had to be made, primarily due to the fact that the debugger and debugee cannot live inside the same process.
Since the debugger is running inside the Excel process, apps that are being debugged are now executed inside a separate runner process. This is done only for the app that's being debugged, other apps run inside the Excel process as usual.
When debugging workbook apps with large amounts of data, running the app in a separate process slows down reading and writing operations. To avoid that, the debugger can now be launched as a separate application that runs in its own process, allowing the debugee (the QueryStorm app) to run inside the Excel process.
The debugger behaves slightly differently when docked compared to when running as an external application. Most notably, when docked, it does not block the Excel user interface when it hits a breakpoint (otherwise it would block itself as well since it's running inside Excel). When running as a separate app, it does block Excel while stopped at a breakpoint.
In general, using the external QueryStorm debugger is advisable when working with workbook apps with large amounts of data. For other scenarios, both debuggers should work fine.
The debugger uses the same shortcuts as Visual Studio. These can be customized by the user:
Package manager improvements
The package manager now implements the ability to update packages. Previously, this functionality was in the user interface but was not implemented.
API changes
- [Breaking] Ribbons should derive from
RibbonBase
, they should remove theirPropertyChanged
andOnPropertyChanged()
members (since these are now inherited), and should remove theIsVisible
property from the xml (<Tab IsVisible=.../>
) since the visibility of ribbons in workbook apps is now controlled implicitly (visible only when owning workbook is active). - Ribbon tabs can now request to be brought into view using their
ActivateTab()
method - [Breaking] Settings objects now have an additional member
OnUpdated()
that gets fired when the user clicks "Ok" after editing app settings via the QueryStorm runtime "Configure" ribbon. ValueStreamBase
class updated to allow cancellation via token- [Breaking] ApplicationModule renamed to AppBase
- Installer cleanup + fix for all-users install.