专访.NET平台上类RoR开源项目Castle

转载 2007年09月20日 22:55:00

Castle Project是一个运行在.NET之上的开源项目,提供了类似流行的Ruby on Rails的MVC (Model-View-Controller)框架。Castle Project自从2003年就开始开发,并在2006年11月发布了1.0 RC2 。在这个项目临近1.0 RC3版本发布之际,我们采访了项目的创始人Hamilton Verissimo,谈到了Castle Project是什么及未来的走向。

Castle Project 应被任何在.NET平台上使用新方法来创建Web应用程序,感兴趣或特别好奇于实现MVC的应用程序的开发人员予以关注。它试图通过提供一系列工具和框架来让.NET世界的开发变得更令人愉快、开心和富有成效。它提供的这些方法创建出的应用程序更具有良好的层隔离,和良好的设计。

首先我们来看一下Castle Project到底是什么:

MicroKernel/Windsor - 这是一个控制反转(Inversion of Control,IoC)容器。实际上,Windsor仅仅是封装了MicroKernel并提供了一些外部的配置信息和代理支持。IoC的核心思想是通过消除直接的代码编写并配置需要依赖的服务,来促进松散耦合设计。

Castle ActiveRecord - 一个构建于NHibernate之上的ORM。它无需创建XML映射,并简化了NHibernate的一些复杂基础功能。虽然基于基类的使用是标准的方式,但这不是必要的,你可以以不同的模式来使用ActiveRecord,如Repository。

 

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

有一些不是顶级的但依然很重要的项目,如DynamicProxy(它允许代理接口和类,被用于好几个开源项目中,如NHibernate和Rhino.Mocks)。NVelocity也是我们为Sourceforge上已关闭的NVelocity提供的一个分支。我们修正了几个错误、添加了一些有意思的特性并进行了优化。

对于项目提供用于视图呈现技术的看法:

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

从这些视图引擎的差异得出的一个事实就是,他们不具有像WebForms那样复杂的页面生命周期。我们也不会试图重新创造一个有状态的不够清晰的Web模型。坚信Web开发是简单的,我们也受益于简单的方式。通过使用模型(Models)和控制器(Controllers )处理数据/状态和流程/应用逻辑,我们就可以依靠视图来作为简单显示内容的角色,由此我们不需要任何复杂的语法,使用if和foreach足够了。但是,内容也能被重用,只须把视图分割到不同的文件中或创建视图组件(ViewComponents)来作为相关逻辑的视图被显示。

关于自从RC2发布以来的改变:

ActiveRecord和Windsor有了一些加强和错误修正。MonoRail被极大的改善,添加了缓存支持和JS生成。缓存能在控制器级别配置,最终是利用了ASP.NET的缓存基础功能。JS生成是一种生成可以改变页面的JavaScript代码的方式。通常被用于AJAX中,可以想象一下,你有一个显示了某些内容的页面,用户点击了一个按钮改变了一些东西的状态。这个动作能使用JS生成功能生成JavaScript来更新页面中的元素。

这个项目明显和Ruby on Rails有些类似,当问到Castle Project是否是因为Ruby on Rails的流行才启动的:

Castle首先以控制反转(IoC)容器开始的,我大概记得好像在2003年到2004之间。Castle ActiveRecord和MonoRail是在我接触了Rails(2004年,Rails那时还非常年轻)之后才开始的。那时我决定用它(Ruby on Rails)构建一个产品,可当时除了头痛的非标准需求外一无所有。

另外一方面而言,.NET具有很好且文档齐备的函数库,很多像样的项目在各处都冒了出来。虽然我喜欢Rails,但.NET不只是框架和平台,我会把它用于我参与的各类项目当中。

而MonoRail开始于Ruby on Rails ActionPack的移植,是从以前来自用户的贡献和想法中分支出来。今天它拥有自己的特征,虽然它的基础和RoR类似,但我们支持的东西RoR不支持,反之亦然。

