» 开源框架:Castle

Castle是由Hamilton Verissimo撰写的,从2003年就开始开发,并在2006年11月发布了1.0 RC2 。2007年09发布了1.0 RC3版本。Castle是个轻量级(Lightweight)容器(Container)、实现 IoC(Inversion of Control)概念,是一个全方位的应用程序(Application)框架(Framework),并提供相关的一系列工具。

编辑

1 - 认识 Castle

认识 Castle的一些特性,并初步了解一下什么叫作 IoC?什么叫作 DI?
编辑

2 - 核心容器

Castle 核心容器实现了 IoC,Windsor与 Facility的运用是了解 Castle的重点所在。
  • 管理组件
简单来说组件是一个可重用的程序单元,它实现了某个接口,并仅仅只实现了这一个良好的接口。也就是说,组件是实现了某个服务接口的类。从第一个 Castle应用程序开始,逐步了解什么叫依赖注入,以及如何使用 Castle的容器功能来管理组件,了解组件在Castle容器中的生命周期。

  • 扩展容器的功能
Facility,作为Castle的可扩展单元,他是可以带有注入性的,也就是对组件来说,他可能“侵犯”组件本身。Castle提供有一系列的扩展单元(Facilities),你也可以建立自己的扩展单元。这些扩张单元是可以重用的,你可以在扩张单元里面订阅容器事件,给组件附加属性,建立拦截器,控制组件生命周期等。

编辑

3 - 持久层

来看看 Castle的 IoC 容器与 扩展单元(Facility)|如何应用于持久层,包括了数据库、事务处理等相关议题
  • 集成ADO.NET

  • 集成NHibernate

  • 集成iBatis.NET

  • 数据访问框架Castle ActiveRecord

  • 事务处理

编辑

4 - Web层

Castle提供了 MVC Web 框架MonoRail,您可以善用 IoC 容器在依赖注入上的好处。一个构建于ASP.NET(不要和ASP.NET中的WebForms混淆)之上的Web框架。它以控制器作为Web应用程序中的主要角色,决定流程,委托到其他层并选取视图来呈现,因此它只关心应用程序的流程逻辑。视图,另一方面也只关注表现逻辑。这是和标准的WebForms模式最大的不同之处。对于那些来自其他平台下的Web框架的人们,这是标准的选择,可以让你完全的控制HTML的生成,而WebForms和它的控件是无法做到的。

* MonoRail 入门
从一个最简单的MonoRail 应用程序,来看看MonoRail 框架的架构与 API 组成元素。

* 视图引擎
Castle MonoRail提供了几个不同的视图引擎用于开发呈现到浏览器的视图。NVelocity和Brail随着Castle发布包一起提供,尽管这样,还有一些来自于社区的视图引擎实现,名为AspView的项目和一个基于StringTemplate的项目。

* ViewComponents
一些ui部分在一些页面经常被复用。如果这些内容决大多数是静态的内容,我们可以使用ViewComponentViewComponent类和Controller类的功能类似。都可以使用views,可以传送数据去view。同样还支持inner sections和paraments。
*Checkbox List Component
*Column Chart Component
*Faq Item Component
*Faq List Component
*InsertJavascriptComponent
*JavascriptComponent
*Grid Component
*Smart Grid Component
*MobileFilter
*CaptureFor
*SecurityComponent
*DiggStylePagination



* Helpers
helper是可以在模板里调用,用于生成视图代码片段的类。MonoRail提供了多种内置helper用于生成ajax调用代码,页面特效代码,form元素验证代码等。

*高级应用

编辑

5 - AOP(Aspect-Oriented Programming)

在一个服务的流程中插入与服务无关的逻辑(例如Logging、Security),这样的逻辑称为 Cross-cutting concerns,将 Crossing-cutting concerns 独立出来为一个对象,这样的特殊对象称之为 Aspect,Aspect-oriented programming 着重在 Aspect 的设计及与应用程序的缝合(Weave)。

编辑

6 - 其他

Castle提供了简化且一致的方式,让您在使用一些 API 或服务时更加简单。
* 邮件
对于邮件发送服务的支持是由Castle的 Castle.Components.Common.EmailSender。IEmailSender接口所定义,它有一个实现类,Castle.Components.Common.EmailSender.Smtp。SmtpSender。
* 任务调度
Castle通过Startable Facility很容易集成Quartz,进行任务的调度。

编辑

7 -MonoRail应用


编辑

参考资料

posted on 2008-04-07 22:50  执法长老  阅读(2351)  评论(0编辑  收藏  举报

导航