95992828九五至尊2

NET平台上类RoR开源项目Castle,Castle项目标利用尤其广阔

一月 20th, 2019  |  882828九五至尊手机版

Cuyahoga是一个开源的情节管理系列,非凡好用,并且还接济Mono。明日看看Cuyahoga也集成了Castle,引入了IoC容器概念,表达Castle正在逐年被大家所承受,IoC的概念正在被越来越多的.Net开发者认同,同时也申明了Castle的可用性,而有更加多的人利用Castle也方便进步它的稳定性。如今又好多少个月Castle没有立异了。有越多的人接纳Castle也有利于增强它的平稳,加速他的推广。希望Castle可以变成J2EE的spring.
也期望大家共同来拥抱优异的开源项目。

Castle Project是一个周转在.NET之上的开源项目,提供了近似流行的Ruby on
Rails的MVC
(Model-View-Controller)
框架。Castle
Project自从二零零三年就起来支付,并在二〇〇六年九月公布了1.0 RC2
。在那几个项目临近1.0 RC3版本通知之际,大家搜集了类其他创办者HamiltonVerissimo,谈到了Castle Project是何许及前景的走向。

前天卓殊欢天喜地和豪门大饱眼福,承蒙各位朋友协理与厚爱,得到了三月的asp/asp.net的微软MVP,谢谢大家,谢谢dudu的推介。

Castle Project
应被其余在.NET平台上使用新办法来创设Web应用程序,感兴趣或专门好奇于落成MVC的应用程序的开发人员予以关怀。它试图透过提供一文山会海工具和框架来让.NET世界的开发变得更令人乐意、心满足足和富有功效。它提供的那么些形式创制出的应用程序更拥有得天独厚的层隔离,和超级的筹划。

先是大家来看一下Castle Project到底是怎样:

MicroKernel/Windsor882828九五至尊手机版, – 这是一个说了算反转(Inversion of
Control,IoC)容器。实际上,温·莎(Wind·sor)仅仅是包装了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和温莎有了有些加强和谬误改正。MonoRail被大幅度的一字不苟,添加了缓存协理和JS生成。缓存能在控制器级别配备,最后是采用了ASP.NET的缓存基础成效。JS生成是一种变化可以改变页面的JavaScript代码的方法。经常被用来AJAX中,可以设想一下,你有一个来得了一些内容的页面,用户点击了一个按钮改变了一部分东西的情事。那一个动作能运用JS生成作用生成JavaScript来更新页面中的元素。

本条序列显明和Ruby on Rails有些看似,当问到Castle Project是否是因为Ruby
on Rails的流行才起步的:

Castle首先以控制反转(IoC)容器开头的,我大约记得好像在二零零三年到2004以内。Castle
ActiveRecord和MonoRail是在我接触了Rails(二零零四年,Rails那时还百般年轻)之后才开始的。那时我主宰用它(Ruby
on Rails)构建一个出品,可登时除了高烧的非标准要求外一文不名。

别的一方面而言,.NET具有很好且文档齐备的函数库,很多看似的项目在四方都冒了出去。尽管自己喜欢Rails,但.NET不只是框架和平台,我会把它用于自身到场的各项项目当中。

而MonoRail开头于Ruby on Rails
ActionPack的移植,是从以前来自用户的进献和想法中拨出出来。今天它具有自己的特征,纵然它的基础和RoR类似,但我们扶助的事物RoR不扶助,反之亦然。

但问到Castle Project的前景和汉密尔顿看到的主旋律在那里:

覆盖集团类型(开发)的具有地方是极限的指标。同时大家会抵消这一个提供出来的出品有所一定的前瞻性,能让你轻松的工作并给你早晚生产力的增强。那和提供一些复杂的编辑器或代码生成器工具有所分歧,没有了他们你就无法工作。那也就是大家的劳作怎么和微软的艺术如此的不等。

Castle
Project是一个开源的系列,欢迎各位开发人士参加进去。出席格局包含提交修正错误的补丁,或添加新特点,添加测试用例或文档。插足的首先步是订阅开发邮件列表,并早先到场到切磋之中。

越来越多的新闻能在Castle Project
网站
或在wiki上找到。汉森·尔顿(Hami·lton)也有限支持着一个有雅量音讯的Blog。

查阅英文原稿:Catching up with the Castle
Project

履新的功用蕴含:

ActiveRecord

  • 不须要扩张ARBase就能支撑多数据集
  • 应用新的Castle Validation完成重构验证协理
  • InPlaceConfigurationSource.Build()
  • 添加HqlNamedQuery
  • 大气的错误改进

DynamicProxy

  • RC3率先次包涵DynamicProxy 2(其协理泛型)
  • 比版本1快很多

MicroKernel/Windsor

  • 支撑泛型集合
  • 转而使用DynamicProxy 2
  • 累加一些小功效到IKernel和I温·莎(Wind·sor)Container的add/resolve方法中
  • 子容器协理得以升任,但是如故必要有些反省——你可能会在编译的时候得到警示
  • 添加了一个很简单的计算(伊娃l)协助,你能开展安插
  • DefaultKernel 和 温·莎(Wind·sor)Container现在都得以达成了I瑟维斯(Service)(Service)Provider

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视图组件,基于亚历·克斯(Ale·x) 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.Service(Service)s.Transaction和微软System.Transactions之间展开了始于集成
  • 制造了Castle.Core命名空间

想取得关于Castle
Project和这几个本子的更加多新闻,可以访问她们的网站。

汉语原文: http://www.infoq.com/cn/news/2007/09/castleproject

相关文章

Your Comments

近期评论

    功能


    网站地图xml地图