Web Desktop App

早上忽然想到一种桌面应用的模式——用Web方式实现。

从表现方式上说,类似.net的XAML,但是基于现有技术实现,并且可以不受平台限制。比如可以用这样的方式实现一个资源管理器这样的东东。甚至可以按这种模式开发出一种类似于DesktopWebOS这样的东东,挂在不同的OS平台上。

基本的结构是这样:

用TurboGears (或者简单一点就直接用CherryPy)一类的技术实现一个WebServer,把本地应用的功能全都做到这个WebServer中,前端用 Browser通过Ajax实现交互。因为CherryPy的实现是一个单独的应用程序,并且自带HttpServer功能,等于就是用浏览器操纵一个非 GUI的后端应用程序。

至于安全性的问题也很简单,因为这个Server是以当前用户身份运行,与一般的用户程序一样——使用方法就像 TurboGears本身的Toolbox功能那样,运行应用程序时启动WebServer并自动打开对应的链接。访问安全性的问题可以通过限制为本机访 问的方式实现,如果想要提供远程访问的功能,可以用Apache做一个https代理——当然,服务端的程序的运行权限同样可以指定为相应用户身份运行 (Windows可以做成服务应用,并以指定用户身份运行——当然对于Windows来说,这种安全性措施没有什么必要,偷笑)。

剩下的问题就是:开发难度比一般的应用程序大不少,特别是Ajax部分。

补 充:以上纯属瞎想,其实我现在对Ajax已经有点不满意了,因为Over ajax的情况已经越来越多。虽然像www.netvibes.com的ajax效果超级酷,但是过于复杂的JS代码使得程序的性能和稳定性都很成问题。 还有,我之所以不用抓虾,就是因为我订阅的RSS比较多,会让它的JS程序在Firefox下近乎死机。

或者需要有比Ajax更好的通用方案。