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.
kbmmw 5.02发布的更多相关文章
- kbmmw 5.04 发布
增加了一大波功能,消灭了一大堆问题,也肯定引进了一大票BUG.We are happy to announce the release of our latest version of kbmMW. ...
- kbmmw 5.01 发布
Important notes (changes that may break existing code) ============================================= ...
- KbmMW 4.5 发布
We are happy to announce the release of kbmMW v. 4.50.00 Professional, Enterprise and CodeGear Editi ...
- kbmmw 5.09 发布
New stuff ========= - Added kbmMWSmartBind.pas unit with optional kbmMWSmartBindVCL.pa ...
- kbmMW授权管理解析(The kbmMW Authorization manager explained)
从kbmMW v.4.40开始,引入了一个新的非常灵活的授权管理器. 它的目的是为开发人员提供为用户定义资源权限的功能,这是一个可选功能,将现有的授权事件驱动方案内置到kbmMW中,使授权开发任务更容 ...
- 初识kbmmw 中的ORM
在kbmmw 5.02.1 中,加入了ORM 的功能(这里可能和其他语言的定义不完全一样),我们就简单的认为 它就是一个类与数据库的转换吧.今天就先介绍一下如何通过kbmmw 的ORM 功能,实现类与 ...
- 使用Spark分析拉勾网招聘信息(二): 获取数据
要获取什么样的数据? 我们要获取的数据,是指那些公开的,可以轻易地获取地数据.如果你有完整的数据集,肯定是极好的,但一般都很难通过还算正当的方式轻易获取.单就本系列文章要研究的实时招聘信息来讲,能获取 ...
- SQL SERVER: 合并相关操作(Union,Except,Intersect) - 转载
SQL Server 中对于结果集有几个处理,值得讲解一下 1. 并集(union,Union all) 这个很简单,是把两个结果集水平合并起来.例如 SELECT * FROM A UNION SE ...
- jquery ajax jsonp跨域调用实例代码
今天研究了AJAX使用JSONP进行跨域调用的方法,发现使用GET方式和POST方式都可以进行跨域调用,这里简单分享下,方便需要的朋友 客户端代码 复制代码 代码如下: <%@ Page Lan ...
随机推荐
- H3C S5800 MPLS----VPLS 三层路由透传二层网络
一.MPLS 介绍 多协议标签交换(Multi-Protocol Label Switching,MPLS)是新一代的IP高速骨干网络交换标准,由因特网工程任务组(Internet Engineeri ...
- SSRF攻击-运用gopher协议构造POST包--emmmm(http://10.112.68.215:10004/index.php?action=login)
还是天枢的一道CTF题,启程! 分析题目,自己注册账户并登陆后,提示输入一个url,网站会自己运行查找网页信息. emmmmm,很挑衅,网站就当作服务器,我们在url框中输 ...
- ES6之扩展运算符
一 将数组转换为用逗号分隔的参数序列 let turtles = ['Leo','Raph','Mikey','Don']; console.log(...turtles); 二 在解构赋值时使用 l ...
- 微信小程序快速移植支付宝小程序
移植背景: 1. 支付宝小程序开发文档只了解了大致框架,跑了demo,具体Api.组件没太多了解: 2. 已有微信小程序,移植支付宝小程序做预研(主要针对授权登录.支付等功能). 3. 移植的微信小程 ...
- HttpClient--使用HttpClient进行Get Post请求访问
在java后台开发中,我们有时候需要调用其他网站的接口进行数据的获取操作,我们一般会采用 1.java net 包中的URL 类,进行网络的数据获取 2.使用apache提供的HttpClient进行 ...
- 20165315 预备作业3 Linux安装及学习
20165315 预备作业3 Linux安装及学习 一.在自己笔记本上安装Linux操作系统 因为对操作电脑的不熟悉,我在第一项任务上就花费了一定的时间,在安装过程有如下问题: 我的电脑是苹果公司的M ...
- Java_7.2库存管理
package demo1; import java.util.ArrayList; import java.util.Scanner; public class Demo1 { public sta ...
- php libev扩展使用
在WorkerMan源码分析 - 实现最简单的原型文章中提到了libevent网络库,前者和libev都是事件驱动编程库高性能.简单说libev对libevent做了改进和精简.libevent使用全 ...
- MVc Identity登陆锁定
2016-08-03 [ASP.NET Identity] OAuth Server 鎖定(Lockout)登入失敗次數太多的帳號 743 6 ASP.NET Identity 檢舉文章 2016-0 ...
- Pycharm使⽤用秘笈v0.3PyCharm使⽤用秘籍
Pycharm使⽤用秘笈v0.3PyCharm使⽤用秘籍 1. PyCharm的基本使⽤用 在PyCharm下为你的Python项⽬目配置Python解释器器 1. Project:当前项⽬目名> ...