KbmMW 4.50.00 测试版发布

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

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.

目录
相关文章
|
Android开发 数据格式 JSON
KbmMW 4.40.00 测试发布
经过漫长的等待,支持移动开发的kbmmw 4.40.00 终于发布了,这次不但支持各个平台的开发, 而且增加了认证管理器等很多新特性,非常值得升级。具体见下表。 4.40.00 BETA 1 Oct 28 2013        New stuff        =========   ...
861 0
|
15天前
|
测试技术 C语言
网站压力测试工具Siege图文详解
网站压力测试工具Siege图文详解
23 0
|
1月前
|
JavaScript jenkins 测试技术
这10款性能测试工具,收藏起来,测试人的工具箱!
这10款性能测试工具,收藏起来,测试人的工具箱!
|
1月前
|
人工智能 监控 测试技术
利用AI辅助工具提升软件测试效率
【2月更文挑战第17天】 随着科技的不断发展,人工智能(AI)在各个领域的应用越来越广泛。在软件测试领域,AI技术也发挥着重要作用。本文将探讨如何利用AI辅助工具提升软件测试效率,包括自动化测试、智能缺陷识别和预测等方面。通过引入AI技术,软件测试过程将变得更加高效、准确和可靠。
182 1
|
1月前
|
Web App开发 前端开发 测试技术
探索自动化测试工具:Selenium的威力与应用
探索自动化测试工具:Selenium的威力与应用
探索自动化测试工具:Selenium的威力与应用
|
1月前
|
测试技术
现代软件测试中的自动化工具与挑战
传统软件测试面临着越来越复杂的系统架构和不断增长的测试需求,自动化测试工具应运而生。本文将探讨现代软件测试中自动化工具的应用和挑战,深入分析其优势与局限性,为软件测试领域的发展提供思路和启示。
|
30天前
|
jenkins 测试技术 持续交付
现代软件测试中的自动化工具与挑战
随着软件开发领域的不断发展,自动化测试工具在测试过程中扮演着越来越重要的角色。本文将探讨现代软件测试中自动化工具的应用及面临的挑战,旨在帮助开发人员和测试人员更好地理解和应对自动化测试中的问题。
|
15天前
|
测试技术 Linux Apache
网站压力测试工具webbench图文详解
网站压力测试工具webbench图文详解
12 0
|
17天前
|
安全 测试技术
深入理解白盒测试:方法、工具与实践
【4月更文挑战第7天】 在软件开发的质量控制过程中,白盒测试是确保代码逻辑正确性的关键步骤。不同于黑盒测试关注于功能和系统的外部行为,白盒测试深入到程序内部,检验程序结构和内部逻辑的正确性。本文将探讨白盒测试的核心技术,包括控制流测试、数据流测试以及静态分析等方法,同时介绍当前流行的白盒测试工具,并讨论如何在实际项目中有效实施白盒测试。文章的目标是为软件测试工程师提供一份综合性指南,帮助他们更好地理解和应用白盒测试技术。
|
23天前
|
Java 测试技术 API
软件测试中的自动化工具与策略
软件测试是确保软件质量的重要环节,而自动化测试工具和策略的应用在提高测试效率和准确性方面发挥着重要作用。本文将介绍几种常见的自动化测试工具,并探讨在软件测试中应用自动化测试的最佳实践和策略。