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        =========   ...
882 0
|
17天前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
29 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
2月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
191 7
Jmeter实现WebSocket协议的接口测试方法
|
2月前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
197 3
快速上手|HTTP 接口功能自动化测试
|
26天前
|
JavaScript 前端开发 API
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
35 0
|
2月前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
39 5
|
3月前
|
网络协议 测试技术 网络安全
Python进行Socket接口测试的实现
在现代软件开发中,网络通信是不可或缺的一部分。无论是传输数据、获取信息还是实现实时通讯,都离不开可靠的网络连接和有效的数据交换机制。而在网络编程的基础中,Socket(套接字)技术扮演了重要角色。 Socket 允许计算机上的程序通过网络进行通信,它是网络通信的基础。Python 提供了强大且易于使用的 socket 模块,使开发者能够轻松地创建客户端和服务器应用,实现数据传输和交互。 本文将深入探讨如何利用 Python 编程语言来进行 Socket 接口测试。我们将从基础概念开始介绍,逐步引导大家掌握创建、测试和优化 socket 接口的关键技能。希望本文可以给大家的工作带来一些帮助~
|
4月前
|
存储
Postman 接口测试配置 Pre-request Script
Postman 接口测试配置 Pre-request Script
187 5
Postman 接口测试配置 Pre-request Script
|
3月前
|
网络协议 测试技术 网络安全
Python进行Socket接口测试的实现
在现代软件开发中,网络通信是不可或缺的一部分。无论是传输数据、获取信息还是实现实时通讯,都离不开可靠的网络连接和有效的数据交换机制。而在网络编程的基础中,Socket(套接字)技术扮演了重要角色。 Socket 允许计算机上的程序通过网络进行通信,它是网络通信的基础。Python 提供了强大且易于使用的 socket 模块,使开发者能够轻松地创建客户端和服务器应用,实现数据传输和交互。 本文将深入探讨如何利用 Python 编程语言来进行 Socket 接口测试。我们将从基础概念开始介绍,逐步引导大家掌握创建、测试和优化 socket 接口的关键技能。希望本文可以给大家的工作带来一些帮助~
|
3月前
|
SQL Java 测试技术
SpringBoot单元测试快速写法问题之PorkService 接口中的 getPork 方法的作用如何解决
SpringBoot单元测试快速写法问题之PorkService 接口中的 getPork 方法的作用如何解决