作者最近加紧了更新进度,赞一个。 时间都去哪儿了? 还没好好看4.81, 新版就来了。 这个版本主要是增强日志管理,已经强大到替换delphi 本身的异常处理了。 We are happy to announce the release of kbmMW v. 4.82.00
Professional and Enterprise Edition. kbmMW continues to set the bar for what an n-tier product must be
capable of in the real world! Keywords for this release: - Much improved XSD to Delphi objects generator
- New advanced logging and auditing framework for local and
remote logging (remote is in Enterprise Edition only)
- JSON marshalling improvements
- Many more operators and features on TkbmMWDateTime
- Bug fixes! Look at end of post for detailed list of additions, changes and fixes. 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. kbmMW CodeGear Edition is available for free for
Delphi XE6/Win32, XE7/Win32, XE8/Win32 and includes kbmMemTable CodeGear
Edition. It can be used for commercial work and require no royalty or
distribution payment for compiled user executables. Please visit https://portal.components4developers.com to download. ---- kbmMW is the premiere n-tier product for Delphi, C++Builder and FPC
on .Net, Win32, Win64, Linux, Java, PHP, Android, IOS, embedded devices,
websites, mainframes and more. Please visit www.components4developers.com for more information about kbmMW. ---- Components4Developers is a company established in 1999 with the purpose
of providing high quality development tools for developers and
enterprises. The primary focus is on SOA, EAI and systems integration
via our flagship product kbmMW. kbmMW is a portable, highly scalable, high end application server and
enterprise architecture integration (EAI) development framework for
Win32, ..Net and Linux with clients residing on Win32, .Net, Linux,
Unix, Mainframes, Minis, Embedded and many other places.
It is currently used as the backbone in hundreds of central systems, in
hospitals, courts, private, industries, offshore industry, finance,
telecom, governements, schools, laboratories, rentals, culture
institutions, FDA approved medical devices, military and more. Important notes (changes that may break existing code)
======================================================
* Removed kbmMWDateTimeToString, kbmMWStringToDateTime,
kbmMWDayOfWeek, kbmMWGetUTCOffset.
Use TkbmMWDateTime methods instead.
* Removed kbmMWGetCurrentTimeNS from kbmMWGlobal.pas.
Use TkbmMWTimeNS.NowUTC.
* Removed standard specific options settings on UniDAC database.
Notice you must set these manually on the database template when
relevant. Previous settings which were automatically set were:
InterBase.BooleanDomainFields=False
InterBase.DescribeParams=True New stuff
=========
- Added new major feature in the form of a new logging/auditing/timing
/exception handling system:
Added TkbmMWLog and TkbmMWCustomLogManager descendant classes with
loads of different logging, assertion, exception handling, timing
and auditing mechanisms.
(kbmMWLog.pas, kbmMWDebugMapFile.pas and kbmMWDebugStackTrace.pas).
It supports optionally dumping stacktrace on Win32/Win64 bit systems.
Notice to have the assert based logging enabled you must define in
kbmMWConfig.inc:
{$DEFINE KBMMW_INSTALL_ASSERT_HANDLER}
Alternatively manually call kbmMWLog_InstallAssertionHandler and
kbmMWLog_UnInstallAssertionHandler.
Notice to have the new exception log handling mechanism enabled you
must define in kbmMWConfig.inc:
{$DEFINE KBMMW_INSTALL_EXCEPTION_HANDLER}
Alternatively manually call kbmMWLog_InstallExceptionHandler and
kbmMWLog_UnInstallExceptionHandler.
Check new sample "SimpleLogging" for examples of use of logging
system.
- Added new remote logging features
(TkbmMWClientLogManager/TkbmMWServerLogManager) based on the new
logging system. (Ent only). See "RemoteLogging" for examples of use.
- Added multiple features to TkbmMWDateTime:
- >=,<=,>,< comparison operators on TkbmMWDateTime and TkbmMWDuration
- inc/dec operators on TkbmMWDateTime
- properties FixedLocalDate, FixedLocalTime, FixedLocalDateTime,
FixedUTCDate, FixedUTCTime and FixedUTCDateTime.
Converts to/from fixed YYYYMMDD, HHNNSSmmm and YYYYMMDDHHNNSSmmm
formatted strings and replaces
kbmMWDateTimeToString/kbmMWStringToDateTime in kbmMWGlobal.pas
- function DayOfWeek:Word; Returns 1 (sunday) to 7 (saturday).
- function SystemLocalTimeOffsetSecs:integer; Returns UTC offset in
seconds for system local time.
- DecodeUTCDate, DecodeUTCTime, DecodeUTCDateTime, EncodeUTCDate,
EncodeUTCTime, EncodeUTCDateTime,
DecodeLocalDate, DecodeLocalTime, DecodeLocalDateTime,
EncodeLocalDate, EncodeLocalTime, EncodeLocalDateTime.
- functions DiffSecs, DiffHours and DiffDays which returns the
difference between this and given TkbmMWDateTime.
- function FromDayOfYear which creates a new TkbmMWDateTime based on
a day of year and a year.
- static class functions FixedLocal and FixedUTC which accepts a
date/time or datetime fixed string and returns a TkbmMWDateTime.
- Added new TkbmMWTimeNS with class methods: NowUTC, ToDateTime and
ToNSTime to convert to handle nanosecs time stamp.
Notice though that the resolution is not to the nsec level. An even
more precise timing is in TkbmMWTiming.
- Added support for interval based and forced flushing to
TkbmMWBufferedStream and all users of it like
TkbmMWFileStoreaMessageQueue, TkbmMWBufferedFileStream.
- Added AnonymousRoot property to TkbmMWJSONMarshal (default false). If
set to true, it will not put the marshalled object within another
object to ensure that the object is named.
Eg. AnonymousRoot=false -> { patient: {property1:10 }}
Eg. AnonymousRoot=true -> { property1:10 }
- Added OnEvent property to WIB transports. Can be used for hooking in
when an event message (like progress or log) is received. Changes/minor additions
=======================
- Removed kbmMWDateTimeToString, kbmMWStringToDateTime, kbmMWDayOfWeek,
kbmMWGetUTCOffset.
Use TkbmMWDateTime methods instead.
- Removed kbmMWGetCurrentTimeNS from kbmMWGlobal.pas.
Use TkbmMWTimeNS.NowUTC.
- Added support for SpecificSettings on TkbmMWUniDACQuery,
TkbmMWUniDACStoredProc and TkbmmWUniDACResolver.
- Removed standard specific options settings on UniDAC database. Notice
you must set these manually on the database template when relevant.
Previous settings which were automatically set were:
InterBase.BooleanDomainFields=False
InterBase.DescribeParams=True
- Updated FireMonkey sample. Fixes
=====
- Fixed pesky thread shutdown issue.
- Fixed XE4 compilation issues.
- Fixed CompareAndExchange 64 bit version for pre XE2 compilers.
- Fixed XML parser bugs in Typed:=true and FilterAllWhiteSpace:=true
scenarios.
- Fixed A/V due to lock not defined early enough in
TkbmMWThreadedCircularBuffer.
- Fixed JSON CR escaping bug.