KbmMW 4.5 发布

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

kbmMW continues to set the bar for what an n-tier product must be
capable of in the real world!

Keywords for this release:

- XML Schema support for object generation and marshalling
  (with full XML and JSON support)
- RAD Studio XE6 and XE7 support
- FastCGI hosting support
- New algorithm for highest performance thread locking
- New XML parsing optimizations.. 20 fold faster and
  with options to use it with one of the most compact
  memory footprints of all XML implementations for Delphi!
- New timezone aware TkbmMWDateTime type
- New kbmMwNullable generic type
- Super enhanced Remote Desktop v2 application with chat,
  strong encryption, paint on remote desktop, easy branding,
  enhanced authorization/authentication and much more
- Lots of additional optimizations, enhancements and fixes!


 4.50.00 Sep 10 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) properties ChildrenByName, ChildrenByID,
               AttribByNameIsNil
            (TkbmMWDOMXMLNode) functions GetNativeDataType,
               GetDataTypeName
        - 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 support for XE7.
        - Added new HTTP FastCGI able custom service and demo
          application.
        - Added mwdtDBTimings,mwdtDBTransaction options to
          kbmMWDebugTypes.
            If mwdtDBTimings is enabled, ms accurate timings are output
            for DB operations.
            If mwdtDBTransaction is enabled, DB transaction start,
            commit and rollback are logged.
        - Added fast TkbmMWStringLookup. It is a fast hash based simple
            string list for unique strings,
            with indexed access to each string.
        - Added fast TkbmMWStringLookupList. Its a fast string
            key/value has based list for unique key names and values,
            with indexed access to each key string and value access via
            key string.
        - Added TkbmMWCustomMessagingServerTransport.
            CreateRequestMessage.
        - Added TkbmMWCustomMessagingServerTransport.
            CreateServiceCallMessage.
        - Added TkbmMWVirtualMessagingServerTransport component, which
            can be used for adding one or more local/internal only WIB
            segments within an application.
        - Added more overloaded SendMessage and SendPrioritizedMessage
          methods to TkbmMWCustomMessagingClientTransport.
        - Added support for handing nil where TkbmMWClientIdentity is
            expected in CreateMessage, SendMessage and
            SendPrioritizedMessage.
        - Added kbmMWObjectMarshalInitialize and
            kbmMWObjectMarshalFinalize which should be
            called at application start and end time in C++Builder
            applications to
            ensure timely correct initialization of object marshalling.
            In Delphi its not required to call them.
        - Updated Remote Desktop with encryption (SHA256), new chat
            features, drawing features and improved login features.

	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,
            function kbmMWISO8601StringToDateTime,
            function kbmMWDateToISO8601String,
            function kbmMWISO8601StringToDate,
            function kbmMWTimeToISO8601String,
            function kbmMWISO8601StringToTime,
            they have been replaced with TkbmMWDateTime.
        - Removed from kbmMWXML.pas:
            function kbmMWXMLTryStringToDateTime,
            function kbmMWXMLDateTimeToString,
            function kbmMWXMLStringToDateTime,
            function kbmMWXMLDateToString,
            function kbmMWXMLStringToDate,
            function kbmMWXMLTimeToString,
            function kbmMWXMLStringToTime,
            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)
        - Added optional KBMMW_COMPACT_XML definition which if defined,
            lowers memory use by XML parser significantly at a
            parsing performance penalty of 40%.
        - Updated AnyDAC adapter.
        - Updated FireDAC adapter.
        - Added distance delegate for generic TkbmMWSortedList
          constructor.
        - Added TkbmMWDigest512 to kbmMWGlobal.pas.
        - Updated JNI.pas and JNIUtils.pas to latest version and fixed
          bugs.
        - Optimized WIB message processing performance for server
          request/calls.

        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.
        - Fixed A/V for IOS apps, as atomic 64 bit operations do not
            work correctly on IOS.
        - Fixed authorization manager login bugs.
        - Fixed TkbmMWMemoryStream.CopyFrom when source is a
            TkbmMWMemoryStream.
        - Fixed Java service (Windows only support).
        - Fixed TkbmMWHTTPCustomValues where value name was wrongly
            uppercased.
        - Fixed TkbmMWFileClient file transfer issues and added new
            State property to know
            what operation is currently running.
目录
相关文章
|
开发工具 IDE 数据库管理
kbmmw 5.04 发布
增加了一大波功能,消灭了一大堆问题,也肯定引进了一大票BUG.We are happy to announce the release of our latest version of kbmMW. Downloads are readily available for holders of active SAU's from the portal at: https://portal.
1373 0
|
SQL 关系型数据库 网络架构
kbmmw 5.03 发布
版本一小数,功能一大步 We are happy to announce v5.03 of our popular middleware for Delphi and C++Builder. If you like kbmMW, please let others know! Share th...
1143 0
|
消息中间件 SQL 网络架构
kbmmw 5.02发布
5.02.00 May 27 2017 Important notes (changes that may break existing code) ====================================================== * Changed Use class in kbmMWSmartUtils.
1436 0
|
XML 数据格式
kbmmw 5.01 发布
Important notes (changes that may break existing code) ====================================================== * Officially now only supporting XE2 and forward.
1064 0
|
Web App开发
初识kbmmw 5 中httpsys的支持
前两天kbmmw 发布了5.0 版。里面一个非常令人兴奋的特性就是原生内部支持http.sys. 有关http.sys 的介绍及优势,我就在这里不多说了,大家可以参照一下我以前的文章。 关于http.sys 的最大优势就是web 服务,我今天就以此为例,在kbmmw中建一个使用httpsys的 web server。
1203 0
|
SQL
KBMMW 4.93.10 发布
例行更新,主要是bugfix. 4.93.10 June 4 2016 Important notes (changes that may break existing code) ====================================================== * Fixed compilation for D2009.
839 0
|
XML 流计算 数据格式
KBMMW 4.93.00 发布
可喜可敬,作者非常勤奋,跟上了delphi 10.1 的步伐。 4.93.00 April 26 2016 Important notes (changes that may break existing code) ===============================...
785 0
|
Linux C++ Java
KBMMW 4.92.00 发布
We are happy to announce the release of kbmMW Professional and Enterprise Edition. Yet again kbmMW continues to set the bar for what an n-tier p...
739 0
|
XML JSON 网络性能优化
KBMMW 4.90.00 发布
kbmMW is a portable, highly scalable, high end application server andenterprise architecture integration (EAI) development framework forWin32, .
787 0
|
Linux Android开发 Unix
KBMMW 4.84.00 发布
kbmMW is a portable, highly scalable, high end application server and enterprise architecture integration (EAI) development framework for Win32, .
680 0