早就期待着的 Castle Project 1.0 RC3 终于在开发几乎 1 年后发布了。从 Castle Project 网站的通告可以看到,新版本给开发人员带来了很多用于为.NET 2.0 Web 应用程序而设计的 MVC 框架的新特性和增强功能。
InfoQ 前不久采访过项目创始人 Hamilton Verissimo。这个项目最后的一个版本是 2006 年 11 月发布的 RC2,由于有 1 整年没有任何改变,所以现在新版本带来了太多的变化。
更新的功能包括:
ActiveRecord
- 不需要扩展 ARBase 就能支持多数据集
- 使用新的 Castle Validation 实现重构验证支持
- InPlaceConfigurationSource.Build()
- 添加 HqlNamedQuery
- 大量的错误修正
DynamicProxy
- RC3 第一次包含 DynamicProxy 2(其支持泛型)
- 比版本 1 快很多
MicroKernel/Windsor
- 支持泛型集合
- 转而使用 DynamicProxy 2
- 添加一些小功能到 IKernel 和 IWindsorContainer 的 add/resolve 方法中
- 子容器支持得以提升,但是依旧需要一些检查——你可能会在编译的时候得到警告
- 添加了一个很简单的计算(Eval)支持,你能进行配置
- DefaultKernel 和 WindsorContainer 现在都实现了 IServiceProvider
MonoRail
- 添加了缓存(Cache)支持(查看新的 Cache 属性)
- 添加 IsPost/IsGet/IsPut/IsHead 到 Controller
- 添加自动窗体验证(Auto Form Validation)
- FormHelper 接近完美,依然缺乏多条选择的支持
- 支持一次注册多个视图引擎(可以和混合视图引擎说拜拜了)——但是还不够好,在内部还有很多不协调的情况
- 添加了少量视图组件
- 添加测试控制器、视图组件、向导的支持,而无须使用 ASP.NET
- 添加了 JS 生成器支持,及 UpdatePage/UpdatePageTag 视图组件
- Format 支持 set 操作,例如 $Form.Select(”price”, [1…100], “”) 是用货币格式来显示选择的元素
- 添加 PaginationHelper.CreateCustomPage,其是处理分页最优化的方式
- 添加 DiggStylePagination 视图组件,基于 Alex Henderson 运作
- 添加了如下成员到 SmartDispatcherController(和验证有关):ValidationSummaryPerInstance : IDictionary、GetErrorSummary(对象实例) : ErrorSummary、HasValidationError(对象实例) : bool
- 添加 ViewComponentDetails 属性(就像 ControllerDetails)
- 添加 ViewComponentParam 属性,它可以告知 MonoRail 把参数作为属性绑定到你的视图组件上——减少了重复的代码规则
- 添加 UrlHelper/UrlBuilder 概念
Aspect#
- 已经发布
组件
- 添加 Castle.Validator
- 添加 Castle.DictionaryAdapter——对这个特性还有点拿不准
- 加强了 Binder(这是它的实现的另外一种重写代码)
其他
- 创建了 using.castleproject.org
- 创建了 api.castleproject.org
- 在 Castle.Services.Transaction 和微软 System.Transactions 之间进行了初步集成
- 创建了 Castle.Core 命名空间
想得到关于 Castle Project 和这个版本的更多信息,可以访问他们的网站。
查看英文原文: Castle Project 1.0 RC3 is Out
评论