We are happy to announce the release of kbmMW v. 4.50.00 Beta
Professional and Enterprise Edition with XE6 support.

4.50.00 Beta 1 May 12 2014

New stuff

        =========

        - Added XSD parser support and code generator. A demo is

          included, showing how the XSD parser is used

          in combination with the code generator, to generate Pascal

          objects that kbmMW can use for marshalling

          to and from objects.

        - Added CaptureMode to kbmMW RemoteDesktop client/server

          classes to allow for selecting between GDI and DirectX.

          Default is GDI.

        - Added new ViewMode types including mwrdvm_Device to kbmMW

          RemoteDesktop client/server classes to allow for using

          the best fitting view mode, compared to the current screen

          bitdepth on the server end.

          By using the best fitting view mode, the RemoteDesktop server

          part use less CPU.

        - Added support in kbmMW RemoteDesktop to detect if screen

          capture is to slow to be useful (typically

          on old graphic cards like Matrox G400 with Hardware

          accelleration enabled).

        - Added new kbmMWNullable generic. If you need to define a

          simple datatype that should be nullable, you can

          define it as var myInt:kbmMWNullable<integer>; for example.

          It can be used as any regular variable.

          Use myInt.IsNull to check if its null. If you have compile

          error due to conversion problems you can

          use myInt.Value to access the value directly.

        - Added new TkbmMWDateTime type to replace TDateTime. It works

          similar to TDateTime except it is timezone and null aware,

          and knows if its being used to store a time, a date or a date

          time value, and thus can

          provide correct matching string conversion automatically.

          It supports more than 760 different timezone abbrevations,

          and has full support for ISO8601 formats.

          Internally it always store time as UTC with a timezone

          difference, depending on the chosen timezone.

          On assigning a TDateTime value to it, it always assumes not

          timezone given (and thus its UTC).

          When assigning Now to it, you will want to use the LocalTime

          property to assign now.

          Eg. mytime:TkbmMWDateTime; mytime.LocalTime:=Now. By doing

          so, it will autodetect the appropriate

          local timezone.

        - Added new very fast TkbmMWLockFreeHashArray to kbmMWGlobal.

          Its as the names imply a lock free

          hash array which stores an integer value with a uint64 key.

        - Enhanced TkbmMWLock to automatically detect lock escalation,

          and allow finetuning of spin/sleep time.

          Tests show that TkbmMWLock is now the fastest implementation

          of a MREW with lock escalation handling for

          Delphi/C++Builder. In addition it allows for checking which

          threads holds which locks at any time,

          via the kbmMWConcurrentMREWReadLocks hash array.

        - Added to kbmMWGlobal.pas

            function kbmMWExpectChars(var APChar:PChar;

               const AChars:TSysCharSet):boolean;

            function kbmMWSearchChars(var APChar:PChar;

               const AChars:TSysCharSet):boolean;

            function kbmMWSearchDigit(var APChar:PChar):boolean;

            function kbmMWSearchNonDigit(var APChar:PChar):boolean;

            function kbmMWGetDateFromWeek(const AYear:integer;

               const AWeekNo:integer;

               const ADayInWeek:integer):TDateTime;

            function kbmMWGetDateFromDayOfYear(const AYear:integer;

               const ADayOfYear:integer):TDateTime;

            function kbmMWRoundToPowerOf2(

               const AValue:integer):integer;

            function kbmMWMurmurHash3(const AValue:cardinal):cardinal;

            function kbmMWMurmurHash3(const AValue:int64):int64;

            function kbmMWDigestToString(

               const ADigest:TkbmMWDigest256):string;

            procedure TkbmMWStringBuilder.Append(

               const AStringBuilder:TkbmMWStringBuilder);

        - Added function TkbmMWRegisteredTransportStreamList.

               ControllerClassByID(AID:string):

               TkbmMWCustomTransportStreamControllerClass;

        - Added support for multiple statements in SQLite adapter

          function TkbmMWSQLiteConnection.Query(

            const AClass:TkbmCustomMemTableClass;

            const ASQL:string):TkbmCustomMemTable;

          Only last will however be returned.

        - Added to kbmMWXML.pas:

            TkbmMWXMLNativeDataType to handle true native XML datatype

            understanding.

            (TkbmMWDOMXMLNode) property

              ChildrenByName[AName:string]:TkbmMWDOMXMLNodeList read

                GetChildrenByName;

            (TkbmMWDOMXMLNode) property

              ChildrenByID[AName:string]:TkbmMWDOMXMLNodeList read

                GetChildrenByID;

            (TkbmMWDOMXMLNode) function GetNativeDataType(

              AType:string = ''):TkbmMWXMLNativeDataType;

            (TkbmMWDOMXMLNode) function GetDataTypeName(

              var ANameSpace:string; AType:string=''):string;

            (TkbmMWDOMXMLNode) property AttribByNameIsNil[

              const AName:string]:boolean read GetAttribByNameIsNil

              write SetAttribByNameIsNil;

        - Added support for ftShortint as parameter and field type.

        - Added support for int64/uint64 versions of CompareAndExchange

          for pre XE.

        - Added support for XE6.

        - Added new HTTP FastCGI able custom service and demo

          application.

