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        =========   ...
968 0
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
9月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1330 23
|
11月前
|
SQL 安全 测试技术
2025接口测试全攻略:高并发、安全防护与六大工具实战指南
本文探讨高并发稳定性验证、安全防护实战及六大工具(Postman、RunnerGo、Apipost、JMeter、SoapUI、Fiddler)选型指南,助力构建未来接口测试体系。接口测试旨在验证数据传输、参数合法性、错误处理能力及性能安全性,其重要性体现在早期发现问题、保障系统稳定和支撑持续集成。常用方法包括功能、性能、安全性及兼容性测试,典型场景涵盖前后端分离开发、第三方服务集成与数据一致性检查。选择合适的工具需综合考虑需求与团队协作等因素。
1738 24
|
JSON 前端开发 测试技术
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
1011 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
|
JSON 前端开发 API
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
843 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
|
11月前
|
SQL 测试技术
除了postman还有什么接口测试工具
最好还是使用国内的接口测试软件,其实国内替换postman的软件有很多,这里我推荐使用yunedit-post这款接口测试工具来代替postman,因为它除了接口测试功能外,在动态参数的支持、后置处理执行sql语句等支持方面做得比较好。而且还有接口分享功能,可以生成接口文档给团队在线浏览。
538 2
|
存储 JSON API
Python测试淘宝店铺所有商品接口的详细指南
本文详细介绍如何使用Python测试淘宝店铺商品接口,涵盖环境搭建、API接入、签名生成、请求发送、数据解析与存储、异常处理等步骤。通过具体代码示例,帮助开发者轻松获取和分析淘宝店铺商品数据,适用于电商运营、市场分析等场景。遵守法规、注意调用频率限制及数据安全,确保应用的稳定性和合法性。
|
监控 API 开发工具
Socket.IO介绍,以及怎么连接测试Socket.IO接口?
Socket.IO 是一个用于浏览器和服务器间实时双向通信的库,支持低延迟消息传递、跨平台运行及自动重连。文章介绍了其特点与调试需求,并详细说明如何使用 Apifox 工具创建、连接、发送/接收 Socket.IO 事件,以及团队协作和调试技巧。掌握这些技能可提升实时应用开发效率与质量。
|
存储 测试技术 数据库
接口测试工具攻略:轻松掌握测试技巧
在互联网快速发展的今天,软件系统的复杂性不断增加,接口测试工具成为确保系统稳定性的关键。它如同“翻译官”,模拟请求、解析响应、验证结果、测试性能并支持自动化测试,确保不同系统间信息传递的准确性和完整性。通过Apifox等工具,设计和执行测试用例更加便捷高效。接口测试是保障系统稳定运行的第一道防线。