kbmmw 5.02发布

5.02.00 May 27 2017

Important notes (changes that may break existing code)
======================================================
* Changed Use class in kbmMWSmartUtils.pas. Now it will use
TkbmMWAutoValue internally
to store data. Since data stored in TkbmMWAutoValue is reference counted
and scoped,
access to the data is slightly different.
Use AsObject to return a reference to the object. Ownership of the
object belongs to the TkbmMWAutoValue container.
Use AsMyObject to return a reference to the object and mark it as your
object. You will be responsible for freeing it.

New stuff
=========
- Added IkbmMWAutoValue and TkbmMWAutoValue to kbmMWGlobal.pas. They
handle scope based object life time handling.
- Changed smart object‘s (TkbmMWMarshalledVariantData) to use
TkbmMWAutoValue.
- Updated DumpVariant in kbmMWGlobal.pas to dump smart object‘s too.
- Added support for TkbmMWTiming on IOS.
- Added support for REST tags anonymousRoot=true/false and
pretty=true/false which
can be used to control if resulting objects should be anonymous or
contained in a
parent object, and if the result should be prettyformatted or not (default).
Prettyformatting is not implemented on JSON at the time.
- Updated AMQP protocol to default not write shortstrings, unsigned
8bit, unsigned16 bit
unsigned32 bit and unsigned 64 bit. Reason is that although AMQP v. 0.9.1
should support them, industry dont, why most AMQP implementations will
not understand those types.
It is possible to uncommnet a number of defines in top of kbmMWAMQP.pas
to selectively
enable these types. If they are commented, kbmMW auto propogates the
value to the next
sensible type.
- Updated kbmMWAMQP.pas to support copying field tables instead of
assigning them.
- Added Safe property to TkbmMWMixerPasswordGen. If set to true, it will
not use
digits and characters that can be visually misread (0 vs O etc).
- Added OnMessageProcessingFailed event to
TkbmMWCustomSAFClientTransport and
TkbmMWCUstomSAFServerTransport and published in descending classes.
It will be called when message processing failed, for example if kbmMW is
unable to decrypt a message.
- Added support for dynamic arrays in object marshalling.
- Added support for Notify in TkbmMWDateTime and kbmMWNullable. If set
(in an ORM scenario)
the client will be notified about the value in that particular field.
- Modified and fixed timezone initialization in kbmMWDateTime.pas.
- Added OutputToDefaultAndFile and OutputToDefaultAndStringsAndFile to
TkbmMWLog for
easy setup of outputs.
- Enhanced TkbmMWCustomCrypt to support PassPhraseBytes (which if set,
takes precedence over
PassPhrase (string).
- Added OnEncryptKeys, OnDecryptKeys, OnDecryptStatus events to
TkbmMWCustomCrypt to allow for
attempting various keys before finally either succeeding or giving up.
This can be valuable in supporting client unique encryption/decryption.
- Added a number of GetDefAs.... methods to TkbmMWONArray and
TkbmMWONObject which
returns a default value if the property/index is missing instead of
raising an exception.
- Added GlobalIndexNames property to TkbmMWCustomSQLMetaData. If set
kbmMW‘s SQL rewriter
knows that index names must be database scope unique, instead of only
table scope unique.
- Added Init function that accepts a string as salt to TkbmMWCustomHash.
- Added GetDigest to TkbmMWCustomHash, which returns a byte array with
the digested hash.
Its an alternative to using Final.
- Added OnDisconnected and OnException events to TkbmMWAMQPClientConnection.
- Added OnConnect, OnDisconnect, OnDisconnected and OnException events
to TkbmMWAMQPClient.
- Added mwsloDateTimeIsUTC to TkbmMWSQLiteOption. Determines how to
interpret date time values, as local time or as UTC time.
- Added support for boolean parameter values in TkbmMWSQLite.
- Improved marshalling of kbmMWNullable types.
- Added kbmMWSubjectGetType, kbmMWSubjectExtractNodeID and
kbmMWGenerateMessageSubscriptionSubject to kbmMWSubjectUtils.pas
- Added mwrieNotify to TkbmMWRecordInfoEvent in kbmMWCustomDataset.pas
- Added support for TIMESTAMP datatype in SQL datatype deduction.
- Added support for returning an interfaced object from smart services.
- Added field change detection to TkbmMWFieldDefs.
- Improved TkbmMWRTTI.InstantiateValue in kbmMWRTTI.pas.
- Improved kbmMWNullable.
- Changed Use class in kbmMWSmartUtils.pas. Now it will use
TkbmMWAutoValue internally
to store data. Since data stored in TkbmMWAutoValue is reference counted
and scoped,
access to the data is slightly different.
Use AsObject to return a reference to the object. Ownership of the
object belongs to the TkbmMWAutoValue container.
Use AsMyObject to return a reference to the object and mark it as your
object. You will be responsible for freeing it.
- Added methods ToDataset, FromDataset, ListFromDataset to
TkbmMWSmartClientORM.
Provides an easy way to convert arguments and results to and from datasets.
- Added Cron fluent method to IkbmMWScheduledEvent. It accepts a 5 or 6
part Unix cron value
which defines the interval.
- Added AtYears, AtMonths, AtDays, AtHours, AtMinutes, AtSeconds methods
to IkbmMWScheduledEvent
to give an alternative way to provide cron like schedules.
- Added SynchronizedAfterRun and AfterRun methods to IkbmMWScheduledEvent to
provide an anonymous function to be called after the schedule has run.
It is particular valuable on scheduling asynchronous operations via RunNow,
followed up with updating something with the result of the function.
- Added TkbmMWONSchedulerStorage for storing/retrieving schedules in any
object notation format.
- Added support for subscribing for raw messages using anonymous
function in WIB.
- Added Delete to TkbmMWORM taking primary key values alternative
specific field values.
- Added support for many more date formats for ORM data generators.
In addition to LOCAL, UTC and ISO8601, also RFC1123, NCSA,
LOCALSINCEEPOCHMS,
UTCSINCEEPOCHMS, LOCALSINCEEPOCH and UTCSINCEEPOCH is supported.
- Generally many additional improvements on ORM.

Fixes
=====
- Fixed default true/false values for TkbmMWSQLiteMetaData.
- Fixed HTTP/REST/AJAX additional incorrect CRLF in output.
- Fixed serious bug in 32 bit random generators (kbmMWRandom.pas).
- Fixed NextGen issues in some parsing routines in kbmMWDateTime.pas.
- Fixed bugs in Query service wizard.
- Fixed some SQL rewriting bugs including adding support for DESCENDING
order by.
时间: 2024-10-09 23:32:44

kbmmw 5.02发布的相关文章

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 the word! We strive hard to ensure kbmMW continues to set the bar for what an n-tier product must be capa

kbmmw 5.09 发布

New stuff        =========        - Added kbmMWSmartBind.pas unit with optional kbmMWSmartBindVCL.pas and kbmMWSmartBindFMX.pas          Provides new easy to use multiway databinding between data, controls and objects.        - Added support for XML-

seci-log 1.02 发布,日志分析软件增加了多种告警

我们在日志分析软件七种告警(非上班时间访问,非上班地点访问,密码猜测,账号猜测,账号猜测成功.敏感文件操作告警和高危命令操作)的基础上有增加了主机扫描,端口扫描,非法外联告警的内容. 主机扫描 主机扫描是指在一台机器上对内网或者外网一个网段进行扫描,目的是要发现网络中存活的主机,为下一步的操作打下基础.这条告警和下面的端口扫描和非法外联都属于网络层面的告警,前提也是需要配置日志策略.在linux系统中大部分都内置了iptabe防火墙,可以利用iptable防火墙的日志功能进行采集日志,然后进行分

初始kbmmw 中的ORM

在kbmmw 5.02.1 中,加入了ORM 的功能(这里可能和其他语言的定义不完全一样),我们就简单的认为 它就是一个类与数据库的转换吧.今天就先介绍一下如何通过kbmmw 的ORM 功能,实现类与数据库的相互 转换和操作. 前提条件:delphi 10.2.1 kbmmw 5.02.1 unidac 7.0.2 haosql for sql server 2008  非常不错的一个sql 管理器 启动haosql  for sqlserver2008 管理器,启动数据库. 打开delphi

kbmMW授权管理解析(The kbmMW Authorization manager explained)

从kbmMW v.4.40开始,引入了一个新的非常灵活的授权管理器. 它的目的是为开发人员提供为用户定义资源权限的功能,这是一个可选功能,将现有的授权事件驱动方案内置到kbmMW中,使授权开发任务更容易实现. 据说一张图片值1000字......让我们看看是不是这样: 上述图显示了一个典型的用户如何与应用服务器(绿色的东西)内的功能相互作用. 此外,它还显示了新的身份验证管理器如何添加到应用程序服务器,以及它如何在内部运行. 基于这张图,我还是要用1000多的文字来解释这是怎么回事. 首先:什么

SQL SERVER: 合并相关操作(Union,Except,Intersect) - 转载

SQL Server 中对于结果集有几个处理,值得讲解一下 1. 并集(union,Union all) 这个很简单,是把两个结果集水平合并起来.例如 SELECT * FROM A UNION SELECT * FROM B [注意]union会删除重复值,也就是说A或B中重复的数据行,最终只会出现一次,而union all则会保留重复行. 2. 差异(Except) 就是两个集中不重复的部分.例如 SELECT * FROM A EXCEPT SELECT * FROM B 这个的意思是,凡

Java jre7及以上版本中的switch支持String的实现细节

Java7中的switch支持String的实现细节 作者: zsxwing 更新: 2013-03-04 21:08:02 发布: 2012-04-26 13:58:19 在Java7之前,switch只能支持 byte.short.char.int或者其对应的封装类以及Enum类型.在Java7中,呼吁很久的String支持也终于被加上了. 例如,下面是一段switch中使用String的示例代码. 1 public class Test { 2 3 public void test(Str

jquery ajax jsonp跨域调用实例代码

今天研究了AJAX使用JSONP进行跨域调用的方法,发现使用GET方式和POST方式都可以进行跨域调用,这里简单分享下,方便需要的朋友 客户端代码 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApp.WebForm1" %><!DOCTYPE html P

架构的坑系列:重构过程中的过度设计

架构的坑系列:重构过程中的过度设计 软件架构   2016-06-03 08:47:02 发布 您的评价:       5.0   收藏     2收藏 这个系列是 坑 系列,会说一些在系统设计,系统架构上的 坑 ,这些都是我想到哪说到哪,有像这篇一样比较宏观的 坑 ,后面的文章也会有到具体技术细节的(比如某个函数,某个系统调用) 坑 ,总之,到处都是坑,这些坑有些是我经历过的,有些是听说的,你也可以留言说说你遇到的 坑 . 这一篇,我们从 重构 这个场景来看看系统架构的设计中 过度设计 这个坑