移动/桌面 - 什么策略有意义

时间:2011-11-10 15:57:14

标签: javascript html5 mobile occasionallyconnected

我的老板有很大的梦想。

他想编写一个在桌面和移动设备上运行的应用程序。此外,他希望偶尔连接它(可以在没有互联网连接的情况下运行)。应用程序将严重依赖数据库中的数据。

他所谈论的每个人都在不断地推动HTML5 / JavaScript,以实现一次性运行 - 无处不在(ish)解决方案。

我在这种环境方面没有太多经验 - 使用JavaScript从数据库获取数据,使用JavaScript的ORM以及类似的东西。我可能会超越自己。

当我试图通过策略尽可能接近他的目标时,我应该注意哪些事情?以下是我的假设和问题:

期望/假设

  1. 我希望我必须使用其中一个似乎与HTML5和本地存储一起出现的“嵌入式”或本地数据库。
  2. 我希望我还必须找到一些方法来将这些数据与位于某个服务器上的数据同步。
  3. 我希望这些数据的同步必须是自制的。
  4. 我希望有一些ORM,以便更轻松地处理数据。
  5. 我希望遇到与本地数据库大小相关的各种奇怪的事情。
  6. 我希望必须在客户端运行所有应用程序的代码,因为他们应该能够在没有互联网连接的情况下运行应用程序。
  7. 问题

    我在做什么?

    即使知道从哪里开始,我也有点茫然。

    要把它变成有可能有正确/错误答案的东西,以下是有助于了解的事情:

    1. HTML5 / JavaScript方法听起来是一种不错的方式(考虑偶尔连接,移动和桌面的目标)?
    2. 我应该考虑使用哪种框架和工具来最简单地开发应用程序?
    3. 他要求的太多了吗?
    4. 提前感谢您提供的任何建议/指导。

      按要求:应用程序有什么作用? 该应用程序(或多或少)是可配置产品的报价/定价应用程序。有一堆产品(底柜,壁柜等),一系列标准可配置选项(木材,饰面,门式),以及一系列(不太标准)的修改(减少深度,增加高度,等)。

      根据您选择的标准可配置选项,它会更改每种产品的基本价格。然后,您可以添加修改(这也是有代价的)。

      大部分应用程序已经存在(尽管是没有本地存储数据的WPF应用程序)。它的设计使其可以销售给制造这些可配置物品(主要是厨柜等)的不同制造商。每个制造商都有自己的规则,关于他们提供的木材/饰面/等等,以及他们如何确定产品的基本价格(也有所不同)以及如何混合/匹配不同的木材/饰面等。

      Blah,等等,等等,每个制造商都 非常 唯一。

      为了解决这个问题,我们创建了一个基于公式的方法,一旦你设置了他们的产品/选项/等,你就可以编写一些公式来定义它们之间的关系,以及如何定价它们。

      在我们当前的模型中,应用程序在用户的PC上运行,数据位于应用程序调用的Web服务器上。他希望将整个事情变成偶尔连接的移动应用程序,我们也可以在桌面上使用它。

      有很多与之相关的数据,因为任何制造商的数据都将包含图像,描述,注释,成千上万的产品/修改以及大量有关它们的信息(宽度,高度,深度,门数等)

1 个答案:

答案 0 :(得分:1)

  1. HTML5 / JavaScript方法听起来是一种不错的方式(考虑偶尔连接,移动和桌面的目标)?
    • 是。 JavaScript可能是继续这样做的方式,但是如果你还不精通JavaScript,那将是不容易的。大型应用程序是JavaScript中的野兽,特别是在移动设备上。
    • 我对客户端数据库存储知之甚少,但保持服务器和客户端数据库同步几乎肯定需要AJAX,以及XML或JSON转换。
    • 考虑客户端上数据的安全性和大小(客户端是否可以访问其计算机上存储的所有数据?)。
  2. 我应该考虑哪种框架和工具才能使应用程序的开发最简单?
    • 我将jQuery用于所有DOM操作,事件挂钩和AJAX。另外,我使用许多其他功能/插件来进行其他思考。我强烈建议你去看看。
    • Firebug(< - 必须拥有)
  3. 他要求太多了吗?
    • 无连接方面可能太多了。如果将编码时间加倍,我不会感到惊讶。
    • 您可能希望提供有关应用程序功能的更多信息。如果它是一个巨大的UI重型CMS,这个项目可能需要数年才能完成。但是,如果它只是一个Nerd Dinner - 像应用程序,它应该不会太糟糕。
  4. 问题更新后修改

    我会首先使用移动设备测试客户端数据库方法。您可能会遇到与环境(Android浏览器,Mobile Safari)无法预料的限制(数据传输速度,数据大小)。当您拥有互联网连接时,何时 更新,也是衡量工作量的重要因素。通过测试客户端数据库限制可以获得这些问题。

    其余对我来说似乎相当直截了当。祝好运。 =)