We are happy to announce v. 5.13.00 of the most complete development toolkit for Delphi and C++Builder for building native modular and fast multi-tier solutions.
If you like kbmMW, please let others know! Share the word!
We strive hard to ensure kbmMW continues to set the bar for what an n-tier product must be capable of in the real world!
Notice that kbmMemTable v. 7.85.00 or newer is a prerequisite to this update for 10.4 Sydney.
This is a combined bugfix and selected new features release.
The release includes:
- Improvement to ORM including support for rewriting JOINS.
- Improvements to SmartBind
- Improvements to SmartEvent
- Improvements to LINQ
- Support of XML mixed text documents
- New TkbmMWXMLReformatter which can analyze and reformat even damaged XML
- New support for USB/HID devices including MagTek barcode reader class (Windows/Ent)
- More features improvements and fixes.
Please check the end of this post for a detailed change list.
Professional and Enterprise Edition is available for all with a current active SAU. If your SAU has run out, please visit our shop to extend it with another 12 months.
Community Edition (CE) can be used as a 60 day trial, alternatively as a free product, provided the license is followed. Please read license.txt file for details. CE supports a large subset of the Enterprise Edition features, but may have technical and artificial limitations in certain areas. It only supports a specific Delphi/Win32 SKU, produce Win32 executables and do not include source.
Please visit https://portal.components4developers.com to download.
kbmMW is the premiere n-tier product for Delphi, C++Builder and FPC on Win32, Win64, Linux, Java, PHP, Android, IOS, .Net, embedded devices, websites, mainframes and more.
Please visit http://www.components4developers.com for more information about kbmMW.
Components4Developers is a company established in 1999 with the purpose of providing high quality development tools for developers and enterprises. The primary focus is on SOA, EAI and systems integration via our flagship product kbmMW.
kbmMW is currently used as the backbone in hundreds of central systems, in hospitals, courts, private, industries, offshore industry, finance, telecom, governments, schools, laboratories, rentals, culture institutions, FDA approved medical devices, military and more.
5.13.00 Nov 4 2020
- Added support for rewriting SQL containing joins. Currently ANSI SQL 92 joins are understood.
- Added support for auto unscheduling scheduled event upon exception.
It is set via the property UnscheduleException on the scheduled event instance (kbmMWScheduler.pas)
- Added support for nullable lookup (outer lookup) in ORM. Returns NULL values when a referenced lookup
is not found. If the field is defined as not null, then an inner join will be used, else an outer
join will be used.
- Added TkbmMWThreadObjectList<T:class> class (kbmMWGlobal.pas)
- Added TkbmMWAuthorizationLogins.Get which takes an actor instance and returns list of matching logins.
- Added TkbmMWAuthorizationManager.Logout(const AActor:TkbmMWAuthorizationActor)
It will log out all registered logins for the specific actor.
- Added TkbmMWRTTI.IskbmMWDateTime(const AValue:TValue):boolean
- Added TkbmMWRTTI.IskbmMWNullable(const AValue:TValue):boolean
- Added TkbmMWRTTI.GetkbmMWDateTime(const AValue:TValue; var ADateTime:TkbmMWDateTime):boolean
- Added TkbmMWRTTI.GetkbmMWNullable(const AValue:TValue; var AIsNull:boolean; var AResultValue:TValue):boolean
- Updated kbmWMXML to handle mixed data. See blogpost.
- Added CollapseNil and AutoIndentCount properties affecting generation of XML from XML DOM.
- Added new TkbmMWXMLReformatter class which can reformat an invalid XML document according to
certain rules, and in addition it collects names and ids. Quite useful for visual XML editors.
- Added more overloaded methods variations to TkbmMWORM.
- Added new kbmMWHID.pas unit which provides support for Windows USB/HID features including
MagTek magnetic card readers. Define KBMMW_SUPPORT_HID in kbmMWConfig.inc to use.
- Added support for binding to image controls in FMX SmartBind.
- Changed string list log manager to use Queue rather than Synchronize. (kbmMWLog.pas)
- Added LogSubscriptions to TkbmMWEvents (SmartEvents). Will dump all current notification
subscriptions in the log.
- Improved TkbmMWRTTI.CompareValue to be able to compare interface instances.
- Updated kbmMWSQLite.pas SQL adapter to make SQLite create_function available.
- Added missing code for TkbmMWCustomBlockCipher128.DecryptECB(const Indata; var Outdata; Size: longword)
- Updated object marshalling to allow for marshalling properties on list types.
- Made numerous improvements in both performance, stability and functionality in SmartBind.
Including a new callable (from within a binding expression) function called 'data'.
It can be given without arguments, in which case it returns the data directly, or
it can be called with one argument which is a property or a property path (property.property....)
to the specific subproperty of the source value, one wants data from.
- Improved LINQ AsStrings variants to allow for optional strings instance which is populated and returned
instead of a newly generated one.
- Updated TkbmMWCustomResolver with GetIsNullByFieldName, GetIsNullByField and GetIsNullByIndex functions.
- Improved TkbmMWStringBuilder.ToString to allow optional offset and length indication.
- Improved SmartEvent stability.
- Fixed minor bugs, warnings and hints.
- Fixed kbmMWBackupFile when ADestPath is an empty string.
- Fixed TkbmMWJPEG.CompressBitmapToStream and TkbmMWJPEG.DecompressStreamToBitmap
to work correctly in a threaded environment.
- Fixed Scheduler interval issue when running in second intervals.
- Fixed TkbmMWAuthorizationManager.DeleteActor so it will autologout the actor to delete.
- Fixed TkbmMWRTTI.ConvertValue2Variant to return null value is a null kbmMWNullable type.
- Fixed several minor bugs and made improvements to ORM.
- Fixed loadbalancing service time stamping.
- Fixed bugs in TkbmMWSQLJSONAPI related to subset extraction.