不要将自己完全局限在现有技术的能力范围内,来跟我一起预测一下未来技术的发展趋势,看看一种理想的RIA技术应该满足哪些条件。我先来开个头。
1. 与服务器的交互方式必需首先支持异步的交互。异步的交互才不会打断用户的操作。当然也可以同时支持同步的交互。
2. 所基于的新的媒体格式必需是基于文本的,这样的格式才可能对于搜索引擎友好。
3. 要能够充分支持REST风格的架构设计,允许开发者充分利用所有HTTP协议的基础设施(各种HTTP方法、HTTP头信息、HTTP Cookie)。
4. 要有足够好的性能。
5. 要能够支持增量的呈现(incremental rendering)。
6. 要具有丰富的UI组件库。
7. 要基于动态类型的脚本语言,例如JavaScript或ActionScript,而不是C#这样的静态类型语言。
8. 要有90%以上的客户端部署比例。这样才能保证很好的Web可访问性(Web Accessibility)。
9. 要能够跨平台,即:跨浏览器和操作系统。
10. 要有较为强大的开发工具。
11. 开发和部署的成本不能太高。例如,假如Flex开发的应用部署时必须要使用Flex服务器,一个license买5万元,那么在国内就不可能有很多人用。
12. 这种RIA技术不应该造成对于服务器端技术的厂商锁定。假如我使用WPF做开发,客户端应用无法与服务器端的Java或者Ruby应用相互配合,而必须要使用M$的服务器产品,那么我就不会选择使用WPF。
目前Ajax、Flex/Apollo、WPF都没有满足上述所有的条件。