RIAEasy之整体简介

RIAEasy受到Delphi/Lazarus启发,结合AMD和dojo的多继承,提供服务器端js支持。它是一个面向对象的工具,支持异步开发,旨在整合前后端,提供可视化设计和动态页面模块管理。RIAEasy当前版本0.7,已实现web MIS应用的可视化开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   作为RIAEasy的主创,笔者深受多年使用 Delphi/Lazarus 的影响,在构思 RIAEasy 的整体构造时,很自然地引入了很多看上去是 Delphi/Lazarus 的思想,比如:
RIAEasy中的页面模块(.js),相当于Delphi/Lazarus 中的.dfm和.pas。
RIAEasy中的页面模块组装函数 rias.filer(),相当于Delphi/Lazarus 中的TFiler。
RIAEasy是面向对象的,所有的控件都是对象,继承于Destroyable对象,相当于Delphi/Lazarus中的TPersistent。
RIAEasy中的数据集控件Store,相当于 Delphi/Lazarus 的 TDataSet/TDataSource。

   等等……

   然而,RIAEasy毕竟是针对 RIA/SPA 开发,也有自己的特色,比如:
模块都是 AMD 的。
基于dojo的declare,RIAEasy中的对象是多继承。
同样的,基于dojo的原因,RIAEasy是异步的。

   等等……

   作为面向RIA/SPA应用的开发工具,RIAEasy很自然地需要整合服务器端和前端作为一个整体进行开发。

   传统上,web应用的服务器端多采用java和php,然后,随着Node.js和Nashorn的推出,服务器端采用js已经成为可能。出于提高整体开发效率,降低开发成本的考虑,RIAEasy的服务器端决定采用js,并同时支持Node.js(+express)和Rhino、Nashorn(+jetty)。
   在众多的js框架中,比如:dojo、yui/extJS、jquery 、mootools等,dojo具有最为完整的类库,而不仅仅只适用于前端,所以,我们最终选择了dojo作为RIAEasy的基础框架。

   Maqetta,是一个基于dojo的开源在线可视化设计工具,不过已于2013年3月停止了发展:http://maqetta.org/news。RIAEasy最初打算借鉴maqetta的思想,但是深入了解后,发现其主要还是针对HTML进行设计,且主要是适用于概念、原型设计,并不适于实现RIAEasy的发展目标,于是放弃了借鉴的想法。

   使用RIAEasy开发出来的产品,应该能够直接进行生产部署,故而RIAEasy不只是一个界面设计器,还需要提供一套完整的运行期动态页面模块和控件实例的组合、拼装机制,以及全局运行环境;此外,由于要支持SPA,故而RIAEasy必须实现一套运行期动态创建(create)、销毁(destroy)机制,以保障在页面销毁的时候能够正确地释放内存资源。

   因为RIAEasy自身就是一个可视化设计环境,完全可以不用通过HTML的可视化设计来制作展现界面,故而RIAEasy设计出来的内容以.js输出并保存。虽然用js创建dom结构比用HTML创建有一些性能的损失,但这个损失实际应用中很小,可以忽略,而其好处却很明显:界面元素灵活、可控,逻辑清晰;特别的,支持非dom元素,将来可以兼容canvas元素、控件。

   RIAEasy基于dojo框架,理论上兼容dojo的各种类,以及其他基于dojo实现的类、包,比如gridx、cbtree。为了更好地保持RIAEasy自身的完整性和独立性,我们并没有完全直接地使用dojo的类,而是包装了一层进行隔离。此外,实际开发过程中,我们发现dojo中大多数类、控件并不能很好地支持运行期动态创建、销毁,所以,我们对dojo的部分类、控件进行了扩展,包括Destroyable、_WidgetBase、各种Store,并将对象实例的 Owner 和 Parent 分离处理,以保证运行期的正确销毁。

   RIAEasy目前的版本为0.7,初步实现了web MIS应用的可视化开发,开放站点为:http://www.riaeasy.com:8081
RIAEasy - A lightweight, modular, mobile-ready, data-driven for single-page-application.模块化、轻量的富客户/单页应用框架。 RIAEasy是一个单页 Web 应用 (single-page application 简称为 SPA)设计平台。旨在实现RIA/SPA应用的快速、高质量开发,实现模块化开发,实现移动、桌面系统统一的跨浏览器开发。可以使用RIAStudio在线可视化设计器。 RIAEasy基于webComponent概念设计,包括一整套基础控件,具有良好的运行期动态适应性;实现了完全的前端渲染,数据驱动,前后分离,无需后端服务器生成页面;实现了主题(theme)分离,可以自由换肤;同时支持桌面和移动端。目前已经基本可以替代EasyUI、ExtJS(Sencha),特别适合于webMIS和webApp应用。 RIAEasy基于dojo构建(dojo 1.10),支持HTML5、CSS3;采用AMD(异步模块定义)加载,封装并扩展了dojo、dijit和部分dojox模块,封装并扩展了dgrid、gridx和Eclipse orion 7的在线编辑等控件。 RIAEasy是面向跨平台的单页应用设计平台,与传统的网页设计模式差别较大,反而更接近传统的C/S桌面应用设计模式。尽管RIAEasy也可以用来快速设计传统的网页,但这显然不是其真正的优势。正如RIAEasy的名称已经表明的,这是一个用来做RIA的工具。如果您做过C/S桌面应用,用过Delphi、C Builder、VisualStudio这些工具,那么就更容易理解RIAEasy。 标签:RIAEasy
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值