Flex Templating FXT使用MVC Google Code
作者: admin 时间: 2007年11月23日 星期五FXT使用MVC(Model-View-Controller)设计模式,提供简洁高效的富应用网站开发解决方案。
它在Google Code的地址(支持SVN版本控制):http://code.google.com/p/fxt/
使用FXT开发的网站支持ReST样式的URL,E4X,具有快速开发等特点。
这里是一个用FXT做的Yahoo搜索例子。
FXT使用MVC(Model-View-Controller)设计模式,提供简洁高效的富应用网站开发解决方案。
它在Google Code的地址(支持SVN版本控制):http://code.google.com/p/fxt/
使用FXT开发的网站支持ReST样式的URL,E4X,具有快速开发等特点。
这里是一个用FXT做的Yahoo搜索例子。
本周四,Google公布了新版Google Web Toolkit,它使人们能够开发可以在苹果公司的Macintosh操作系统上运行的AJAX应用软件。
该软件以前的版本只能开发在Windows和Linux上运行的AJAX Web应用软件。
Google开发人员工具部门的高级产品经理泰勒表示,新版Google Web Toolkit的运行速度更快,能够为开发支持多种语言的应用软件的编程人员提供更好的本地化和国际化支持。
有时候包装的力量不容忽视,拿麦当劳的各种套餐举个例子吧,你买到手的可能就是一个肉饼,一袋薯条和一杯饮料。但是加上可爱的包装,再加一个不值钱的塑料玩具,就变得截然不同了。其实在应用程序开发领域,很多相同道理的事情也在不断发生。一些开发技术例如JavaScript、XML和一些比较老的表现技术(诸如HTML和CSS)被打上“AJAX”的品牌,就引来人们的更多关注。
实际上没有根本性的变化发生,但是新的名字可以带来更多的注意力,其效果远远好于让开发者告诉大家:“使用JavaScript和XML技术你能够开发出很酷的基于浏览器的客户端。”
Ajax被认为是一种粘合技术,可以把很多具有很酷功能的新服务聚合在一起,例如Google地图和雅虎的Flickr。但是现在依然存在很多对该技术的困惑,例如怎么样才是使用Ajax技术开发新的应用的最好的办法,还有大型技术厂商,包括微软和Google,计划如何在它们的产品种支持Ajax。为了得到这些问题和其他的一些解答,某国外媒体在Ajax世界大会上专访了OpenAjax联盟的主席David Boloker,来听听他对这些问题的看法。
记者:请问Ajax最吸引人的魅力是什么?
Boloker: Ajax可以让你在一个Web浏览器中感受到相当好的用户交互体验,而这些以前只有在胖客户端应用程序中才能做到,现在Ajax可以实现,这就他的魅力。
记者:那么Ajax是如何实现这一点的呢?
Boloker:Ajax实际上是组成一个编程模型的系列标准,这些标准有DHML、JavaScript、XML,还有CSS层次样式,Web服务,还有其他适合Web开发的东西,它们每一个都是一个标准,一起使用它们就创建了一个工具集。现在在开源和非开源的服务中,大约有200多个不同的工具集,每一个工具集完成的事情都各不相同。
记者:关于Ajax的安全问题,你们采取了什么措施来保证其安全性?
Boloker:Ajax的安全问题实际上就是Web的安全问题。因此涉及的方面可能比较多,深入的分析OpenAjax,其存在的问题实际就是一个安全问题。这个话题不仅仅包含Web技术已经存在多年的跨站点脚本攻击问题,而是当你做内容聚合的时候的整个安全概念。
假若你是在你的公司内、或客户的商店内、或你信任的伙伴间、进行内容聚合的话,这种聚合是安全的。但是当你与不认识的其他的人进行不安全的内容聚合的时候,别人的JavaScript脚步就有可能试图控制你的机器,因此我们需要在我们内部或公司内做一些技术工作,甚至在W3C内采取一些工作来看一下,“如何才能控制某些人可以访问这些聚合内容而其他人不可以访问?”
记者:那么将通过什么措施来解决这个问题?
Boloke:我们现在正在处理这些问题,正在从多方面来了解它。
首先要了解的是,“我们是如何建立Ajax应用并如何调试它”。
第二方面,我们需要了解有可能导致安全问题的各种因素。
第三方面,需要写给Ajax程序员一个文档。
第四方面,就是你要寻找的技术:“我们如何来加强这项技术?”这个工作我们正在进行之中。
记者:现在微软已经承诺将加入OpenAjax吗?
Boloke:没有。他们现在正在考虑这件事。
记者:现在还有其他大型的公司参与这个项目吗?
Boloke:对,现在有很多人在与我们讨论,现在它的成员包括:Adobe公司、Backbase公司、BEA公司、DoJo基金会、Eclipse基金会、Google公司、IBM公司、Novell公司、甲骨文公司、SAP公司和红帽公司等,还有一些来自亚洲国家,他们也贡献了不小的力量。
编者点评:毫无疑问,AJAX或类似AJAX的技术无疑为web设计带来了新的生命力。开发者可以在web上创造出以前从所未有的真正的“应用程序”,但是我们也看到,使用AJAX技术必须非常注意安全问题,OpenAjax联盟正式运作才几个月,目前已经得到了众多IT技术公司的支持,我们也希望该联盟能在AJAX技术上的安全性方面能集众家所长,为AJAX技术的更强大做出更多的工作。
原文:http://www.linuxinsider.com/rsstory/54038.html
谈到计算机编程,有时它只是意味着找到合适的组合方式。近来,古狗公司(Google)的开发人员将一些存在多年的Web技术进行了重新组合,精心设计出一系列令人炫目的产品,比如,完美互动的北美地图GoogleMaps、性能非凡的电子邮件Gmail、特殊的搜索引擎Google Suggest—用户只需键入头几个字母,它就能够提示完整的词组,等等。
现在,Google公司开放了GoogleMaps的应用程序接口 (API),以及GoogleMaps、Gmail和Google Suggest背后的一些代码。这些应用都采用了一种综合性软件Ajax写成。Ajax是Asynchronous、Javascript 和XML的缩写。在Google公司和雅虎公司(Yahoo)等互联网领袖企业的推动下,Ajax正使得企业为客户提供在线服务的方式发生转变。同时,Ajax还使得在Web上运行软件的感受,越来越接近于本地PC机上的运行水平。用户在查阅GoogleMaps时,不必再面对令人厌烦的旋转沙漏(Spinning Houseglass),所需要的工具也不复杂,普通的浏览器就可满足需求。
GoogleMaps产品经理布莱特·泰勒(Bret Taylor)大胆声称:点击URL和下载页面的做法是“老式的Web用户界面”,而Ajax开发的软件给人的感觉更像是一种桌面软件。“我们确实对Web应用软件的形态重新做出了定义。”他表示道。
更多的软件开发人员和Web用户很快就能理解泰勒的上述言谈意味着什么了。微软公司(Microsoft)最近表示,公司正在开发一个被称为“Atlas”的编程工具代码,它能让大量的Visual Studio用户使用Ajax编写应用软件。由于数据处理放在后端进行,Web站点可以迅速向用户提供新的信息,而无需重新刷新页面。
雅虎公司的图片共享网站Flickr.com以提供能够让用户轻松在线组织和共享的图片而著称。该网站最近将大部分站点内容从Macromedia公司的Flash 技术转向了Ajax技术。雅虎公司也正准备对其雅虎邮件服务进行大幅升级,这次升级是基于去年对Ajax电子邮件软件企业Oddpost 公司的购并,以便公司能迅速赶上Google公司 Gmail的发展速度。
Ajax也能用于流量较大的B2B网站。Sabre控股公司(Sabre Holdings)正准备发布新版的航空计划和运营软件,该软件采用Ajax后,反应时间从数秒减少到数毫秒,满屏的航班情况瞬间就可浏览到。今年5月,Sabre 控股公司基于开源协议,开始开放部分Ajax代码,来树立公司“IT创新者”的形象。公司航空解决方案部门的产品开发副总裁大卫·恩迪科特(David Endicott)表示:“我们突破了性能问题和可用性方面的障碍。”他所在的部门为一些航空公司开发软件,客户包括美国航空公司(American Airlines)和捷蓝航空公司(JetBlue Airways)等行业领袖企业。“这对于我们品牌的知名度以及公司的影响力都是一个较大的提升。”
在软件开发的创新之路上,通常会出现一两位天才的程序员,而Ajax的来源则更分散一些。它的核心技术自1990年以来就存在,不断演变的Web战略和Web技术使他们以一种新奇的方法组合在了一起。
Google公司、微软公司MSN部门和雅虎公司正在不断推出大量高质量的软件,一些企业也正努力通过更好的网站设计来提高品牌形象和增加收入,因此,Web上的软件设计正变得越来越重要。如今,浏览器市场的争夺战已经明显降温,很大程度上,这使得程序员们开发的软件在任何浏览器上的运行都会比较可靠。“
“用户在Web上的体验已经出现了差异,”微软公司平台战略部总经理查尔斯·菲茨杰拉德(Charles Fitzgerald)说,“今年年初或更早以前,你会注意到,企业的兴趣也发生了新的变化,争夺客户注意力的战争已经开始。”
由于Ajax这项技术实际上已经从自主产品部件的组合,转化到了更加标准化的产品,那么另一场争夺战是,由谁来向用户提供构建强大的Ajax网站的开发工具。在大多数网站,当Web用户点击单词或图片,网站的软件就会向服务器发出请求,提取数据、进行运算,或显示图像。而在使用Ajax设计的网站,浏览器加载一个引擎,它会拖动用户界面并在后端执行信息请求。结果就会出现像GoogleMaps软件的效果,用户能在美国和加拿大地图上从一个州放大到一条街的水平。
当用户在地图上从美国南达科他州的苏福尔斯(Sioux Falls,SD) 拖曳到威斯康星州的肯诺夏(Kenosha)时,这个软件就会加载一些屏幕范围以外的像素所组成的图素(Tiles),这样用户就不会感觉到有时间上的滞后。
今年3月,雅虎公司收购了Flickr.com。在这个网站上,用户可以将照片放进相册进行管理,或是通过在页面上拖动的方式与其他组群共享,每次操作行为的变化无需对页面进行重新载入。“三四年前,这是根本不可能的事。”雅虎公司的一位总经理和Flickr.com的创始人之一斯图尔特·巴特菲尔德(Steward Butterfield)表示,“过去的体验非常糟糕,这样的新功能过去根本不值得推出。”
由于浏览器生产商不再争先恐后地推出新版本,程序员头一次感觉到,自己编写的代码和XML终于能够可靠运行,因为软件不太会频繁发生改变了。这也使得人们对Ajax的兴趣大增。Web设计咨询企业Adaptive Path 公司用户体验总监耶西·J·加勒特(Jesse James Garrett)表示:“IE和Mozilla(Firefox的缔造者)在过去5年中,基本上都是在打补丁而已。”新的Web编程方法Ajax,正是由加勒特所命名的。
包括亚马逊网站(Amazon.com)、苹果公司(Apple Computer)、荷兰直接银行(ING Direct)、Lands’ End公司、在线DVD租赁公司Netflix公司,blog(网络日志)内容聚合提供商Technorati以及沃尔沃公司(Volvo)等在内,一大批公司都是Ajax的追随者。“Ajax在管理层中会得到更大的信任,因为这项技术在管理者们所信赖的著名企业中获得了高度认可。”Flickr.com的巴特菲尔德说,“这使得Aajx的地位更加合法化。”
Ajax并不简单。它包括了两种以上的Web语言以及其他代码,包括JavaScript、动态 HTML和微软公司创立的例行程序XMLHttpRequest等。由于Ajax是从免费技术当中随意组合在一起的,因此开发所需的时间就会比在商业开发环境中的开发时间要长一些。但是,这种开发方式避免了采用浩繁的编程语言,如太阳计算机系统公司(Sun)的Java;或创建多媒体服务器和多媒体工具,如Macromedia公司的Flash等。由于Ajax的基本技术可以方便获得,而且完全可以在普通浏览器下运行,所以这种软件的大量使用将会削弱这些公司的产品需求。
微软公司等高科技企业对Ajax的重视程度还在进一步提高。微软公司计划将在今年9月,在美国洛杉矶召开专业开发人员大会(Professional Developers Conference,PDC)上,发布Atlas的预览版本。该公司表示,Atlas能让公司轻松地为不同浏览器开发和测试Ajax。“现在,还稍微带点黑客的性质。”菲茨杰拉德开玩笑说。
Google公司最近公开了地图站点的API,让开发人员创立混合性的网站,就像社区网站Craigslist所创建的一个站点就包含了Google公司用户界面。条件是在任何使用其API的网站上,Google公司都享有广告权。
7月初,Google公司公布了JavaScript 版本的Extensible Stylesheet语言,这是在开源BSD协议下,从服务器获取XML文件并在浏览器内将其转化为HTML的软件。而且Google公司为开发员工提供了一个Ajax技术的工具包。
不过,竞争对手也在对Ajax挑三拣四。Macromedia公司执行副总裁和首席软件架构师凯文·林奇(Kevin Lynch)表示,编写Ajax软件需要重复测试以消除不同浏览器所造成的Bug。他还指出,Ajax缺乏商业开发工具的现实。“如果采用Flash,你可以一次完成,而且运行时间也能统一起来。”
Sun公司副总裁和Java计算机语言发明人詹姆士·高斯令(James Gosling)最近表示,虽然很多开发人员将Ajax和Java结合起来使用,但相对来说,Java还是一个更有生产力的编程环境。“Ajax对那些看上去比较精巧的网站是很好的工具。”他说,“Google公司的地图站点给人们留下深刻印象。而人们不了解的是,Google公司为了让地图在其他浏览器平台上顺利运行经历了多少痛苦。”
即使拥有更高的浏览器稳定性,Ajax相比普通的Web应用软件而言,还需花上更长时间进行调试。
由于缺乏商业开发工具,因此采用Ajax还缺乏标准的方法。不过,转向Ajax并不是故意逃避问题的方式:由于其技术的核心是一种软件从服务器获取数据,并执行代码的新方法,因而,它的影响范围就不只是用户界面层。“它提出了一种全新的软件开发模式。”巴特菲尔德表示。当然,Ajax还有一些其他缺点,比如老练的用户能在浏览器里查阅JavaScript代码,并猜出软件的构造方式。
与传统的Web设计相比,Ajax设计也许难度更大一些。不过,Google公司的泰勒认为,能让客户拥有更好的体验终究是值得的。正如Sabre控股公司用户体验经理比尔·斯科特(Bill Scott)所说的:“我知道Ajax有许多渲染的成分,但它的确是近一段时间以来出现的最棒的技术之一。”
让你的网站拥有地图——Google公司和雅虎公司希望自己的地图服务能够整合到其他Web站点。
Google公司和雅虎公司分别发布的整合界面,让想要在自己Web站点上添加街道地形图的公司有了两个选择。
Google公司前不久发布的Google Earth,让人们使用卫星图像把地图放大到街道级水平。免费的API可能没有Google Earth那样炫目,但对企业来说,API可能更实用。GoogleMaps的API使得开发人员可以采用JavaScript将地图嵌入到自己的网页上;用户可在地图上增加覆盖层,包括箭头等;还可以用阴影显示信息窗口。测试版对任何网站都是免费的,尽管Google公司保留在地图上做广告的权利。
YahooMaps的API使得开发人员通过覆盖内容创建定制的地图. 两家公司都提供免费API。但是如果你需要支持,就要通过公司的讨论组获得。
一组名为Ajax的程序,也许会对微软和桌面软件的领导地位构成威胁。
如果你想了解互联网的未来,可以上Google的地图网站上去看一看。乍看上去,它似乎跟同类的其他网站没有太大区别。不过,你一旦输入了某个地址,这个网站马上带你进入一个城市,穿越一条又一条街道,而在此过程中你会发觉事情非常美妙。首先,你不会见到沙漏图标。网页会无缝地一下子转换到新的一页,你的电脑在等待下载更多数据时,屏幕不会出现任何间断。这种功能已经帮助创建了Google Earth网站。这个网站收集了全球各地的卫星图片,是去年点击率最高的网站之一。这些网站能够把信息平滑顺畅地下载到用户的电脑,因此大受欢迎,而美国许多其他行业的从业者有鉴于此,正纷纷利用它们来帮助拓展业务。在美国,如果你打算寻找一个新公寓,你可以在Housingmaps.com网站上输入你的目标街区的名字。然后,转眼间你会看到一个鸟瞰图,上边标了一些虚拟图钉,每个图钉代表一个待售或待租的房地产。如果你想知道这个目标地区的治安是否良好,可以进入mapsexoffender.com网站查看。这个网站会把Google的美国地图信息与各地区的犯罪记录集合起来,然后在地图上标出每一个有案底坏蛋的住址。
诸如此类的平滑滚屏互联网应用之所以能够实现,全靠一种叫Ajax的技术,Ajax其实是一组电脑程序,这些程序互相配合,能使网站无缝地运作,好像电脑程序在个人电脑中运行那样。尽管这种创新的技术在Google地图网站上最容易见到,它可不是Google专有的。在过去的几个月,Ajax已经成为一股推动力,催生了一系列基于互联网的新服务,包括免费文字处理程序Writely,电子数据表制作网站NumSum,以及人们用于编制日程和工作时间表的网站Voo2do。这些使用Ajax技术的网站的出现,已经促使人们开始重新思考互联网和个人电脑之间的关系。事实上,Ajax也许会导致许多基于个人电脑应用的软件应用遭到淘汰,进而导致电脑业中很多领域出现翻天覆地的变化。
几十年来,科技专家一直相信,数据和电脑软件迟早会从桌面转移到互联网。宽带互联网连接日益普及的同时,电脑将会越来越小巧轻便。将来电脑会摒弃笨重的硬盘,并且成为进入互联网和互联网服务器的主入口,让互联网服务器来承担大部分原本由文字处理,电子数据表制作等程序负责的工作,以及存储数据。今天互联网已经使一部分的预测得以实现,然而他还是存在着一些缺点,其中之一就是连接不稳定。当个人电脑等待服务器一点一滴地下载数据时,互联网连接不稳定的情况常会出现。与其说Ajax解决了这一问题,到不如说它把问题掩盖了。Ajax会在互联网服务器和个人电脑之间充当缓冲器,巧妙地令服务非常顺畅,让人以为没有中断。Google Earth网站,即使你的个人电脑还在下载那些更高分辨率图片的中途,你仍然能够滚动屏幕上的鸟瞰图。事实证明,这种细微的区别足以令网上冲浪者的心理改变。Ajax并不能提高数据下载的速度,可是能使等待的过程变得不那么令人沮丧。
到目前为止,基于互联网的应用程序仍然很少,对那些基于个人电脑的软件仍未构成威胁。然而,由于预期电脑软件将会从桌面转移到互联网,微软的管理层已开始感到忧虑。长期以来,微软一直几乎垄断整个桌面软件市场,因此它很迟才看到这一变化来临。Adaptice Path咨询公司的创办人加勒特说:“2001年的反垄断官司之后,主要的竞争对手Netscape消失之后,这几年来,微软好像有点不知所措。”在一份于去年10月被泄露的微软内部备忘录中,微软的首席技术官奥齐也承认了这一点。他在该备忘录中说:“我们公司在网络方面拥有雄厚资源,理应早就可以在开发Ajax的潜力上领先。”
Ajax的冒起令微软感到特别尴尬,因为Ajax中的一些关键技术其实是微软在1997年发明的,可是该公司后来把它们搁置了。不过话得说回来,当时并没有任何人看到Ajax的潜力。Ajax并不是单一的发明物;它由一批电脑程序组成,而这些程序是分别在多个不同的公众领域研发出来的。大约1年前,一些独立软件开发商发现,如果将这些程序结合起来,它们能产生一些很有用的功能。软件公司Oddpost的创办人及编程师戴蒙德通过使用Ajax技术,使基于互联网的电邮程序变得和在桌面上运行几乎没有两样。他说:“1999年的时候,在家里时我使用(微软的)Outlook Express,出门在外时则使用Yahoo电邮系统。我在家里时不使用Yahoo,是因为它的界面比不上Outlook Express。但是我们确信,通过使用Ajax技术,我们能够制造出可以媲美Outlook Express的界面。”2004年,Yahoo收购了Okkpost,如今戴蒙德正在研发一种以Ajax为基础的Yahoo电邮系统。他说:“目前每一家电邮公司都在努力研发使用Ajax的应用程序。”
广受欢迎的图片共享网站Flickr已经采用了Ajax技术,让用户可以及时为他们的照片加入标题和说明、及时把照片放进自己的收藏影集,或者连续地观看照片,Flickr的创办人兼CEO巴特菲尔德说:“我相信,如果没有了Ajax,Flickr不可能像今天这么受欢迎。”Ajax使他的网站变得“更快、更酷、更有直觉力”。
Ajax并非仅仅能够模拟一个桌面系统。他还使网站能够从不同的来源收集信息,然后把信息无缝地呈现在浏览者眼前。Housingmaps.com从Craiglist网站收集待售房屋的地址,然后把这些资料与Google的地图结合起来。News&Bible网站(say4.com)能根据新闻中的关键字词,找出相配的圣经章节。Dealmine.com则从许多来源收集商店的折扣优惠信息。
没有人会认为Ajax从能把桌面软件完全淘汰。现有的浏览器还没有一个能像PhotoShop或Final Cut等桌面程序那样处理复杂的图像或者视频。不过,将来桌面程序可能越来越专注于一些需要强大计算能力去处理的特殊人物。微软有一些主要产品(例如Word、Excel等)很有可能会遇到竞争,受到其他公司的Ajax版同类型产品挑战。面对这种前景,微软的对策是也把Ajax纳入它的产品中。该公司平台策略组的小组经理奥布赖恩说:“既然我们的秘密已经被泄露,而Ajax也正在从一种只有从研发者感兴趣的早期技术渐渐演变成为能够引起一般用户的好奇心,现在我们的任务……就是设法让这种技术能够被尽可能多的用户使用。”他又说,奥齐的备忘录可以说是晨钟暮鼓。如今微软已经推出了一种基于Ajax的绘制地图应用程序,命名为Windows Live Local。微软还正在研发一种基于暂时以Atlas为代号的产品,该公司称,这种新产品将使基于Ajax的编程工作更容易。该公司还在研发Ajax版的Office,一旦研发成功,Word和Excel程序将不再是独立的产品,而是服务。
然而,Ajax之战的第一仗显然只可能在Google和Yahoo等巨头之间发生。加勒特说:“Google已经炮制出了一种美味菜肴。他们利用这些技术,为用户创造更多姿多彩,更平滑流畅的浏览体验。”微软,轮到你出招了!
这项计划将以IBM捐献的源代码为基础,希望让软件开发者运用Eclipse开发工具撰写支持AJAX的全球信息网应用程序。
AJAX的全名是“Asynchronous JavaScript + XML”,是一种撰写应用程序的方法,可丰富网页的互动功能,如此一来,使用者不必常常按屏幕上的更新按钮,网页信息也会时时更新。
此计划获得许多软件公司支持,成员包括IBM、Google、BEA Systems、Red Hat、Borland Software、Novell、Oracle、雅虎、PHP工具制造商Zend Technologies、电子邮件软件公司Zimbra,以及手机软件公司Openwave Systems。此外,Eclipse基金会、 Mozilla Corporation和Dojo基金会也有意加入。
自从GoogleMaps等采用AJAX的互动式软件应用推出后,这一年来,AJAX式的程序开发愈来愈受欢迎。目前市面上已有几种工具包(toolkit),或称架构(framework),用来简化 AJAX的开发过程。Open AJAX计划的目标,是让开发者挑选一种AJAX架构,并与Eclipse软件搭配使用。
IBM先进技术副总裁Rod Smith说:“现在已有许多工具包,我认为会趋于整合。”
Smith预期,一年内,这类工具包的种类可能精简为两种到五种较专门的工具组合。例如,一种AJAX工具包可能侧重于前端网页设计,另一重可能专门用来协助企业应用开发者打造商用的功能。
目前,Open Ajax软件只支持Dojo Toolkit和Kabuki两种工具包。
Smith说:“我们发现,AJAX太难,不容易上手,所以务必降低使用的门槛。我们认为,这一步是好的开始,但要扩大社区,仍需扩充工具。还有许多工作要做。”
最近评论