新年前最后几天,kbmmw 发布了新版本,增加一大波功能。
we are happy to announce v5.05.50 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 capable of in the real world!

This is a major release with new features in addition to fixing reported bugs and enhancing existing features:

  • NEW! kbmMW Linq functionality operating on objects, XML, JSON, YAML datasets and more.
  • Lots of ORM improvements including delete options for marking records as deleted, or moving them to an alternative table.
  • NEW! VirtualLogManager
  • NEW! REST client support using TkbmMWSimpleClient.
  • Lots of improvements.

Notice that kbmMemTable v. 7.78.00 is a prerequisite to this update.

Please look in the end of this post for a detailed change list.

New stuff

        =========
        - Added support for tracking dependency deregistration leaks.
           It is enabled if KBMMW_DEBUG_DEPENDENCY is defined in kbmMWDependency.pas
        - Added Declared property to TkbmMWXMLMarshal. If true will declare namespaces in the XML.
        - Added function IfNotRunning:IkbmMWScheduledEvent flow method to TkbmMWScheduler.
           It can be used with Run to ensure that there is not scheduled two of the same event
           at the same time. If Name is given, that is used for unique validation, else event
           method/anonymousfunction/anymousprocedure is used. If an existing Run is already scheduled
           the new attempt to schedule one, is ignored.
        - Added QueueLength to TkbmMWHTTPSysServerTransport. Default 1000. Defines max number of outstanding request.
        - Added defaultDeleteMethod to TkbmMWTableAttribute. It determine what to do in a table when an object
           is to be deleted. It can be set to:
           - default or delete which is the normal way. The record is deleted.
           - mark Marks a record as deleted, but do not actually remove it.
             Queries via the ORM will respect the marking and default only return non deleted records.
             Mark should be used in combination with the new deleteMarkProperty and deleteMarkValue settings.
                deleteMarkProperty defines which property name (field) to put the mark in (default 'delete')
                deleteMarkValue defines which value to put into the property (field) when the record is marked
                  as deleted. Default true.
           - move Moves a record to another table. Should be used in combination with deleteMoveToTable
             which must contain the object name of the table that is to receive the record.
        - Added display setting to TkbmMW_FieldAttribute. Eg. display: { name: 'abc', width:20, visible:false }
           It defines default presentation values for a field.
        - Added oldNames setting to TkbmMW_FieldAttribute. Eg. oldNames: [ "field1","field2" ]
           If a property is renamed, adding all the old names for which this property is known, in this list,
           will make the ORM able to automatically upgrade tables with renamed fields.
           Notice that no new field name may exist that collides with an old field name in this list!
        - Added  function RewriteStatement(const AStatement:string;
                                          const AQueryMode:TkbmMWORMQueryMode=mwoqmMW;
                                          const AOptions:TkbmMWORMQueryOptions=[]):string;
           to TkbmMWORM easily allowing rewriting of kbmMW SQL statements to the ORM connected database format.
        - Added additional overloaded Persist generic methods to TkbmMWORM.
        - Added optional TkbmMWORMQueryOptions to may TkbmMWORM methods, to allow retrieving records
           otherwised marked as deleted by providing [mwqoIgnoreDeleteModification].
        - Added RandomDouble and RandomFraction functions to TkbmMWCustomRandom in kbmMWRandom.pas.
           Makes it easy to return random values within a specific range.
        - Added several Make class methods to TkbmMWCustomRandom to allow easy creation of a random number
           without needing to manually instantiating an instance of the random number generator.
        - Added support in REST transport stream format to generate request streams, and thus
           make it possible to use a TkbmMWSimpleClient as a REST client.
        - Added support in REST transport stream format to responding in XML or JSON depending
           on set contentType in the response stream format.
        - Added Make class functions to all password generators in kbmMWPassword.pas making it easy
           to create a secure random password.
        - Added optional path argument to PreparexxxStorage methods in TkbmMWConfiguration.
           Makes it possible to specify exactly where the configuration should be retrieved from /stored to.
        - Added Reset method to TkbmMWConfiguration which resets the configuration to default.
        - Added optional default setting to TkbmMW_ConfigAttribute, which is used to set the default value
           of the configurated item.
        - Added support for marshalling dynamic arrays in kbmMWObjectMarshal.
        - Added support for mwefInline in TkbmMW_ElementAttribute. Will instruct marshaller to attempt
           to inline the element without the subelements root. Elements marshalled like this can not
           be automatically unmarshalled again.
        - Added TkbmMWPrettyBinary class to kbmMWGlobal.pas. Supports formatting binary data as a pretty hex dump.
        - Added   function kbmMWGetDocumentsDirectory:string and function kbmMWGetSharedDocumentsDirectory:string to
           kbmMWGlobal.pas for cross platform access to valid storage paths.
        - Updated transport stream format to 505 to support optional future use Duration response value.
        - Added properties ComparativeMSecs:double, ComparativeSecs:double, ComparativeMinutes:double
           and ComparativeHours:double properties to TkbmMWDuration. Returns values that can be compared.
        - Added Normalize method to TkbmMWDuration which will normalize a duration value. Eg. 36 hours will be
           1 day and 12 hours.
        - Added OnAfterLog event to TkbmMWCustomLogManager.
        - Added support for LogYAML, DebugYAML and LogStream methods to TkbmMWCustomLogManager and TkbmMWLog.
        - Added support for specifying pretty mode when logging binary mode in TkbmMWLog.
        - Added RemoveLogManager method and ForwardFilterSettings boolean property to TkbmMWTeeLogManager.
           The later decides if settings on the Tee log manager is also set on its registered log managers.
        - Added TkbmMWVirtualLogManager and IkbmMWVirtualLogManager which will call an anonymous function
            each time the logmanager is to log something. Can for example be used for storing elect logs
            in a database.
        - Added support for ALTER TABLE RENAME COLUMN type operations in kbmMWSQLRewriter.
        - Added support for table based metadata as supported in SQLite v 3.16.x+ in kbmMWSQLRewriter.
            kbmMW will automatically detect version and use appropriate.
            It is recommended to use latest SQLite version since it provides better access to
            index definitions and default values of fields.
        - Added support for declared and typed booleans settings in kbmMW_RestAttribute.
            If declared is true, XML will contain full ?xml and namespace declarations.
            If typed is true, XML will contain typed nodes.
        - Added EkbmMWHTTPException exception and kbmMWRaiseHTTPError function to allow
            raising specific HTTP errors. Eg. kbmMWRaiseHTTPError(407,'.....');
        - Added TkbmMWRTTIAliasAttribute which makes it possible to define attributes for
            types otherwise not actually declared in code, by defining a dummy class as
            alias to a known, but not declared type.
        - Added new kbmMWLinq.pas unit providing a global Linq variable which can be
            used to make LINQ like operations on data.
            Only supported in Enterprise Edition and only from XE5 and up.
 
        Fixes
        =====
        - Fixed TkbmMWXMLMarshal marshalling.
        - Fixed YAML parsing bugs.
        - Fixed TkbmMWAuthorizationManager to easily support dirived authorizations.
        - Fixed bugs in TkbmMWConfiguration.
        - Fixed bugs in TkbmMWONStats.
        - Fixed occational A/V caused by TkbmMWCustomValueReplacementVisualizer at designtime.
 
       Changes/minor additions
        =======================
        - Improved TkbmMWXMLMarshal mashalling.
        - Improved TkbmMWSQLXMLData.
        - Fixed and improved TkbmMWHTTPSysServerTransport.
        - Updated TkbmMW_VirtualTableAttribute and  to easily support visibility
           (private/protected/public/published) settings.
           It makes it easy to automatically consider for example all published properties
           to be stored and retrieved from the table.
        - Significantly updated TkbmMWBinaryParser. Please notice that definition format has changed.
           See samples.
        - Updated TkbmMWCustomSQLMetaData to use SQL rewriter when applicable (and supported).
        - Updated TkbmMWCustomSQLMetaData to attempt detection of more blob types.
        - Implemented fixes to make most code compilable in pure C++Builder
            environments.

