1

我的老板有远大的梦想。

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

与他交谈的每个人都在不断向他推广 HTML5/JavaScript,以实现一次编写、到处运行(ish)的解决方案。

我对这种环境没有太多经验——使用 JavaScript 从数据库中获取数据,用于 JavaScript 的 ORM 等等。我可能会超前。

在尝试制定策略以尽可能接近他的目标时,我应该注意哪些事项?以下是我的假设和问题:

期望/假设

  1. 我希望我将不得不使用似乎随 HTML5 和本地存储而兴起的“嵌入式”或本地数据库之一。
  2. 我希望我还必须找到某种方法将这些数据与位于某处服务器上的数据同步。
  3. 我希望这些数据的同步必须是自制的。
  4. 我想要某种 ORM 来使处理数据更容易。
  5. 我预计会遇到与本地数据库大小相关的各种奇怪的事情。
  6. 我希望必须在客户端运行所有应用程序的代码,因为它们应该能够在没有互联网连接的情况下运行应用程序。

问题

我在做什么?

我有点不知所措,甚至不知道从哪里开始。

为了把它变成有可能得到正确/错误答案的东西,这里有一些有助于了解的事情:

  1. HTML5/JavaScript 方法是否听起来不错(考虑到偶尔连接的目标、移动设备和桌面)?
  2. 我应该寻找什么样的框架和工具来简化应用程序的开发?
  3. 他是不是要求太多了?

提前感谢您提供的任何建议/指导。

按请求:应用程序做什么? 该应用程序(或多或少)是可配置产品的报价/定价应用程序。有一堆产品(底柜、壁柜等),一堆标准的可配置选项(木头、饰面、门样式),还有一堆(不太标准的)对它们的修改(减少深度、增加高度、 ETC。)。

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

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

等等,等等,等等,每个制造商都非常独特。

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

在我们当前的模型中,应用程序在用户的 PC 上运行,数据在应用程序调用的 Web 服务器上。他想把这一切变成一个偶尔连接的移动应用程序,我们也可以在桌面上使用。

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

4

1 回答 1

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

问题更新后编辑

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

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

于 2011-11-10T16:35:36.417 回答