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

Comments

  1. Kim, 
    Is your KBMemTable compatible with XE7 ?
    Also, how is the performance and memory footprint  to handle about 200,000 records in a single table.

    ReplyDelete
  2. 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.
    Standard 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

    ReplyDelete

Post a Comment