kbmmw 5.05.00 发布的更多相关文章

  1. KbmMW 4.30.00 发布

    今天早上,KbmMW发布了4.30.00 版,这个版本开始支持XE4 的WIN/WIN64/OSX. 暂时不支持ios开发,同时加强了通过JSON 的对象序列化.还有就是解决了我提交的几个有关 汉字处 ...

  2. KBMMW 4.92.00 发布

    We are happy to announce the release of kbmMW Professional and Enterprise Edition. Yet again kbmMW c ...

  3. KBMMW 4.90.00 发布

    kbmMW is a portable, highly scalable, high end application server andenterprise architecture integra ...

  4. KBMMW 4.84.00 发布

    kbmMW is a portable, highly scalable, high end application server and enterprise architecture integr ...

  5. KBMMW 4.83.00 发布

    新版本又来了,端午节都不让大家过好:) 这次终于支持ios 64了,不用我再手工改了. Components4Developers is a company established in 1999 w ...

  6. KBMMW 4.82.00 发布

    作者最近加紧了更新进度,赞一个. 时间都去哪儿了? 还没好好看4.81, 新版就来了. 这个版本主要是增强日志管理,已经强大到替换delphi 本身的异常处理了. We are happy to an ...

  7. KBMMW 4.80.00 发布

    一大波更新来了. 4.80.00 March 30 2015 Important notes (changes that may break existing code)        ======= ...

  8. KBMMW 4.70.00 发布

    We are happy to announce the release of kbmMW v. 4.70.00 Professional and Enterprise Edition. kbmMW ...

  9. kbmmw 5.10.00 发布

    We are happy to announce v5.10.00 of the most complete development add on for Delphi and C++Builder ...

