BindKraft v2.18.0
michaelelfial
released this
11 Jul 14:26
·
1070 commits
to master
since this release
This is the first release after moving the development to GitHub, some fixes may be necessary since we are still getting used to GitHub.
The 2019-Jul-11 Release includes a number of new features, mostly deep inside the platform, and intermediate results of long term efforts.
Highlights:
- The old and short lived mechanism of passing queryback (based on ILauncherQueryBack - deprecated too) object to apps by the shell has been deprecated. It is still supported, but old apps will have to implement IRequiresQueryBack marker interface to request the old shell behavior (will be completely removed in v2.20)
- LocalAPI related app interfaces IImplementLocalAPI, ILocalAPIImports, IUsingLocalAPI and the related implementors are also deprecated and will be removec in v2.20. They currently work, but it is recommended to migrate to AppGate usage as soon as possible.
- The local proxy system has been drastically extended and improved to support events (EventDispatcher-s) in the interfaces, releasing of the proxies and release containers that automate this process almost completely.
- AppGate is introduced. An object of that class is created by the shell and passed to the constructor of launched app, providing it with a ready to use LocalAPIClient (hidden behind AppGate's methods) and set of methods for querying running apps for services. Both LocalAPI and app services are returned wrapped in local proxies registered in the release containers maintained by AppGate and LocalAPI for the life-time of the app. They are automatically released when the app shutdowns. Each proxy will self-unregister from its container if Release() method is called on it explicitly, thus giving the programmer a chance to both save some memory by explicitly releasing unneeded references to services and API and not suffer fatal consequences if explicit action is not taken (releasing them when the app shuts down).
- IAppDataApi local API is now available together with BKIinit.AppData enabling small data pieces to be configured to load in memory and used as configurations or handy content by apps
- First surrogate app was added - TabbedSurrogateApp, but it is still in early stage - working, but very limited.
- LightFetchHttp class is added to allow alternative simple ajax communication. Further AJAX development will use and extend it in future versions, involving this class in more complex AJAX pipeline. For now only direct usage of the class is available for same origin requests (for now).
- Added datatoURL static method in BKUrl to enable conversion of plain javascript objects to query string parameters with arbitrary depth
- Fixed acticateWindow bug which occurred only with 3 or more topmost windows visible at the same time.
- The removal of JQuery usage progresses and DOMUtilElementClass and DOMUtil set of methods grew considerably as well as their usage. Bindings now support direct (not through Jquery) target operations, but only a few are replaced for the moment and they fall-back to jquery for the rest (this will be completed in 2.19)
- A lot of new documentation articles were added to the Documentation folder.