但问到Castle Project的未来和Hamilton看到的趋势在那里:

覆盖企业项目(开发)的所有方面是终极的目标。同时我们会平衡那些提供出来的产品具有一定的预见性,能让你轻松的工作并给你一定生产力的提高。这和提供某些复杂的编辑器或代码生成器工具有所不同,没有了他们你就无法工作。这也就是我们的工作为什么和微软的方式如此的不同。

Castle Project是一个开源的项目,欢迎各位开发人员参与进来。参与方式包括提交修正错误的补丁,或添加新特性,添加测试用例或文档。参与的第一步是订阅开发邮件列表,并开始参与到讨论之中。

更多的信息能在Castle Project 网站或在wiki上找到。Hamilton也维护着一个有大量信息的Blog。

 

专访.NET平台上类RoR开源项目Castle[转载]

Castle Project是一个运行在.NET之上的开源项目,提供了类似流行的Ruby on Rails的MVC (Model-View-Controller)框架。Castle Projec...
  • shanyou
  • shanyou
  • 2007年09月20日 21:02
  • 665

在.net中使用sql存储过程

在Northwind数据库中定义的带参数的存储过程 create proc GetCustomersOrders  @CustomerId nchar(5) as select Ord...
  • a892886597
  • a892886597
  • 2013年10月12日 17:22
  • 342

.Net 平台下实现的语言

作者 idior    2005-04-05 21:41 .Net平台号称是语言无关的平台, 按照微软的说法就是所有的语言都可以有.Net的版本, 从我们熟悉的C#,VB.Net,C++到最近刚推出新...
  • netatomy
  • netatomy
  • 2005年04月06日 00:10
  • 1420

谈谈对.NET开源框架Castle的认识

对.NET平台下的一个非常优秀的开源项目--Castle使用过程进行了讲解
  • quwenzhe
  • quwenzhe
  • 2015年01月29日 07:23
  • 1560

Castle使用初探

Castle的解释Castle     英文意思为城堡常见框架Castle和Spring.Net是.net开源框架中最热也是最优秀的两个IOC框架,NHibernate实现ORM,Castle也是使用...
  • hliq5399
  • hliq5399
  • 2011年04月09日 21:38
  • 1844

二进制转换与此平台上的长模式不兼容

在VMware Workstation上安装CentOS操作系统时,弹出窗口“二进制转换与此平台上的长模式不兼容”。...
  • u013806814
  • u013806814
  • 2015年09月07日 23:56
  • 12663

Castle在“新.NET时代”将何去何从

    国内的。NET开发人员相信对于Castle都不会陌生。Castle是针对。NET平台下的一个非常优秀的开源项目,从数据访问框架   ORM到依赖注入容器,再到WEB层的MVC框架、AOP,基本...
  • lee576
  • lee576
  • 2008年03月31日 16:58
  • 1565

解决vmware“二进制转换与此平台长模式不兼容.....”的问题

问题说明: 启动vmware出现:1、二进制转换与此平台长模式不兼容....等等字样; 2、vmware启动一会,系统直接重启,这个现象出现在惠普电脑上 问题原因: 出现这样的原因一般都是由于系统...
  • enson16855
  • enson16855
  • 2014年06月12日 15:50
  • 39595

在Ubuntu KyLin 16.04 LTS中安装OPENCV-3.1.0

在Ubuntu16.04中安装OPENCV-3.1.0
  • zhuquan945
  • zhuquan945
  • 2016年10月11日 09:00
  • 1247

Ror初学笔记

 Ror正在以惊人的速度增长着,特别是在经常光顾JavaEye的时候发现Ror已经在国内有很好的基础了,当然要凑个热闹尝尝鲜 咯。     目前国内Ror的中文资料还是很少的,到网上找找就只有Eiff...
  • yueguangyuan
  • yueguangyuan
  • 2006年10月16日 01:29
  • 6358
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:专访.NET平台上类RoR开源项目Castle
举报原因:
原因补充:

(最多只允许输入30个字)