科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件RIFE前景光明

RIFE前景光明

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

作者:builder.com.cn 2007年4月13日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

很显然,RIFE的设计目标是尽最大的可能消除Web应用程序开发中令人厌烦的工作,让开发人员尽可能地把精力放在使其应用程序与众不同的进程和功能上。

可用的东西很多,你可以在RIFE的Web网站上找到关于它们的信息,但是其中最有趣的功能有:

  • 配置极其简单——所需要的XML文件的数量最小。RIFE具有“仓库”的概念,也就是说所有应用层的配置文件都被保存在了里面。
    RIFE的仓库里包括:
    • 一个用来定义应用程序组件如何互联在一起的“网站“XML文件。
    • 一个预先填有8个数据库的“数据源”文件,RIFE直接就可以使用的这些数据库(包括Oracle、PostgreSQL、MySQL和Derby等)。
    • 一个支持驻留在内存之中的用户身份验证系统(还提供了一个由数据库支持的系统)的“用户文件”。
    • 一个“参与者”文件,你用它来告诉应用程序框架在应用程序运行的时候希望激活哪些子系统(包括“cron”类型的任务调度程序和一个电子邮件查询系统)。

除了代码之外,以上就是你一般要在RIFE里完成的配置(你当然可以有更多的XML文件,如果你决定把自己网站的互联描述分割成更小的部分的话)。这是一个与绝大多数框架都不相同的重要变化,这让开发人员能够把主要精力放在必须编辑的XML文件上。

  • 无处不在的组件——你用RIFE创建的几乎所有东西都可以被当作组件重新使用。因此这意味着如果创建一个页面、显示一个日历,你可以将这个页面重新用作嵌入式组件放到另一个页面上,你只用在另一个页面的模板中调用这个组件名就行了。光这一个功能就节省了我数百小时重新编写代码的时间,并让我能够为我的应用程序开发一整套通用的GUI元素。
  • 数据库保持能力——Hibernate中80%有用的东西都和这有关,而安装中只有5%。一般来说,RIFE允许你在规划Java Beans(一个简单的、带有setter/getting方法的Java类)的时候定义数据,生成一个单独的文件,用以描述需要应用到对象成员的约束(元数据)——例如“用于名必须至少包括6个字符,但不能超过20个”。RIFE会在你的数据库里实例化表格,向你提供一个查询管理器,用来处理透明的管理数据所需要的所有常用函数。
    RIFE还有一个CRUD(创建-读取-更新-删除)功能,它能够自动地创建基本的数据管理窗体,后者与Rails上Ruby的“支架”能力类似。
  • “无逻辑的”HTML模版——与PHP,甚至是JSP不同,RIFE不会同时混合命令和表示——但是你可以利用编程同时控制表示,方法是改变调用模板的Java代码的模板变量的值(通过“Block”改变模板和“Value”部分来进行更加精细的变化调节)。
  • 灵活的内容管理框架——它可以被用来保存任何东西,从PNG图片到视频文件。它会进行版本记录,因此对内容的任何改变都可以被追踪。
  • Web继续——这一特性让RIFE应用程序能够支持多个代码执行路径,这样用户就能够在处理表示多个决定路径的窗体和过程时向前。例如,想象一下查询飞机票价,你可能最后会碰到“付款”按钮,并意识到你需要更正前面几页的一个错误;“继续”允许你点击“退回”按钮,而不会丢失你已经在受到影响的页面中输入的所有数据。RIFE的“继续”还提供了一个确保数据不能被多次提交的功能,这样一旦你点击了“付款”按钮,第二次点击它也不会从你的信用卡上两次扣款。
  • Web服务——RIFE本身就支持对Web服务的访问,例如基于SOAP和ReST的数据服务。
  • 容器外测试——Web应用程序的最大一个问题是,要进行调试和错误检查,你必须运行它们。当然,你随后就会碰到与你的代码所赖以运行的应用服务器有关的各种复杂问题,你需要单步调试大量的代码才能够找到真正想要测试或者调试的一小段代码。RIFE让你能够使用标准的Java单元测试工具在服务器之外测试你的应用程序。
  • 约束——RIFE具有基于约束的元数据能力,这意味着你能够指定数据结构的参数,框架会自动的使用这些结构来确保输入到系统里的数据符合你指定的参数。这些约束可能会很简单(比如,“用户名字段不能为空,也不能超过20个字符”),或者利用自定义的限制设置得非常复杂。

以我的观点看来,使得RIFE与绝大多数(如果不是所有的话)其他的框架不同的原因是,RIFE框架是一个全功能的、拿来就可以使用的Web应用程序。标准的RIFE发行版叫做“RIFE JumpStart”,它是一个基本的应用程序,随时都可以被用户自定义,在一个小时之内他就可以创建一个相当实用的应用程序(RIFE的Web网站上甚至还有一些很有意思的演示录像)。

但是,对于RIFE内置的所有功能,框架并没有阻止你在自己的应用程序里使用甚至是嵌入其他的Web技术。很多其他的技术已经被集成到RIFE里,包括非常眩目的、基于Flash的OpenLaszio,甚至是像DWR一样的AJAX工具包。

使用RIFE编写Web应用程序的感觉与用大多数其他Java框架编写程序的方式有很大的不同。正如上面提到的,它很像是在使用一个事件驱动的桌面应用程序框架。在大多数情况下,你不用编写很多的基础结构代码——也就是在编写应用程序之前你需要编写的东西。RIFE提供了应用程序的各种骨架,你只需要加入你的功能,然后告诉RIFE它们应该如何连接在一起来控制应用程序的流程就行了。

使用RIFE的一个有意思的方面是被我认为很陡的遗忘曲线:尤其是,我不得不停下来试图编造一些理由来尝试把各种处理塞到我的Web窗体处理程序里——RIFE会为你完成大多数的窗体处理(事实上,它会即时把你的HTML编译成为Java类),然后给你返回所期望的数据——或者自动地突出显示错误或者用户需要在提交之前就必须更正的错误数据。一旦我恢复了自己根深蒂固的、想要编写超过自己所需代码的欲望,并学会把精力放在业务逻辑上,我就能够完成海量的工作。

这个入门文章写得要比我原来计划的长,因此我要以建议RIFE应该进入任何打算开发基于Web的应用程序的评估列表来结束本文:它速度飞快,难以置信地强大,很容易上手,而且很快就能够看到丰硕的成果。

下面提供了一些获取RIFE以及用其开发的应用程序资源的链接。当我们的应用程序编好之后,我会再讲讲关于RIFE的更多内容,以及我用它开发的非常强大的应用程序。

相关资源

RIFE框架
Bla-bla列表(一个共享的Web待办事项列表系统)
IRC工具机器人(用RIFE编写一个IRCbot)
MoochSpot(一个用于追踪与你的朋友共同花费(或者债务)的网站,它是由来自Facebook的开发人员开发的。)

文/David Spector

责任编辑:德东

查看本文国际来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章