制作数据库驱动的 Adobe AIR(桌面)应用程序的更好选择是什么?
- 将 PHP+MySql 与 AIR
或 - 使用 SQLite
如果我选择 SQLite,那么我不能将我的代码重用于在线应用程序。
如果我选择 1,我必须阻止用户机器上的几个端口号。此外,我使用 XAMPP 为用户提供 PHP 和 MySql,因此只要 XAMPP 正在运行,它就会打开一个命令窗口。而且,用户对那个窗口的用途感到困惑?它使最终用户体验有些混乱。
我肯定会使用 SQLite 作为它包含在 Air 中的。
我可以建议吗?分两部分编写代码。使用 JSON 提要填充自身的 UI,以及提供 JSON 数据的 API。在将应用程序移植到 Web 时,您可以使用相同的 UI,但使用重写的 API。
无论您做什么,都不要在程序运行时打开命令窗口。如果您这样做,您的客户将像没有明天一样卸载。
至于 mysql vs sqlite,标准方法是 - 如果它远程通信,请随意使用 mysql,但如果您在客户端安装数据库,则应使用嵌入式独立数据库(sqlite)。
您希望您的应用程序有多复杂以至于您无法使用 sqlite(除了无法重用您提到的某些代码)?
如果 XAMPP 对您的客户端来说太混乱,请将 Apache 和 MySQL 安装为独立的。它本质上是一样的,你可以更好地控制 Apache/MySQL 中运行的内容。另外,您不会看到烦人的命令窗口(不过,老实说,我不记得在运行 XAMMP 时无法最小化到托盘的窗口)。
我的建议是使用 Sqllite 作为本地数据库,并编写一个同步 API,将本地 sqllite 数据库与服务器端数据库-MySql 同步。因此,根据您的客户,您可以使用该系统。如果客户端是独立的,那么 Sqllite 将服务,否则 MySql 将服务。您唯一需要决定的就是如何使用同步 api。