Castle 项目 1.0 RC3 发布

  • Robert Bazinet
  • 朱永光

2007 年 9 月 26 日

话题:.NETWeb框架语言 & 开发

早就期待着的 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

.NETWeb框架语言 & 开发