我正在构建一个应用程序,作者将(希望)使用它来帮助他们,呃..创作东西。
把它想象成一个维基,但只为一个人服务,但更酷。我希望让我的(潜在的)崇拜者尽可能地使用它,所以我正在考虑将它变成一个网络应用程序。
当然不必如此,没有与其他网站的集成,没有社交功能。然而,它涉及在表单中输入信息,因此对于快速构建来说,网络可能是最好的。
但是,我真的不想自己主持。我买不起,但主要是使用它的人可能不希望他们的数据存储在其他地方。这是关于他们正在编写的内容的私人信息,我不希望他们相信我,因此我正在考虑将其作为一个胖客户端应用程序。
这就是问题所在,如何使主要关注表单数据输入的应用程序易于潜在用户(是的网络应用程序)使用,但也可以离线使用,以便他们知道他们可以完全控制自己的数据(是的厚客户端应用程序)。
我看到以下解决方案:
- 将它构建为一个胖客户端 Java 应用程序,并在网络上运行一个精简版作为一个小程序,人们可以在下载完整的东西之前玩这个小程序。
- 将其构建为用于在线的 Flex 应用程序和用于离线的 Air 应用程序(基本上相同的源不同的构建脚本)。
- 将其构建为标准的网络应用程序(HTML、JS 等),但有一个可下载的版本,以某种方式完全在他们的计算机上运行该网站。它根本不会触网。
忽略 1 和 2(我正在分别研究它们),我认为 3 将涉及:
- 打包一个安装,其中包含一个微型网络服务器,上面有我的代码,准备运行。
- 将数据库从 mySQL 之类的东西重新映射到 SQLite 之类的东西。
- 创建某种运行服务器并将浏览器打开到正确位置的便利应用程序,可能使用诸如Prism之类的东西来隐藏整个浏览器。
那么,你以前做过这样的事情吗?
如果是这样,您遇到了什么问题?
最后,还有其他我没有想到的解决方案吗?'
(另外,Joyent Slingshot是对另一个问题的建议,但它是 RoR(我没有经验),我 99% 确定它不能在 linux 下运行,所以它不适合我。)