Changes/minor additions

        =======================

        - Updated object marshaller (incl. JSON and XML) to support new

          kbmMWNullable and TkbmMWDateTime types.

          Internally there have been made many changes to also support

          objects defined by XSD import.

        - Dropped own implementation of TkbmMWEvent, and instead

          aliases TkbmMWEvent to fastest Delphi/C++Builder

          implementation

          for given Embarcadero version.

        - Removed from kbmMWGlobal.pas

            function kbmMWDateTimeToISO8601String(

              const AValue:TDateTime):string;

            function kbmMWISO8601StringToDateTime(

              const AString:string):TDateTime;

            function kbmMWDateToISO8601String(

              const AValue:TDateTime):string;

            function kbmMWISO8601StringToDate(

              const AString:string):TDateTime;

            function kbmMWTimeToISO8601String(

              const AValue:TDateTime):string;

            function kbmMWISO8601StringToTime(

              const AString:string):TDateTime;

            they have been replaced with TkbmMWDateTime.

        - Removed from kbmMWXML.pas:

            function kbmMWXMLTryStringToDateTime(AValue:string;

              var ADateTime:TDateTime):boolean;

            function kbmMWXMLDateTimeToString(AValue:TDateTime):string;

            function kbmMWXMLStringToDateTime(AString:string):TDateTime;

            function kbmMWXMLDateToString(AValue:TDateTime):string;

            function kbmMWXMLStringToDate(AString:string):TDateTime;

            function kbmMWXMLTimeToString(AValue:TDateTime):string;

            function kbmMWXMLStringToTime(AString:string):TDateTime;

            Instead use TkbmMWDateTime functionality.

        - Modified in kbmMWGlobal.pas

            class function TkbmMWPlatformMarshal.UTF8Decode(

              const ABytes:TkbmMWBytes; ACount:TkbmNativeInt =

                -1):string;

               Added optional ACount.

        - Made general use of TkbmMWLock and TkbmMWDateTime internally.

        - Performance optimized XML parser.

            Large XML files now parses 20-fold faster.

            (example 165 MB XML now parsed in 7.6 secs. Before parsed

            in 3.5 minutes)

Fixes

        =====

        - Fixed bugs in kbmMWCipherHash.pas:

            procedure TkbmMWCustomHash.UpdateString(const Str:string);

            function TkbmMWCustomCipher.EncryptString(

              const Str:string):string;

            function TkbmMWCustomCipher.DecryptString(

              const Str:string):string;

            function TkbmMWCustomBlockCipher.EncryptString(

              const Str:string):string;

            function TkbmMWCustomBlockCipher.DecryptString(

              const Str:string):string;

        - Fixed bugs in kbmMWMime.pas:

            function kbmMWMimeEncodeString(const S:string):string;

            function kbmMWMimeEncodeStringNoCRLF(const S:string):string;

            function kbmMWMimeDecodeString(const S:string):string;

            function kbmMWMimeDecodeString2Bytes(const S:string):

              TkbmMWBytes;

            procedure kbmMWMimeEncode(const InputBuffer:TkbmMWBytes;

              var InputBufferOffset:cardinal; const InputByteCount:

              Cardinal; var OutputBuffer:TkbmMWBytes;

              var OutputBufferOffset:cardinal);

            function kbmMWMimeDecodedSize(const InputSize: Cardinal):

              Cardinal;

        - Fixed bug in SQLite adapter when query didnt result in fields.

        - Fixed function kbmMWEncodingToString(

            const AEncoding:TEncoding):string; to use correct lowercase

            encoding names.

        - Fixed bugs in kbmMWCustomClientMessagingTransport.pas

        - Fixed multi database operation on user transaction bug.

        - Fixed compilation for pre XE.

        - Fixed transport backwards compatibility support.

        - Fixed client app automatically linking in TkbmMWServer in

          kbmMW Ent Edition.

The 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.

An earlier version of kbmMW CodeGear Edition is available for free for

