tag:blogger.com,1999:blog-941738669260040912008-07-17T11:42:28.501+08:00Mozier's blogMozierhttp://www.blogger.com/profile/17873084159322130561noreply@blogger.comBlogger16125tag:blogger.com,1999:blog-94173866926004091.post-53267506906044406262007-03-25T22:44:00.000+08:002007-03-25T22:59:53.348+08:00学习英语的十大经典方法<span style="font-weight: bold;">第一焦点:句子就是一切!句子就是财富!</span><br /><br />克立兹提倡的英语学习单位是句子,句子简单明确,容易掌握,并马上可以用于交流!感觉棒极了!味道好极了!<br /> 可悲的现实:从初中学英语到现在,辛辛苦苦学习了上百课精读,但结局如何?大家心里最清楚:学精读、分析课文的时候清清楚楚,充满成就感,好象是学到了很多知识、很多单词、很多语法、很多"语言点",但在实际应用的时候却模模糊糊,似是而非,几乎说不出几个正确的句子!几乎全部还给了课本!<br /><br /> 强烈的呼吁:学习精读的时候,一定要把课文中实用的句子总结出来,并脱口而出!这才是真正的学习语言!<br /><br /> 冲天的信心:学习英语没有什么了不起!你的征服对象不过是一句话,最多也就是一、两条语法,十来个单词!任何人都可以学好英语!<br /><br /> 疯狂的成就:从小学四年级开始学英文,如果每天脱口而出五句话,到上初中时,就已经可以脱口而出五千五百多句话,举一反三就可以拥有近两万个实用句子,两万笔英语财富,早已达成自由交流的境界!一个初一学生的英语能力将远远超过一个大学生,因为绝大多数苦读十年的人只会说:My English is poor!<br /><br /><span style="font-weight: bold;">第二焦点:三最口腔肌肉训练法!</span><br /><br /> 学习外语就是训练口腔肌肉,使之轻松地发出陌生的外国声音,变以成灵活的国际肌肉;学习外语就是苦练脱口而出!只有这样才是真正地拥有语言!克立兹独创的"三最"口腔肌肉训练法将复杂、冷酷的外语学习变成了简单刺激的游戏!<br /><br />作法:用最大声、最清晰、最快速的办法反复操练句子或小短文直至脱口而出。每次记录时间,争取打破上次成绩,也可互相比赛。<br /><br /><span style="font-weight: bold;">第三焦点:一口气训练法! </span><br /><br /> 这个方法主要训练你说英语的底气。做法很简单,你只需要深呼吸,然后在一口气里尽量多读。经过一段时间的训练,原来需要换几次气的短文,一口气就能轻松读完!<br /><br /><span style="font-weight: bold;">第四焦点:五大发音要点! </span><br /><br /> 李阳·克立兹将复杂的语音规则总结成五大发音要点,使一般人都能迅速掌握。它们是:长元音双元音饱满;短元音急促;连音;略音和咬舌头。<br /><br />下面举几个例子:<br /><br />1、 I don't-know what-to do.(两个辅音连接,只读后一个)<br />2、 I'm working on-it.(连音)<br />3、 Ask-Bob-to sit-behind-me.(略音)<br />4、Mike likes to write by the nice bright light at night(元音极其饱满)<br />5、 A:What are you planning to do? B: I'm hoping to go to China.<br />6、 Neither father nor mother likes this weather.(咬五次舌头)<br /><br /><span style="font-weight: bold;">第五焦点:口语实破语法! </span><br /><br /> 语法是中国人最头疼的一个问题。李阳·克立兹的解决办法是:一句话突破一条语法!英语中难的语法不过几十条,也就是说,只需要脱口而出几十句话就可以基本上掌握英语语法的精华,而且能脱口而出,活学活用,举一反三!没有用的语法暂时不要学,系统全面地学习语法只会系统全面地忘记,而且非常辛苦,因为人脑不是电脑。<br /><br />1、 if she could help you ,she would help you.(如果她能帮你,她一定会的)<br />2、 John stopped studying. =John is not going to study anymore.<br />3、 John stopped to study. =John stopped doing sth. In order to study.<br />4、 I have just finished my work.(表示刚刚完成的动作)<br />5、 He has gone to America.(他去了美国。)(表示结果持续至今)<br />6、 He has been to America.(他曾去过美国。)(至示曾经有过的经验)<br />7、 He has lived here for a year.(表示持续到现在的行为)<br />8、 I enjoyed the movie very much. I wish I had read the book from which it was made.<br />(电影不错,我希望我读过原著)(选自国外权威考试)<br />语法:wish+主语+过去完成时=愿望之事在wish以前发生。<br />特别提醒:一定要用地道关用的句子来学习语法,这亲学习才能和语法建立深厚的感情,才能充满交流的渴望,<br />才能一鸣惊人!<br /><br />1、 I sometimes stay up till midnight.(一般现在时)<br />2、 She's always helping people.(现在进行时)<br />3、 He is going to change his job.(一般将来时)<br /><br /><span style="font-weight: bold;">第六焦点:口语突破单词! </span><br /><br /> 坚决反对孤立地记忆单词!克立兹倡导用实用的句子记忆单词,只有这样才有意义,才能真正地建立感情,地久天长!请记住:人是用句子进行交流的!<br /><br /><span style="font-weight: bold;">第七焦点:口语突破听力! </span><br /><br /> 你一定能听懂你能说出的东西!你只管去大量地练习说,只要发音纯正、用法地道,你的听力自然突破!而且采用的是超级三最法。比外国人说得还快,难道还怕听不懂吗?<br /><br /><span style="font-weight: bold;">第八焦点:口语突破考试!</span><br /><br /> 把考试题总结成口语,用三最法脱口而出!你肯定会快速成为考试高手。更重要的是:你获得了真正的英语交流能力。这才是祖国改革开放和经济建设最迫切需要的能力。这是一个"一举数得"、"利国利民"的方法。<br /><br /><span style="font-weight: bold;">第九焦点:学一句算一句,说一句顶十句! </span><br /><br /> 学一句就要一丝不苟地脱口而出一句,不懂只是一次不懂,糊涂只是一次糊涂!不再做学了忘、忘了学的无聊游戏!而且说一句就要字正腔圆,不是外国人而胜似外国人!气势压人,高人一等!说一句顶十句!而不是说了十句,别人还把你当初学者!<br /><br /><span style="font-weight: bold;">十焦点:一年的零碎时间足以攻克英语!</span><br /><br /> 大量地制作小纸条,这样可以语言环境随时身携带,可以反复剌激大脑,增强记忆,可以充分利用零碎时间,可以有效控制懒惰。一天轻轻松松脱口而出十句话,一年零零碎碎却真真正正攻克英语,英语变成了你的业余爱好。Mozierhttp://www.blogger.com/profile/17873084159322130561noreply@blogger.comtag:blogger.com,1999:blog-94173866926004091.post-25141078218198914542007-02-07T13:52:00.001+08:002007-02-07T14:37:28.695+08:00Open source ColdFusion ServerThe smith project is a free ColdFusion server and has announced it is about to go open source. With this announcement, could CF finally become a contender is the OS world and take market share away from PHP and ROR?<br /><br /><br /><br /><a href="http://www.smithproject.org/">read more</a> | <a href="http://digg.com/programming/Open_source_ColdFusion_Server">digg story</a><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.smithproject.org/res/images/HomeLogo.gif"><img style="cursor: pointer; width: 320px;" src="http://www.smithproject.org/res/images/HomeLogo.gif" alt="" border="0" /></a><br /><br />smith是一个免费的,跨平台的,稳定可靠的,轻量级CFML引擎,完全使用JAVA编写,运行于JRE之上.<br /><br />它作为J2EE应用程序的一部分进行配置和运行,类似于<a href="http://www.newatlanta.com/products/bluedragon/j2ee_dotnet.cfm">BlueDragon for J2EE版本</a>.<br /><br />支持大多数常用的<a href="http://www.smithproject.org/product_features_tags.cfm">CF tag </a>和<a href="http://www.smithproject.org/product_features_functions.cfm">cf function</a><br /><br />更重要的是smith项目计划将其开源,与php,ror等争夺市场份额.<br /><br /><a href="http://www.smithproject.org/">详情访问smith project</a>Mozierhttp://www.blogger.com/profile/17873084159322130561noreply@blogger.comtag:blogger.com,1999:blog-94173866926004091.post-59657197510124131722007-01-19T11:57:00.000+08:002007-01-19T12:11:55.819+08:00The ColdFusion Community ToolbarHouse of Fusion 和 Epicenter Consulting 为ColdFusion社区开发的浏览器工具条.<br /><br />很方便实用的功能:<br /><br /><ul><li>自定义搜索ColdFusion内容</li><li>查看MXNA,Fullasagoog聚合器的ColdFusion内容以及个人blog的RSS</li><li>查看CF-Talk,Fusion Authority,ColdFusion开发者杂志的最新技术文章</li><li>CSS,HTML校验器</li><li>查看最新的CF工作</li><li>还有CF weekly的播客</li></ul>提供IE和Firefox两个版本.<br /><br />下载地址:<br /><a href="http://www.houseoffusion.com/toolbar/">www.houseoffusion.com/toolbar</a>Mozierhttp://www.blogger.com/profile/17873084159322130561noreply@blogger.comtag:blogger.com,1999:blog-94173866926004091.post-31244208659795931472006-11-24T16:01:00.000+08:002006-11-24T16:04:24.344+08:00cfset标签的正确用法<a href="http://www.fusionauthority.com/Techniques/2569-The-Law-according-to-Michael-Dinowitz-Part-1.htm">The Law (according to Michael Dinowitz) Part 1</a><br /><a href="http://www.fusionauthority.com/Techniques/384-Evaluation-in-ColdFusion.htm">Evaluation in ColdFusion</a>Mozierhttp://www.blogger.com/profile/17873084159322130561noreply@blogger.comtag:blogger.com,1999:blog-94173866926004091.post-35862596200212634902006-11-23T13:51:00.000+08:002006-11-23T13:52:33.326+08:00用Model-Glue:Unity的ColdFusion应用程序框架更好编程<a href="http://www.zdnet.com.cn/developer/webdevelop/story/0,3800067013,39543534,00.htm">用Model-Glue:Unity的ColdFusion应用程序框架更好编程</a><br />via:www.zdnet.com.cnMozierhttp://www.blogger.com/profile/17873084159322130561noreply@blogger.comtag:blogger.com,1999:blog-94173866926004091.post-32070197248811149882006-11-23T13:48:00.000+08:002006-11-23T13:50:44.661+08:00如何用ColdSpring框架管理ColdFusion<a href="http://www.zdnet.com.cn/developer/webdevelop/story/0,3800067013,39549042-1,00.htm">如何用ColdSpring框架管理ColdFusion</a><br />via:www.zdnet.com.cnMozierhttp://www.blogger.com/profile/17873084159322130561noreply@blogger.comtag:blogger.com,1999:blog-94173866926004091.post-37730522295032486022006-10-25T17:08:00.000+08:002006-10-25T17:12:29.814+08:00ColdSpring AOP Tutorial<a href="http://cdscott.blogspot.com/2005/09/introduction-to-coldspring-aop.html">Introduction to ColdSpring AOP</a><br /><a href="http://cdscott.blogspot.com/2005/10/coldspring-aop-tutorial-part-one.html">ColdSpring AOP Tutorial – Part One</a><br /><a href="http://cdscott.blogspot.com/2005/11/coldspring-aop-tutorial-part-two.html">ColdSpring AOP Tutorial – Part Two, Around Advice</a>Mozierhttp://www.blogger.com/profile/17873084159322130561noreply@blogger.comtag:blogger.com,1999:blog-94173866926004091.post-91854241165525591072006-10-23T16:25:00.000+08:002006-10-23T16:29:03.136+08:00MachII and ColdSpring Architecture<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/6011/11495833364990/1600/Coldspring_Machii_Arch.0.jpg"><img style="cursor: pointer;" src="http://photos1.blogger.com/blogger2/6011/11495833364990/320/Coldspring_Machii_Arch.jpg" alt="" border="0" /></a>Mozierhttp://www.blogger.com/profile/17873084159322130561noreply@blogger.comtag:blogger.com,1999:blog-94173866926004091.post-86396397791078586362006-10-20T10:50:00.000+08:002006-10-20T11:03:15.130+08:00Redirect Command and SES URLsHi Everybody,<br /><br />Just wanted to post a proposed solution for SES URLs and the redirect command. As some of you may know, I don't know if SES URLs are all they are supposedly cracked up to be. However, we want to meet the needs of the community without comprising the framework. I cannot make any guarantees that this will ever make it into the framework -either in this release or a future release. One reason why this may not get into the framework is because this can easily be emulated by using a filter instead of the redirect command. However, there is an argument that redirect should do it "natively" without the use of a filter (because the redirect command is like a filter anyways). Here is the solution that I devised with input from Kurt Wiersma. Matt and I would like people's thoughts whether good or bad on this:<br /><br />The solution is allow users to customize the redirect command by extending it with a custom command. You would extend the current redirect command CFC (MachII.framework.commands.RedirectCommand) with a custom command that you wrote. You would then override the makeRedirectURL() method in the base RedirectCommand with your makeRedirectURL() method and schema of creating SES URLs. Your custom extension would also require a configure() method (instead of a init() method) - which would be allow you to do configuration code just like in listeners, filters and plugins.<br /><br />You would define an application wide custom extension of the redirect command by adding a property to your Mach-II properties. For example:<br /><span style="color: rgb(51, 204, 0); font-family: courier new;"><property name="defaultRedirectType" value="path.to.your.custom.redirectCommand"/></span><br /><br />Your custom extension would then make all redirects commands in your config file obey your SES schema.<br /><br />If you wanted a specific redirect command to obey a certain schema, you could that easily. This would override the application wide custom extension or default Mach-II behavior (standard url with a query string):<br /><span style="color: rgb(51, 255, 51); font-family: courier new;"><redirect event="youNewEvent" args="some,args" type="path.to.your.custom.redirectCommand"/></span><br /><br />Adding the "type" attribute makes this enhancement inline with how listeners, filters and plugins are defined.<br /><br />One reason why I favor this approach over adding SES to the current redirect command is that this will account for 99% of the SES URL schemas. Not everybody uses /param1/value1/param2/value2 approach. Also, some people do even more url rewritting and remove the file name from the url (something like example.com/param1/value1/param2/value2 instead of example.com/index.cfm/param1/value1/param2/value2). One thing is that Mach-II isn't going to parse the SES urls for your - you need to have your webserver do that for you or institute a plugin to do that on the preProcess. That is one reason why I am a bit hesitant in adding this in the first place - we're starting to get into areas where Mach-II shouldn't be involve itself in - IMHO.<br /><br />Please, any comments are appreciated. Again, no promises if this will make it into this release or future releases of Mach-II, but discussion is required on this subject. Also, please see the redirect command enhancements that have already been made that I mentioned in the Mach-II 1.1.1 Status Update email I sent earlier today.<br /><br />Peter J. Farrell - Maestro Publishing<br /><a href="http://blog.maestropublishing.com/">blog.maestropublishing.com</a>Mozierhttp://www.blogger.com/profile/17873084159322130561noreply@blogger.comtag:blogger.com,1999:blog-94173866926004091.post-1625727716923477752006-10-18T15:38:00.000+08:002006-10-18T16:26:15.590+08:00Ioc容器的革命性优点我们知道,在Java基本教程中有一个定律告诉我们:所有的对象都必须创建,或者说,使用对象之前必须创建,但是现在我们可以不必一定遵循这个定律了,我们可以从<a href="http://en.wikipedia.org/wiki/Inversion_of_Control">Ioc</a>容器中直接获得一个对象然后直接使用,无需事先创建它们.<br /><br />这种变革,就如同我们无需考虑对象销毁一样,因为Java的垃圾回收机制帮助我们实现了对象销毁,现在又无需考虑对象创建,对象的创建和销毁都无需考虑了,这给编程带来的影响是巨大的.<br />我们从一个简单例子开始,有一个普通类B代码如下:<br /><code><br />public class B implements BI<br />{<br /> AInfterface a;<br />public B(AInfterface a)<br />{<br /> this.a = a;<br />}<br /> public void invoke()<br />{<br /> /** ...*/<br /> }<br />}<br /></code><br />有两种使用B的方式:<br />1.普通无Ioc容器的调用方式:<br />BI b = new B(new A());//需要在生成B实例之前 生成A等实例<br />b. invoke();<br />2.使用Ioc容器(Jdon框架)的革命调用方式:<br />BI b = (BI) WebAppUtil.getService("b");<br />b. invoke();<br /><br />上面两种方式重要区别:<br />前者需要照顾B类中A类的实例化,如果B类中调用不只A类一个,还有更多其他类如C/D/E等类,这样,你在使用B类时,还需要研究其他类的创建,如果C/D/E这些类不是你自己编写,你还需要翻阅它们的API说明,研究它们应该如何创建?是使用New还是工厂模式 还是单态调用?<br /><br />这时,你会感叹:哇,有没有搞错?我只不过是为了使用B类中一个小小的方法,就花去我这么多时间和精力?<br /><br />当我们使用第二种方式时,就无需花很多精力和时间考虑A/C/D/E等类的创建.<br />使用Ioc容器,你再也不必做这些僵化愚蠢的工作了,我们只需从ioc容器中抓取一个类然后直接使用它们.<br /><br />当然,在使用之前,我们需要做一个简单的配置,把你将来需要使用的类全部告诉ioc容器,例如Jdon框架的ioc容器配置jdonframework.xml如下:<br /><img style="cursor: pointer;" src="http://photos1.blogger.com/blogger2/6011/11495833364990/1600/code02.gif" alt="" border="0" /><br />注意:虽然B类代码调用了A类(甚至可能调用C等其他类),但是在配置中我们无需考虑这种调用关系.<br />因此,整个环节我们都无需考虑B类中涉及其他类的调用关系,这样是非常省时省力的,特别是如果项目较大,JavaBeans特别多,又是多人协调开发,这种方式对提高开发效率,降低出错率是非常大的帮助.<br />如果你的项目中有非常多的类,调用关系很复杂,而且调用关系随时都可能变化,那么,使用无需照顾调用关系的Ioc容器无疑是减轻开发负担的首选.<br />ioc容器另外一个著名实现是Spring框架,但是在Spring的配置文件applicationContext.xml中,我们必须考虑上述调用关系:<br /><img style="cursor: pointer;" src="http://photos1.blogger.com/blogger2/6011/11495833364990/1600/code01.gif" alt="" border="0" /><br />所以,从以上对比来看,从项目开发效率角度看,基于PiocContainer实现的Jdon框架在实际使用配置效率无疑要高于Spring框架.<br />同时,也可以说:基于PiocContainer实现的Jdon框架完全真正实现了Ioc容器的革命性优点,颠覆了"使用对象之前必须创建" 的基本Java语言定律.Mozierhttp://www.blogger.com/profile/17873084159322130561noreply@blogger.comtag:blogger.com,1999:blog-94173866926004091.post-78259640666698378022006-10-11T11:39:00.000+08:002006-10-11T14:12:19.643+08:00Reactor:coldfusion世界的ORM框架<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/6011/11495833364990/1600/reactor.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger2/6011/11495833364990/200/reactor.png" alt="" border="0" /></a><br /><a href="http://blog.eshangrao.com/">闲云孤鹤</a>介绍<a href="http://livedocs.reactorframework.com/Reactor_Documentation.htm">Reactor框架</a>的<a href="http://blog.eshangrao.com/index.php/2006/09/23/280-reactor-coldfusionorm">文章</a>,很不错.<br />PS:ColdFusion世界里还有几个<a href="http://en.wikipedia.org/wiki/Object_Relational_Mapping" title="Object Relational Mapping">Object Relational Mapping</a>框架:<br /><a href="http://www.compoundtheory.com/transfer/">Transfer</a><br /><a href="http://www.objectbreeze.com/">ObjectBreeze</a><br /><a href="http://clearsoftware.net/index.cfm?mode=cat&catid=4BF355FB-E081-2BAC-691AF2BBF35F5E7C">Active Record Factory</a><br /><a href="http://cfcpowertools.com/" title="CFCPowerTools">CFCPowerTools</a>Mozierhttp://www.blogger.com/profile/17873084159322130561noreply@blogger.comtag:blogger.com,1999:blog-94173866926004091.post-56274578272786246272006-10-10T15:13:00.000+08:002006-10-10T15:16:20.079+08:00ColdFusion正在成为市场新宠via: <a href="http://www.zdnet.com.cn/developer/webdevelop/story/0,3800067013,39525090,00.htm">www.zdnet.com.cn</a><br /><br />这篇文章将帮助您探索ColdFusion的世界,这个世界中正在发生的事情,以及您为什么要关注这一开发平台。<br /><br />我已经在编写ColdFusion的相关文章上工作一段时间了,因为真正令人兴奋的事情正在ColdFusion世界中进行,现在是时候来修正我们的观点了,在我看来,没有比现在更好的时机来加入到ColdFusion的开发者行列了。这篇文章将对现在的发展以及未来的潮流进行综述,我的后续文章将对这些主题(以及其它主题)进行深入探讨。<br /><br /><span style="font-weight: bold;">新的管理</span><br /><br />软件界最大的一起并购在去年晚些时候结束:Macromedia公司与Adobe公司的合并创造了世界上第五大软件公司,因此,ColdFusion也就变成了Adobe公司的产品。<br /><br />说实在的,去年有段时间ColdFusion看起来仿佛处于不稳定的过渡状态,但不要误会我,人们依然使用ColdFusion来快速创建应用软件,就像他们以往所做的一样,ColdFusion MX 7是一个辉煌的版本,它给予了开发人员很多新特色,但是每个人都保持静默(还不是十分静默),正在疑惑这次的合并对ColdFusion的开发者意味着什么,对ColdFusion的未来又意味着什么。<br /><br />关于这场合并已经尘埃落定,Adobe将ColdFusion视做其软件产品线中的关键产品,他们将接受Macromedia已经完成的这项伟大的工作并希望能走的更远,使ColdFusion成为一个引人注目的应用服务器选项。 ColdFusion只会变的更加强大。ColdFusion MX 8已经在开发当中了,我估计它将提供与Adobe其它产品的紧密集成,比如PDF和LiveCycle,当然还会包括很多其它的改进。<br /><br />为实践他们所说的,Adobe甚至使用ColdFusion来建造他们的新网站,这很好,新的Adobe.com将现有的Adobe网站和原来的Macromedia站点融合在一起了,而且这个网站是完全运行在ColdFusion之上的。<br /><br /><span style="font-weight: bold;">AJAX + CF</span><br /><br />无论您认为AJAX是发明切片面包以来最伟大的事情,或只不过是对已经存在多年的技术加上了夸大其词的宣传用语而已,AJAX都不可能被忽视,AJAX已经存在于现在的技术世界中,而使用ColdFusion来编写AJAX是令人难以置信的简单。<br /><br />ColdFusion 组件(ColdFusion Components (CFCs))可以被作为网络服务、Flash远程组件或直接通过URL来进行远程调用。在直接被远程调用的时候,此组件所返回的数据会自动转换为 WDDX XML格式,然后,通过一些简单的客户端JavaScript WDDS转换方法(免费的),使用CFC来响应AJAX请求就很简单了。<br /><br />如果您需要一个更强壮的解决方案,来自Rob Gonda的<a href="http://www.robgonda.com/blog/projects/ajaxcfc/">AjaxCFC</a> 就是一个强大且易于使用的工具。这是一个抽象的组件,开发者可以将其进行扩展来创建自己的AJAX组件或façades,这是一个具备全部特色的组件,它提供了错误处理、状态请求和同步与异步的能力,使用AjaxCFC来填充对话框、验证表单字段,创建“建议样式(suggest-style)”的下拉菜单或在页面上生成内容都是非常容易实现的。<br /><br />最后,一个重大新闻就是Adobe刚刚发布了名为<a href="http://labs.adobe.com/technologies/spry/">Spry</a>的AJAX类库,如果在实际的CF 服务器上出现这些东西的踪迹,我并不会感到奇怪。<br /><br /><span style="font-weight: bold;">Flex 2</span><br /><br />Adobe正在推广的Flex平台可以用于创建一种全新的Web应用软件。通过使用Flash创建用户界面,使用Flex编写的应用程序看上去更像真实的桌面软件。<br /><br />虽然这可能听上去像AJAX现在正在做的事情,但是实际上却不是,Flex使用的是一种简单的XML语法来创建应用软件并将其联系到后台的数据服务上。它并不会受到不同浏览器显示效果或行为因素的影响,而这些正是困扰AJAX、DHTML和CSS的问题。它提供了一个统一的用户组件集合来实现对界面的定制,这一新型的应用软件平台是如此引人注目,甚至微软都试图在Vista的视窗基础表示层(Windows Presentation Foundation)中加入对这类软件的支持。而最好的消息是Flex的API和编译器都是可以免费使用的。<br /><br />那么这些和 ColdFusion有什么关系呢?好,当基于Flex的应用软件可以通过网络服务与一系列后台数据相连,Adobe将ColdFusion定位于向 Flex应用程序提供数据的最快和最简单的方式。Adobe在Flex2.0的开发过程中的作风非常开放,开发了很多编译工具和示例程序。<br /><br />名为FlexBuilder的集成开发环境包含了ColdFusion开发工具,可以让您在几分钟内逐步创建一个完整的Flex应用程序。如果您见到过 Ruby平台的运行,您就会知道使用FlexBuilder来创建Flex应用软件和相关的ColdFusion服务器端组件是多么迅速了。以我粗陋的见解,Flex 2.0所带来的冲击不仅在ColdFusion的开发上,而且对于整个网络开发都将造成巨大的影响。<br /><br /><span style="font-weight: bold;">用户界面控制器架构</span><br /><br />随着ColdFusion的日益成熟,很多开发人员都将其作为构建应用软件的方式。模型-视图-控制(Model-View- Controller)模式是很多开发者采用的软件构建模式,有很多架构可以提供控制功能,最流行的三种是:Model-Glue、Mach-II和 Fusebox。<br /><br /><a href="http://www.model-glue.com/">Model-Glue</a>和<a href="http://www.mach-ii.com/">Mach-II</a>实际上很相似,它们是基于事件调用架构的,这两种架构通过URL或输入的表单来接受用户请求,对消息进行广播,从而传达到模型组件,然后渲染HTML视图。这两种架构都需要开发者具备面向对象的程序设计经验,因为该模型是使用CFC并按照面向对象方式创建的。<br /><br />Model-Glue目前的版本是1.1.0,其2.0版本已经处于alpha阶段,Mach-II的版本也是1.1.0,它们两个现在都已经是稳定的架构了,假设您了解面向对象程序设计并且具备构建基于HTML应用软件的知识,那么您可以在这两个架构上很好地工作。<br /><br /><a href="http://www.fusebox.org/">Fusebox</a>是这三者当中最老的也是最流行的,它支持更广泛的编程风格,开发者可以使用过程化的方式或面向对象方式,这对于希望学习面向对象,但是希望逐步采用面向对象模式的开发者来讲是非常棒的选择。即将发布的Fusebox 5版和CFCs一样,完全从头编写的框架,融入了更多的灵活性并保持与Fusebox 4.1应用程序兼容。<br /><br />缩写词汇:IOC与ORM<br /><br />我刚刚提到的三个架构只是MVC模式中的控制器部分,CF社区并没有忘记MVC模式中最重要的部分:模型,模型是一个应用软件的心脏,所有的处理过程与商业逻辑都是通过模型进行的,我想大部分开发者都会同意模型是有意思的事情的发生地。<br /><br /><a href="http://www.coldspringframework.org/">ColdSpring</a>是一个用于ColdFusion应用软件的逆向控制(Inversion of Control (IOC))容器,它和Java的Spring架构的工作方式类似。最基本的想法是:您的模型组件越复杂越面向对象,则越难以管理它们之间的依赖关系。 ColdSpring提供了一种简便的方式来连接(wire together)您的CFCs。<br /><br />ColdSpring可以完成注入CFC到其它的CFC或强制一个CFC与其它独立的CFC建立关联的工作,而不需要您手动完成这些任务。更好的是,如果您希望的话,它还可以将单独的组件实例缓存到内存中,这样今后调用它们的时候速度就会非常快(这也被命名为独立设计模式(Singleton design pattern))。作为一个免费附带的奖励,ColdSpring还支持一系列面向方面的程序设计(Aspect-Oriented Programming)的功能。<br /><br /><a href="http://livedocs.reactorframework.com/Reactor_Documentation.htm">Reactor</a>是一项正在展开的工作,它致力于为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。<br /><br />一个正在成长的社区<br /><br />也许ColdFusion复兴的最明显的一个原因就是开发者社区本身,ColdFusion非常易于使用,很多没有软件工程背景的人都可以很快学习并开始使用,目前正在快速显现的焦点是最佳方法与有效的面向对象开发。<br /><br />正如您从这篇文章中推测的一样,CF的开发者正在拥抱面向对象的程序设计和面向模式的开发方法,活跃的大型邮件列表和论坛比如<a href="http://www.cfczone.org/listserv.cfm">CFCDev</a>和<a href="http://www.houseoffusion.com/groups/CF-Talk/">CF-Talk</a>里充满了这类主题。很多开发者的<a href="http://weblogs.macromedia.com/mxna/index.cfm?query=byCategory&amp;amp;amp;categoryId=1&categoryName=ColdFusion">博客</a>流量很大,而且现在至少有三个播客在提供相关的内容。这正在创建一个反馈的循环,社区学到的更多,就能共享更多,而它共享的更多大家就能学到更多。<br /><br />播客:<br /><ol><br /><li><a href="http://www.helmsandpeters.com/">Helms and Peters</a></li><br /><br /><li><a href="http://www.coldfusionweekly.com/">ColdFusion Weekly</a></li><br /><br /><li><a href="http://www.coldfusionpodcast.com/">ColdFusion Podcast</a></li><br /></ol><br />在2006年6月,举行了第七界<a href="http://www.cfunited.com/">CFUnited </a>会议,这次历时四天的会议一共包括75个研讨会,今年的与会者预计将超过1100人。在今年早些时候,CFObjective会议在明尼阿波利斯举行。相对 CFObjective而言,CFUnited会议的范围更广泛,而CFObjective则更关注企业级软件的设计和开发。<br /><br />在众多开放源代码的项目中,<a href="http://www.cfeclipse.org/">CFEclipse</a>项目构建了一个基于Eclipse平台的优秀的并且免费的ColdFusion集成开发环境,CFEclipse是真正为开发人员使用的,而且它一直在不断改进,几乎每天都会编译新的版本。<br /><br />最后,现在甚至部署CFML代码都有了更多的选择,NewAtlanta公司最近发布了一款名为<a href="http://www.newatlanta.com/products/bluedragon/index.cfm">BlueDragon.NET</a>的产品,Adobe的ColdFusion MX运行在J2EE平台,而BlueDragon.NET则允许将CFML代码部署在微软的.NET平台之上。MySpace.com是当前流量最大的三家网站之一,它就是运行在BlueDragon.NET之上的,这展示了BlueDragon.NET所提供的强大功能。<br /><br />活蹦乱跳的ColdFusion<br /><br />我希望这篇纲要可以证明ColdFusion的活跃,实际上,伟大的事情正在以比我以往所见过的所有事情更快的速度发展(我使用 ColdFusion已经超过十年了),Adobe是CF的坚定后盾,社区正在接受挑战,并不断推进最佳实践和企业开发。从架构到AJAX工具到Flex 用户界面的这些新的方法正在以每周一个的速度出现,今后的文章将会深入讲解这些主题,如果您最近还没有接触过ColdFusion,那么现在就是最好的时机,下载免费的开发者版本,您就会发现现在成为一个ColdFusion开发者的伟大时机。Mozierhttp://www.blogger.com/profile/17873084159322130561noreply@blogger.comtag:blogger.com,1999:blog-94173866926004091.post-24918634370840886572006-10-09T16:38:00.000+08:002006-10-09T16:46:13.942+08:00ColdFusion Band<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/6011/11495833364990/1600/coldfusion_band.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger2/6011/11495833364990/200/coldfusion_band.jpg" alt="" border="0" /></a><br />没想到还有个名为"ColdFusion"的乐队.<br />成立于2004年,来自美国亚利桑那, 乐队风格深受Nirvana,Rush影响,是我一直喜欢的风格.<br /><a href="http://www.coldfusionx.com/">乐队主页 </a><br /><a href="http://www.myspace.com/coldfusion">ColdFusion@myspace</a><br /><a href="http://www.purevolume.com/coldfusion">ColdFusion@purevolume</a>Mozierhttp://www.blogger.com/profile/17873084159322130561noreply@blogger.comtag:blogger.com,1999:blog-94173866926004091.post-49641580524410800782006-09-27T15:24:00.000+08:002006-09-27T15:26:43.286+08:00利用国际化<a href="http://www-128.ibm.com/developerworks/cn/java/j-rbmgr/index.html"> 使用 RBManager 管理国际化开发的复杂性</a><br /><br /><a href="http://www-306.ibm.com/software/globalization/icu/rbmanager.jsp">Globalize your On Demand Business</a><br /><br /><a href="ftp://ftp.software.ibm.com/software/globalization/icu/icu_tools/RBManager-0.7.1.zip">Download RBManager</a><br /><br /><a href="http://www.sustainablegis.com/unicode/resourceBundle/javaRBCFC.zip">Download JavaRB cfc</a>Mozierhttp://www.blogger.com/profile/17873084159322130561noreply@blogger.comtag:blogger.com,1999:blog-94173866926004091.post-32285015396905278512006-09-26T14:19:00.000+08:002006-09-26T14:21:57.131+08:00Fusebox Step By StepLet's Go!<br /><a href="http://www.fusebox.org/library/FuseboxStepByStep/">Fusebox Step By Step</a>Mozierhttp://www.blogger.com/profile/17873084159322130561noreply@blogger.comtag:blogger.com,1999:blog-94173866926004091.post-16987629337367235072006-09-22T09:26:00.000+08:002006-09-22T09:33:58.396+08:00What’s New in BlueDragon 7.0<ol><br /><li>Multi-threaded programming (CFTHREAD, and related tags and functions)</li><br /><li>Interfaces and Abstract CFCs</li><br /><li>"null" keyword and IsNull() function</li><br /><li>CFQUERY Enhancements</li><br /><ul><br /><li>CACHEDUNTILCHANGE attribute</li><br /><li>BACKGROUND attribute</li><br /></ul><br /><li>Application.cfc</li><br /><ul><br /><li>onClientStart() handler</li><br /><li>onMissingTemplate() handler</li><br /></ul><br /><li>CFDOCUMENT</li><br /><li>CFCHART</li><br /><li>CFSEARCH Enhancements</li><br /><ul><br /><li>support for Word and PDF documents</li><br /><li>support for multiple languages</li><br /></ul><br /><li>UDF Forward References in CFML pages</li><br /><li>CFREGISTRY support for Windows registry</li><br /><li>ASP.NET Partial Trust Mode (BD.NET)</li><br /><li>support for MySQL 5.0, including stored procedures</li><br /><li>support for 64-bit Windows and Linux</li><br /><li>miscellaneous CFMX 7 compatible enhancements</li><br /><li>performance enhancements</li><br /><li>bug fixes</li></ol><br /><br /><a href="ftp://ftp.newatlanta.com/public/bluedragon/7_0b1/docs/BlueDragon_70_Whats_new.pdf">more detail</a>Mozierhttp://www.blogger.com/profile/17873084159322130561noreply@blogger.com