我们正在构建一个需要大量图像处理的基于网络的应用程序。我们希望这种处理负载尽可能多地放在客户端上,并且我们希望尽可能多地支持平台(甚至是移动设备)。
是的,我知道,一厢情愿
这是信息:
图像处理是对一些数据进行光栅化处理。想像从 PDF 文件创建 PNG 图像。
我们的服务器能力不强。所以客户端处理有点必须。
所以,我们正在考虑:
Flash - 应用最广泛,但据我所知,其开发工具乏善可陈。 (目前不支持 iPhone/iPad)。
Silverlight - 允许我们使用 .NET CLR,所以一个很大的++(很多代码都在 .NET 中)。但不支持大多数手机(传闻 future 支持 android)
HTML5 + Javascript - 可能是最“便携”的选择。问题是必须用 Javascript 重写所有图像处理代码。
有任何可能有帮助的想法或架构吗? 澄清:我不需要进一步了解哪些库可用于 Silverlight 和 Javascript。我的困境是
- 选择 Silverlight 意味着不支持大多数手机
- 选择 Flash 意味着我们必须重新开发大部分代码并且不支持 iPhone/iPad
- HTML5 + Javascript 我们必须重新开发我们的大部分代码并且尚未在所有浏览器中得到完全支持
- 二选一(Silverlight + Flash)成本太高
我可能遗漏了任何现成的或绝妙的想法/替代方案吗?
最佳答案
这是软件架构师一直遇到的问题。按照惯例,没有理想的解决方案。您需要选择您的企业最能接受的折衷方案。
总结一下您的问题,您的大部分图像处理软件都是用 .NET 编写的。您希望在移动设备的客户端运行它,但 .NET 在移动设备上的渗透率有限。具有更高渗透率的替代方案(例如 Flash)将要求您重新编写代码,这是您负担不起的。此外,这些替代方案在 iPhone/iPad 上不受支持。
理想情况下,您需要一种在大多数现有平台(包括 iPhone/iPad)上运行所有 .NET 代码的方法。我可以自信地说,目前不存在这样的解决方案 - 没有您忽略的“银弹”答案。
那么您需要在哪些方面做出妥协?在我看来,即使您在闪存中重新开发,您仍然会错过一个主要市场(iPhone)。无论如何,重新开发软件的成本都非常高。
这是您问题的最佳解决方案 - 您需要在“客户端执行”约束方面做出妥协。如果您执行服务器端,您可以保留现有代码,还可以部署到几乎每个移动客户端,包括 iPhone。
您说您的服务器能力有限,但与软件开发成本相比,服务器处理能力很便宜。事实上,外包您的服务器组件并只为您使用的东西付费并没有那么昂贵。您的应用程序一开始很可能只有很低的渗透率。随着业务的增长,您将有能力升级服务器容量。
我相信这是解决您问题的最佳方法。
关于html - 客户端图像处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2174504/