We are happy to announce the release of kbmMW v. 4.81.00
We are happy to announce the release of kbmMW v. 4.81.00
Professional and Enterprise Edition.
kbmMW continues to set the bar for what an n-tier product must be
capable of in the real world!
Keywords for this release:
- State of the art XML/JSON marshalling improvements!
- Better jQuery integration!
- Bug fixes!
Look at end of post for detailed list of additions, changes and fixes.
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.
kbmMW CodeGear Edition is available for free for
Delphi XE6/Win32, XE7/Win32, XE8/Win32 and includes kbmMemTable CodeGear
Edition. It can be used for commercial work and require no royalty or distribution payment for compiled user executables.
Please visit https://portal.components4developers.com to download.
----
kbmMW is the premiere n-tier product for Delphi, C++Builder and FPC
on .Net, Win32, Win64, Linux, Java, PHP, Android, IOS, embedded devices,
websites, mainframes and more.
Please visit 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 a portable, highly scalable, high end application server and
enterprise architecture integration (EAI) development framework for
Win32, ..Net and Linux with clients residing on Win32, .Net, Linux,
Unix, Mainframes, Minis, Embedded and many other places.
It is currently used as the backbone in hundreds of central systems, in
hospitals, courts, private, industries, offshore industry, finance,
telecom, governements, schools, laboratories, rentals, culture
institutions, FDA approved medical devices, military and more.
4.81.00 May 9 2015
Important notes (changes that may break existing code)
======================================================
* Changed TkbmMWOnFileAccess event to allow rewriting Path.
TkbmMWOnFileAccess = procedure (Sender:TObject; var Path:string;
var AccessPermissions:TkbmMWFileAccessPermissions) of object;
* Made many more things case sensitive in the XML parser and handlers
to adhere correctly to XML standards.
Thus the attribute ID is different from the attribute id now!
New stuff
=========
- Added JQueryEscaping:boolean property (default false) to
TkbmMWJSONStreamer. It will double escape all backslashes (\) to
adhere to jQuery non standards. Notice that double escaping is NOT
JSON standards, but a defacto requirement when using jQuery as the
recieving end.
- Added optional AJQueryEscaping:boolean argument to
kbmMWJSONQuoteString global function.
- Added support for NaN and INF in kbmMWFloatToString,
kbmMWStringToFloat and kbmMWTryStringToFloat.
- Added new optional additional kbmMW_Element_Flags argument to
kbmMW_Element attribute. Eg.
TMyObject = class...
[kbmMW_Element('somename',[mwefData])]
MyField:integer;
{kbmMW_Element('someothername')]
MyOtherField:integer;
end;
This will marshal/unmarshal MyField as data of the TMyObject instead
of a sub element called somename.
Eg.20
30
See the new sample: DynamicXMLMarshalling.
- Added new optional additional TypeStoreName and TypeValue arguments
to kbmMW_Root attribute which are to be used in combination with the
new kbmMW_ConditionalType attribute.
TypeStoreName refers to a local string field in the object which
will hold/be set to the type of the object while
marshalling/unmarshalling.
TypeValue is the value that will be set in that field.
The new kbmMW_ConditionalType attribute takes a condition and a
string value indicating the name of the type of the object if the
condition is evaluated to true. A condition can be a simple equal
statement or be a complex condition with AND and OR and multiple
statements.
See the new sample: DynamicXMLMarshalling.
Changes/minor additions
=======================
- Changed TkbmMWOnFileAccess event to allow rewriting Path.
TkbmMWOnFileAccess = procedure (Sender:TObject; var Path:string;
var AccessPermissions:TkbmMWFileAccessPermissions) of object;
Notice that if you do have code using this event, you should cut out
the event code, save, then doubleclick the event handler again and
paste in your old code.
Also notice that the path is always relative to the defined RootPath
of the service.
The RootPath is defined in the TkbmMWFileServiceDefinition returned
when registering the file service.
- Changed TkbmMWCustomSAXXMLParser to inherit from TInterfacedObject
and removed custom referencecounting.
This also affects TkbmMWDOMXML which descends from
TkbmMWCustomSAXXMLParser.
- Made a number of properties available via the IkbmMWDOMXMLParser
interface:
Root, Top,,IgnoreDuplicateIDs, AutoIndent, PreserveWhiteSpace,
AutoLineFeed, StreamBOM, AutoDetectEncoding.
- Changed TkbmMWDOMXMLNode to allow access to ID and Ref properties as
attributes (id, ref).
Changing the attribute id or ref will thus also affect the
properties id and ref.
- Removed handling href attributes as ref attribute in
TkbmMWDOMXMLNode. href is now an ordinary attribute, without special
handling.
- Made many more things case sensitive in the XML parser and handlers
to adhere correctly to XML standards.
Thus the attribute ID is different from the attribute id now!
- Changed so XML GetAsInt, GetAsInt64, GetAsFloat, GetAsDuration,
GetAsBoolean and GetAsDataTime automatically filter out all
whitespace characters (including cr/lf) before attempting to
interpret value.
- Changed XML parsing so if PreserveWhiteSpace property is false, then
only leading and trailing whitespace is filtered.
Fixes
=====
- Fixed leak of TkbmMWHTTPURLRewrites object instance in
TkbmMWHTTPServiceDefinition.
- Fixed JSON marshalling of collection objects.
- Fixed IOS Macapi.Foundation compilation issue in kbmMWGlobal.pas.
- Fixed bug in AttribByNameIsNil property in kbmMWXML.pas.
https://portal.components4developers.com
Professional and Enterprise Edition.
kbmMW continues to set the bar for what an n-tier product must be
capable of in the real world!
Keywords for this release:
- State of the art XML/JSON marshalling improvements!
- Better jQuery integration!
- Bug fixes!
Look at end of post for detailed list of additions, changes and fixes.
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.
kbmMW CodeGear Edition is available for free for
Delphi XE6/Win32, XE7/Win32, XE8/Win32 and includes kbmMemTable CodeGear
Edition. It can be used for commercial work and require no royalty or distribution payment for compiled user executables.
Please visit https://portal.components4developers.com to download.
----
kbmMW is the premiere n-tier product for Delphi, C++Builder and FPC
on .Net, Win32, Win64, Linux, Java, PHP, Android, IOS, embedded devices,
websites, mainframes and more.
Please visit 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 a portable, highly scalable, high end application server and
enterprise architecture integration (EAI) development framework for
Win32, ..Net and Linux with clients residing on Win32, .Net, Linux,
Unix, Mainframes, Minis, Embedded and many other places.
It is currently used as the backbone in hundreds of central systems, in
hospitals, courts, private, industries, offshore industry, finance,
telecom, governements, schools, laboratories, rentals, culture
institutions, FDA approved medical devices, military and more.
4.81.00 May 9 2015
Important notes (changes that may break existing code)
======================================================
* Changed TkbmMWOnFileAccess event to allow rewriting Path.
TkbmMWOnFileAccess = procedure (Sender:TObject; var Path:string;
var AccessPermissions:TkbmMWFileAccessPermissions) of object;
* Made many more things case sensitive in the XML parser and handlers
to adhere correctly to XML standards.
Thus the attribute ID is different from the attribute id now!
New stuff
=========
- Added JQueryEscaping:boolean property (default false) to
TkbmMWJSONStreamer. It will double escape all backslashes (\) to
adhere to jQuery non standards. Notice that double escaping is NOT
JSON standards, but a defacto requirement when using jQuery as the
recieving end.
- Added optional AJQueryEscaping:boolean argument to
kbmMWJSONQuoteString global function.
- Added support for NaN and INF in kbmMWFloatToString,
kbmMWStringToFloat and kbmMWTryStringToFloat.
- Added new optional additional kbmMW_Element_Flags argument to
kbmMW_Element attribute. Eg.
TMyObject = class...
[kbmMW_Element('somename',[mwefData])]
MyField:integer;
{kbmMW_Element('someothername')]
MyOtherField:integer;
end;
This will marshal/unmarshal MyField as data of the TMyObject instead
of a sub element called somename.
Eg.
See the new sample: DynamicXMLMarshalling.
- Added new optional additional TypeStoreName and TypeValue arguments
to kbmMW_Root attribute which are to be used in combination with the
new kbmMW_ConditionalType attribute.
TypeStoreName refers to a local string field in the object which
will hold/be set to the type of the object while
marshalling/unmarshalling.
TypeValue is the value that will be set in that field.
The new kbmMW_ConditionalType attribute takes a condition and a
string value indicating the name of the type of the object if the
condition is evaluated to true. A condition can be a simple equal
statement or be a complex condition with AND and OR and multiple
statements.
See the new sample: DynamicXMLMarshalling.
Changes/minor additions
=======================
- Changed TkbmMWOnFileAccess event to allow rewriting Path.
TkbmMWOnFileAccess = procedure (Sender:TObject; var Path:string;
var AccessPermissions:TkbmMWFileAccessPermissions) of object;
Notice that if you do have code using this event, you should cut out
the event code, save, then doubleclick the event handler again and
paste in your old code.
Also notice that the path is always relative to the defined RootPath
of the service.
The RootPath is defined in the TkbmMWFileServiceDefinition returned
when registering the file service.
- Changed TkbmMWCustomSAXXMLParser to inherit from TInterfacedObject
and removed custom referencecounting.
This also affects TkbmMWDOMXML which descends from
TkbmMWCustomSAXXMLParser.
- Made a number of properties available via the IkbmMWDOMXMLParser
interface:
Root, Top,,IgnoreDuplicateIDs, AutoIndent, PreserveWhiteSpace,
AutoLineFeed, StreamBOM, AutoDetectEncoding.
- Changed TkbmMWDOMXMLNode to allow access to ID and Ref properties as
attributes (id, ref).
Changing the attribute id or ref will thus also affect the
properties id and ref.
- Removed handling href attributes as ref attribute in
TkbmMWDOMXMLNode. href is now an ordinary attribute, without special
handling.
- Made many more things case sensitive in the XML parser and handlers
to adhere correctly to XML standards.
Thus the attribute ID is different from the attribute id now!
- Changed so XML GetAsInt, GetAsInt64, GetAsFloat, GetAsDuration,
GetAsBoolean and GetAsDataTime automatically filter out all
whitespace characters (including cr/lf) before attempting to
interpret value.
- Changed XML parsing so if PreserveWhiteSpace property is false, then
only leading and trailing whitespace is filtered.
Fixes
=====
- Fixed leak of TkbmMWHTTPURLRewrites object instance in
TkbmMWHTTPServiceDefinition.
- Fixed JSON marshalling of collection objects.
- Fixed IOS Macapi.Foundation compilation issue in kbmMWGlobal.pas.
- Fixed bug in AttribByNameIsNil property in kbmMWXML.pas.
https://portal.components4developers.com
oh .. thanks!
ReplyDeleteKim,
ReplyDeleteIs your KBMemTable compatible with XE7 ?
Also, how is the performance and memory footprint to handle about 200,000 records in a single table.
Yes, kbmMW and kbmMemTable both support anything from D2009 to XE8. kbmMemTable comes in two flavours, the Standard Edition and the Professional Edition. Professional Edition is the fastest memorytable in the world, and has been tested with 10 million semi complex records.
ReplyDeleteStandard Edition is almost as fast, but takes bigger advantage of batched inserts/deletes, while Professional Edition is lightning fast even when doing a large number of single inserts/deletes.
Professional Edition is bundled with kbmMW Professional and Enterprise Edition.
Both Standard and Professional Edition will perform great with only 200.000 records.
best regards
Kim M/C4D