随机推荐

  1. matlab画图标题自定义字体大小

    title('标题','fontname','Times New Roman','Color','b','FontSize',20);字体是Times New Roman,颜色是蓝色('b'即blue ...

  2. linux下面redis安装

    安装方法1redis1.下载安装包2.解压程序包tar -zxvf  redis-3.2.6.tar.gz3.编译源程序make(编译失败,查看是否安装gcc   如果没有yum install gc ...

  3. C# 页面向controller中跳转匹配方法的时候,当controller中有两个重载方法时候,不发生跳转

    在ajax中的URL跳向controller一个方法时候,controller中有两个重载的方法,ajax不发生跳转,当删除另外一个方法之后,正常跳转. 不知道,是我自己写的有问题,还是control ...

  4. mybatis 返回类型为 java.lang.String 接收为null的情景

    <select id="selectOnly" parameterType="java.util.Map" resultType="java.l ...

  5. 【linux命令总结】——后续用到的内容持续补充和更新

    比如说:某个文件是go文件,名字叫做 Hello.go 1.通过后台运行某个程序,将结果输出到某个文件, 如果是直接运行go程序:go run Hello.go 后台运行:nohup go run H ...

  6. Android Studio无法打印Logout日志

    华为手机: 在拨号界面输入:*#*#2846579#*#* 进入测试菜单界面,然后Project Menu → 后台设置 → LOG设置LOG 开关 → LOG 打开        LOG 级别设置 ...

  7. Js学习(2)数据类型

    Js共有六种数据类型(ES6又增加了第七种Symbol类型的值): 原始类型:数值,字符串,布尔值 合成类型:对象(object):各种值组成的集合 其他undefined,null 对象又可以分成三 ...

  8. git中 vi/vim的命令

    一.vi & vim 有两种工作模式: 1.命令模式:接受.执行 vi操作命令的模式,打开文件后的默认模式: 2.编辑模式:对打开的文件内容进行 增.删.改 操作的模式: 在编辑模式下按下ES ...

  9. bootstrap之双日历时间段选择控件—daterangepicker(汉化版)

    jQuerybootstrapdaterangepicker汉化版 双日历时间段选择插件 — daterangepicker是bootstrap框架后期的一个时间控件,可以设定多个时间段选项,也可以自 ...

  10. [z]protobuf实现c++与java之间的数据传递,beancopy数据到前台

    [z]http://blog.csdn.net/xhyzdai/article/details/46684335 定义proto文件 option java_package = "com.w ...