Delphi XE3/Win32 and includes kbmMemTable CodeGear Edition.

KbmMW 4.50.00 测试版发布的更多相关文章

  1. KbmMW 4.40.00 测试发布

    经过漫长的等待,支持移动开发的kbmmw 4.40.00 终于发布了,这次不但支持各个平台的开发, 而且增加了认证管理器等很多新特性,非常值得升级.具体见下表. 4.40.00 BETA 1 Oct ...

  2. kbmmw 5.06.00 beta 发布

    原生.高效.可扩展.跨平台通信库来了. we are happy to announce v5.06.00 BETA of our popular middleware for Delphi and  ...

  3. kbmMW 5.07.00试用笔记

    在kbmMW 5.06.20试用笔记中遇到的问题,在这个版本中,基本都解决了.但还是发现修正后存在的小问题及新问题: 1.Resolve返回值错误 当提交的ClientQuery是执行一条sql语句, ...

  4. PDF 补丁丁 0.4.3.1342 测试版发布:修复崩溃问题

    PDF 补丁丁 0.4.3.1342 测试版发布了. 此测试版修复了之前测试版在合并文件.书签编辑器.文档结构探查器中出现的崩溃问题. 推荐下载了0.4.3测试版的网友尽快更新.

  5. PDF 补丁丁 0.4.2.1023 测试版发布:新增旋转页面功能

    新的测试版发布啦.此版本增加了旋转页面的功能. 在“PDF文档选项”对话框的“页面设置”选项卡中,可设置需要旋转的页面(输入页码范围),以及旋转角度. 此外,还修复了统一页面尺寸功能的小问题.

  6. kbmmw 5.05.00 发布

    新年前最后几天,kbmmw 发布了新版本,增加一大波功能.we are happy to announce v5.05.50 of our popular middleware for Delphi ...

  7. KbmMW 4.30.00 发布

    今天早上,KbmMW发布了4.30.00 版,这个版本开始支持XE4 的WIN/WIN64/OSX. 暂时不支持ios开发,同时加强了通过JSON 的对象序列化.还有就是解决了我提交的几个有关 汉字处 ...

  8. KbmMW 4.40.00 正式版发布

    经过快3个月的测试,kbmmw 4.40 正式版终于在圣诞节前发布了. We are happy to announce the availability of a new kbmMW release ...

  9. KBMMW 4.92.00 发布

    We are happy to announce the release of kbmMW Professional and Enterprise Edition. Yet again kbmMW c ...

随机推荐

  1. apo 简单参考

    参考: https://www.cnblogs.com/Geyoung/p/6927905.html @Aspect @Component public class TimeAspect { //通过 ...

  2. springsource-tool-suite插件各个历史版本

    转自:https://blog.csdn.net/zhen_6137/article/details/79384798 目前spring官网(http://spring.io/tools/sts/al ...

  3. javascript 浮点数加减乘除计算会有问题, 整理了以下代码来规避这个问题

    /* * js数学计算 add by yan */ /** ** 加法函数,用来得到精确的加法结果 ** 说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显.这个函数返回较 ...

  4. foreach 使用&引用赋值要注意的问题

    <?php $arr = array('a', 'b', 'c'); $arr2 = array('d', 'e', 'f'); foreach($arr as &$value){ $v ...

  5. C#怎么判断字符是不是汉字

    .用ASCII码判断 在 ASCII码表中,英文的范围是0-,而汉字则是大于127,根据这个范围可以判断,具体代码如下: string text = "我去"; bool res ...

  6. xslt基础学习

    今天下午工作完成没事,登w3c的网站学习了一下xslt的基础知识,主要是因为工作中xml用的比较多,xslt也有用到,所以在这里学习一下. XSLT:一种用于转换 XML 文档的语言. XSLT 用于 ...

  7. mtr 命令详解

    一般在windows 来判断网络连通性用ping 和tracert,ping的话可以来判断丢包率,tracert可以用来跟踪路由,在Linux中有一个更好的网络连通性判断工具,它可以结合ping ns ...

  8. 富文本编辑器-UEditor

    官方网址:http://ueditor.baidu.com/website/index.html 下载地址:http://ueditor.baidu.com/website/download.html ...

  9. CryptographyUtil盐加密

    import org.apache.shiro.crypto.hash.Md5Hash; /** * 加密工具 * @author Administrator * */ public class Cr ...

  10. Java Magic. Part 3: Finally

    Java Magic. Part 3: Finally @(Base)[JDK, magic, 黑魔法] 转载请写明:原文地址 英文原文 系列文章: -Java Magic. Part 1: java ...