我考虑了很久,还是决定先把代码发布出来,早点接受大家的反馈。Delphi Spring Framework的目标是为企业应用程序提供强劲而灵活的基础架构。整个框架基于Embarcadero RAD Studio 2010平台,充分利用了新的语言特性(如泛型、匿名方法和反射),并借鉴了.net和java平台上其他同类框架的一些思想,希望能给大家带来全新的体验。下面我就把项目的进展及未来的一些计划跟大家汇报一下:本次为首次发布版本,版本号为V0.1.1,主要完成的特性有:+Spring.System
> 系统环境类(TEnvironment、TOperatingSystem、TDriveInfo)
> 工具类(TArgument、TEnum、TRtti)
> 其他(TInterfaceBase、TVersion、TFileVersionInfo、TNullable<T>等)
> 全局函数(SplitString, TrySetFocus,Lock, UpdateStrings, EnumerateControls, EnumerateDataSet等)
+Spring.Collections (泛型容器接口:ICollection<T>, IList<T>, IDictionary<TKey, TValue>)
+Spring.DesignPatterns (利用泛型完成了单例模式、观察者模式和Specification模式)
+Live Templates (包括了近30个代码模板,大大提高编程效率)目前正在进行中的工作主要有:(将在接下来的版本中发布)
> Spring.IoC (IoC容器)
> Spring.Logging (log4j的移植版本)
> Spring.Vaidation(验证框架)
> Spring.Numbering(通用编号和流水号规则及生成器)
> Spring.Objects(常用领域对象如TMoney、TCurrency、TRatio<T>、TQuantity、TUnit、TRange<T>)未来的主要任务:
> Spring.Cryptography(密码及安全部分)
> > 哈希算法(MD5、SHA-1等)
> > 校验算法(CRC16和CRC32等)
> > 加密算法(DES、Triple-DES和AES,支持多种加密模式,支持IV和PaddingMode)
> Spring.Collections (LINQ式的容器扩展)
> Spring.Configuration (配置)
> Spring.Resources (资源)
> Spring.Scheduling (计划任务和调度)
> Spring.Localization.Chinese (简繁体转换、拼音首字母、人民币转换和阴历)
> Spring.Adapters (Plugins)
> 系统及工具类
> > TUri
> > TRegex (Regular Expressions Wrapper)
> > TBigInteger and TBigDecimal
> > Base64 Encoding/Decoding
> > BCD and String Conversion
> > TDynamicArray<T>
> > TNetworkWatcher
> > IAsyncResult, etc.
> > TFileSearcher, etc.
> > TFileSystemWatcher
> > TClipboardWatcher
> > TServiceController
> > TRecycleBin
> > Single Application Instance项目主页:http://delphi-spring-framework.googlecode.com
项目svn(ReadOnly):http://delphi-spring-framework.googlecode.com/svn/trunk/
更多信息:http://www.zuobaoquan.com(本开源项目版权采用Apache License, Version 2.0)如果你和我一样,对Delphi有一种无法磨灭的情感,请加入我们!我们相信——Delphi因我而不同。MSN/Email: baoquan.zuo[at]gmail.com (请将[at]改为@)
QQ技术交流群:6994768
> 系统环境类(TEnvironment、TOperatingSystem、TDriveInfo)
> 工具类(TArgument、TEnum、TRtti)
> 其他(TInterfaceBase、TVersion、TFileVersionInfo、TNullable<T>等)
> 全局函数(SplitString, TrySetFocus,Lock, UpdateStrings, EnumerateControls, EnumerateDataSet等)
+Spring.Collections (泛型容器接口:ICollection<T>, IList<T>, IDictionary<TKey, TValue>)
+Spring.DesignPatterns (利用泛型完成了单例模式、观察者模式和Specification模式)
+Live Templates (包括了近30个代码模板,大大提高编程效率)目前正在进行中的工作主要有:(将在接下来的版本中发布)
> Spring.IoC (IoC容器)
> Spring.Logging (log4j的移植版本)
> Spring.Vaidation(验证框架)
> Spring.Numbering(通用编号和流水号规则及生成器)
> Spring.Objects(常用领域对象如TMoney、TCurrency、TRatio<T>、TQuantity、TUnit、TRange<T>)未来的主要任务:
> Spring.Cryptography(密码及安全部分)
> > 哈希算法(MD5、SHA-1等)
> > 校验算法(CRC16和CRC32等)
> > 加密算法(DES、Triple-DES和AES,支持多种加密模式,支持IV和PaddingMode)
> Spring.Collections (LINQ式的容器扩展)
> Spring.Configuration (配置)
> Spring.Resources (资源)
> Spring.Scheduling (计划任务和调度)
> Spring.Localization.Chinese (简繁体转换、拼音首字母、人民币转换和阴历)
> Spring.Adapters (Plugins)
> 系统及工具类
> > TUri
> > TRegex (Regular Expressions Wrapper)
> > TBigInteger and TBigDecimal
> > Base64 Encoding/Decoding
> > BCD and String Conversion
> > TDynamicArray<T>
> > TNetworkWatcher
> > IAsyncResult, etc.
> > TFileSearcher, etc.
> > TFileSystemWatcher
> > TClipboardWatcher
> > TServiceController
> > TRecycleBin
> > Single Application Instance项目主页:http://delphi-spring-framework.googlecode.com
项目svn(ReadOnly):http://delphi-spring-framework.googlecode.com/svn/trunk/
更多信息:http://www.zuobaoquan.com(本开源项目版权采用Apache License, Version 2.0)如果你和我一样,对Delphi有一种无法磨灭的情感,请加入我们!我们相信——Delphi因我而不同。MSN/Email: baoquan.zuo[at]gmail.com (请将[at]改为@)
QQ技术交流群:6994768
解决方案 »
- 如何对存储过程里的临时表插入多条记录,查询时一次全部查询
- 怎么让程序初始化时更快捷
- 不知道为什么写的程序在有delphi的环境就可以运行, 没delphi的环境就不可以运行!
- 如何控制dbgrid
- 无限制给分::请教使用Delphi已有数据库类搭建大中型软件的数据库框架
- 怎样设定DBChart控件图表的纵坐标范围?
- 用DataSetProvider.GetRecords如何取得第N包的数据?
- 多个控件赋值的问题?
- BDE 直接连 Access数据库,怎么连?
- delphi无法连接到sql server2000中的数据库
- delphi怎么把现有的工程变成DLL?
- 如何用delphi来写分割图片库文件,如传奇的wis库文件中的图片
虽然偶只玩MIS类界面
在二种模式下挣扎.
以前我也是希望能兼容D7-D2007,后来等Delphi2010出来以后就放弃了这个想法。希望各位大人原谅。
尽可能使用class constructor和class destructor代替单元的初始化(initialization)和终止化(finalization)
由于 class destructor 发生在全部的 units.finalization 之后,而且某个 unit 中的全局变量(包括类变量,delphi 中的运行期常量实际上也是全局变量)的清理工作会在其 finalization 之后马上进行。因而,包括
const S: string = 'blahblah';
这样的常量在 class destructor 执行到的时候已经被清理掉了(S=nil),这就为包括长字符串、接口、动态数组等的初始化与清理工作埋下了隐患。当执行到 class destruction 的时候,很可能某个清理工作需要的信息(如 class var string/array of T)已经早就被释放掉了。因此,我的建议是,在 d2010 还没有决定这个问题怎么改之前,还是小心使用 class destructor 为妙。btw,这个问题目前已经 open 了(qc78328),今后会怎么办目前还不知道
你说的这个问题确实比较特殊,一般来说,class destructor里面只负责释放类的静态成员,如果不引用全局变量的话应该就没什么问题了。(从封装的角度来说,可以考虑把全局常量移植到类里面,作为class var。)
先找些大公司支持才行