第1页:抓住机会:ColdFusion正在成为市场新宠 第2页:抓住机会:ColdFusion正在成为市场新宠
用户界面控制器架构
随着ColdFusion的日益成熟,很多开发人员都将其作为构建应用软件的方式。模型-视图-控制(Model-View-Controller)模式是很多开发者采用的软件构建模式,有很多架构可以提供控制功能,最流行的三种是:Model-Glue、Mach-II和Fusebox。
Model-Glue 和Mach-II 实际上很相似,它们是基于事件调用架构的,这两种架构通过URL或输入的表单来接受用户请求,对消息进行广播,从而传达到模型组件,然后渲染HTML视图。这两种架构都需要开发者具备面向对象的程序设计经验,因为该模型是使用CFC并按照面向对象方式创建的。
Model-Glue目前的版本是1.1.0,其2.0版本已经处于alpha阶段,Mach-II的版本也是1.1.0,它们两个现在都已经是稳定的架构了,假设您了解面向对象程序设计并且具备构建基于HTML应用软件的知识,那么您可以在这两个架构上很好地工作。
Fusebox 是这三者当中最老的也是最流行的,它支持更广泛的编程风格,开发者可以使用过程化的方式或面向对象方式,这对于希望学习面向对象,但是希望逐步采用面向对象模式的开发者来讲是非常棒的选择。即将发布的Fusebox 5版和CFCs一样,完全从头编写的框架,融入了更多的灵活性并保持与Fusebox 4.1应用程序兼容。
缩写词汇: IOC 与 ORM
我刚刚提到的三个架构只是MVC模式中的控制器部分,CF社区并没有忘记MVC模式中最重要的部分:模型,模型是一个应用软件的心脏,所有的处理过程与商业逻辑都是通过模型进行的,我想大部分开发者都会同意模型是有意思的事情的发生地。
ColdSpring 是一个用于ColdFusion应用软件的逆向控制(Inversion of Control (IOC))容器,它和Java的Spring架构的工作方式类似。最基本的想法是:您的模型组件越复杂越面向对象,则越难以管理它们之间的依赖关系。ColdSpring提供了一种简便的方式来连接(wire together)您的CFCs。
ColdSpring可以完成注入CFC到其它的CFC或强制一个CFC与其它独立的CFC建立关联的工作,而不需要您手动完成这些任务。更好的是,如果您希望的话,它还可以将单独的组件实例缓存到内存中,这样今后调用它们的时候速度就会非常快(这也被命名为独立设计模式(Singleton design pattern))。作为一个免费附带的奖励,ColdSpring还支持一系列面向方面的程序设计(Aspect-Oriented Programming)的功能。
Reactor是一项正在展开的工作,它致力于为ColdFusion应用软件创建一套对象关系映射API(Object-Relational Mapping API)。这是一项极具挑战的事业,但它的有效性和能量已经在CF的世界中引起了巨大的波澜。Reactor从数据库中读取元数据,然后自动生成组件,该组件可以对数据库进行抽象,并提供验证逻辑。Reactor创建的组件遵循很多已经确立的设计模式,比如动态记录(Active Record)、数据访问对象( Data Access Object)和表格数据网关(Table Data Gateway)。也许最强大的特色就是它可以与很多数据库协同工作,包括SQL Server、Oracle、MySQL、DB2和Postgre,这意味着一个应用软件可以以一种实质上透明的方式从SQL Server转换到Oracle。
一个正在成长的社区
也许ColdFusion复兴的最明显的一个原因就是开发者社区本身,ColdFusion非常易于使用,很多没有软件工程背景的人都可以很快学习并开始使用,目前正在快速显现的焦点是最佳方法与有效的面向对象开发。
正如您从这篇文章中推测的一样,CF的开发者正在拥抱面向对象的程序设计和面向模式的开发方法,活跃的大型邮件列表 和论坛比如CFCDev和CF-Talk 里充满了这类主题。很多开发者的博客 流量很大,而且现在至少有三个播客在提供相关的内容。这正在创建一个反馈的循环,社区学到的更多,就能共享更多,而它共享的更多大家就能学到更多。
播客
* Helms and Peters
* ColdFusion Weekly
* ColdFusion Podcast
在2006年6月,举行了第七界CFUnited 会议,这次历时四天的会议一共包括75个研讨会,今年的与会者预计将超过1100人。在今年早些时候,CFObjective会议在明尼阿波利斯举行。相对CFObjective而言,CFUnited会议的范围更广泛,而CFObjective则更关注企业级软件的设计和开发。
在众多开放源代码的项目中,CFEclipse 项目构建了一个基于Eclipse平台的优秀的并且免费的ColdFusion集成开发环境,CFEclipse是真正为开发人员使用的,而且它一直在不断改进,几乎每天都会编译新的版本。
最后,现在甚至部署CFML代码都有了更多的选择,NewAtlanta公司最近发布了一款名为BlueDragon.NET 的产品,Adobe的ColdFusion MX运行在J2EE平台,而BlueDragon.NET则允许将CFML代码部署在微软的.NET平台之上。MySpace.com是当前流量最大的三家网站之一,它就是运行在BlueDragon.NET之上的,这展示了BlueDragon.NET所提供的强大功能。
活蹦乱跳的 ColdFusion
我希望这篇纲要可以证明ColdFusion的活跃,实际上,伟大的事情正在以比我以往所见过的所有事情更快的速度发展(我使用ColdFusion已经超过十年了),Adobe是CF的坚定后盾,社区正在接受挑战,并不断推进最佳实践和企业开发。从架构到AJAX工具到Flex用户界面的这些新的方法正在以每周一个的速度出现,今后的文章将会深入讲解这些主题,如果您最近还没有接触过ColdFusion,那么现在就是最好的时机,下载免费的开发者版本,您就会发现现在成为一个ColdFusion开发者的伟大时机。
责任编辑:张琎
查看本文国际来源