针对公司应用的特点,近期领导提出了新的开发思路,建议超复杂的前端交互控制页面用Java Applet实现(这里仅方向,同指.net winform、pb plugin)。之前对Applet的开发了解不多,趁机搜学了一下。有了一些想法,觉得虽然可能可以避免用js来实现复杂交互的困难程度和开发效率问题,但是,也不是没有问题。且听下面分析。另外还有一种公司去年开始试用引入的工具,supcan。
下面就针对它们做一个简单的探讨。
(一)Java Applet
1、我们之所以想用它,是为了解决js开发效率低等的问题,是希望利用cs开发的优势来简化前端复杂交互的开发工作。
我们知道,Applet是有安全限制的。Applet只能通过网络通讯将数据写入其宿主机上的应用程序中,由应用程序完成宿主机上的文件写;Applet不能通过套接字与非宿主机进行网络通讯,所以,我们需要解决Applet与业务逻辑层之间的通信问题,而且这个通信是受限的,需要考虑特定的方案。对于复杂的前后数据交互,或者不同的服务器群集配置环境,处理它们之间的数据通信可能也并不是很便捷的一项工作,这样的局面是不是就会跟原本简单化的愿景行远了?。
另外,Applet不能在运行它的主机上进行正常的文件操作,(有很多业务操作有“文件导入”功能。数据签名?)以及其他安全受限,可能带来其他不便?
还有session如何处理?
另外,也有一定的开发成本。一方面这里仍然有技术问题需要解决。而且开发人员对applet开发的熟悉、深入和经验的获得又是一个过程。未必见得比已经积累了多年经验的js开发来得效率更高。
Applet下载的速度?
网上能搜到的、周围能了解到的应用实例很少,这种应用是否可靠?性能如何?能不能达到预期的目标?会不会有其他不可预知问题?
(一) C# WinForm
有applet类似的问题。还听说会有内存泄露的问题。
(二) Pb plugin
有applet类似的问题。相较之下有datawindow的优势。但是,通信接口的问题更大。
(三) Js
我们就是针对它来的。虽然复杂,但是也有一些好用的框架,dojo、jQuery、exts,当然它们只会带来更多的js。但我要想彻底摆脱这个家伙是不可能的。
(四)supcan
这个,是一个认识的技术高手个人开发的控件,已经商业化。去年开始试用起,是我一直在跟这个东西,之后也可以说提了很多的需求,版本从3或4到了36,功能更加丰富。我觉得对于web应用,它还是能够从很大程度上带来开发的便利的,事实上它就是为了解决web客户端复杂的交互问题而生的。虽然它还不够华丽,是的,至少对于商业产品而言,它的“样貌”还不够华丽,“阵容”还不够强大,(楼工说在他自己眼里已经很华丽了,我其实是很认同的,呵),可是,我认为它的内在还是有着很优美的一面的,相对前面提到的工具而言,它也可以有方便的类似datawindow的grid,也有仿pb的freeform,还有较强大的report,这些控件本身可以帮我们做很多前端的控制,也可以提供额外的API供调用,还可以继续丰富;同时,它已经提供了前后台通信的协议,没有session的问题,而且依然是彻底的web(用和不用都很清爽,没有什么纠缠不清的瓜葛),而且轻便、部署方便,尤其在思考了以上种种、梳理了思路之后,我更觉得它是一个不错的选择,js不可能抛弃,那么用supcan可以帮我们解决一些复杂交互界面的问题。
(五)Flex
这个是最后选定的。看起来还不错哦,前端开发方便,有c的优点,不用考虑交互(以我个人这么多年的web开发经历,我认为光这一点就为web开发者减去很多痛苦),跟java通信有完善的机制…如果能自定义一套适应具体业务需求的完备的组件,公共代码封装得更全面完全的话,用起来就超爽啦…,缺点是对开发机器性能要求很高,building workspace的时候要有耐心,哈