使用Web技术创建桌面应用程序

时间:2010-09-11 15:59:53

标签: javascript html web-applications

最近,网络浏览器改进和实施新技术(例如HTML5)的速度似乎已经大大加快。同时,用于开发Web应用程序的工具,例如, jQuery或无数的Web框架也使Web开发变得更加容易。

我们现在是否有必要使用网络技术开发纯粹的单用户桌面应用程序?假设我们可以将最新的浏览器与我们的应用程序一起安装,我们不必担心与旧浏览器的兼容性。

5 个答案:

答案 0 :(得分:3)

IMHO基于Web的应用程序是未来。目前,有些应用需要很长时间才能上网,比如adobe产品。在我们达到这一点之前,网络仍需要更多的进展。

Web浏览器的时间落后,浏览器共享的浏览器份额太多,不支持(或支持不支持)HTML5,CSS3等功能。

如果您不介意处理跨浏览器的麻烦,那么云技术就是您的选择。云应用程序客户端的最大优势在于,他们可以在任何地方访问它而无需下载任何内容。

但如果您指的是将基于网络的技术下载到用户桌面,那么您可以使用adobe air:)

答案 1 :(得分:2)

我个人在网络技术方面做的一切都是我在桌面应用程序中所做的。浏览器差异带来了很多痛苦。它绝对是内部应用程序的方式。外向应用程序可能存在的问题是你必须假设人们没有关闭javascript。

修改

如果您希望使用javascript等网络技术实际开发桌面应用程序,adobe air可能是最佳选择

答案 2 :(得分:1)

没有。这不是一个可以到达的点,就这样。出于安全和隐私的原因,Web应用程序总是总是比桌面应用程序更受限制,更不用说跨平台敏感性,实施质量以及直观的视觉和设计要求。

因此,除非您的应用程序可以处理一些非常严重的限制(提升权限的可能性为零,可能限制访问文件系统,如果有的话,没有文档交换,速度限制,使用计算能力的限制,......) ,这根本不是一个现实的方法。

修改

通过澄清“视觉和设计要求”一点:用户通常希望他们的桌面应用程序具有一定的外观和感觉,在多个平台上符合这种外观是一种绝对的痛苦;因为无论你去哪里,一切都有不同的大小。如果您还没有计划支持多个平台,那么首先有什么意义呢?

换句话说,最终你可以使用90%的开发时间来维护样式表,使每个平台看起来都很清晰;或者在所有平台上使它变丑(参考:Java)

答案 3 :(得分:1)

是的,我们现在正处于可以完成的阶段,除了总是有问题的IE。在使用XUL和Prism的Firefox中已经有一段时间了。我看过几个应用程序展示了你所说的功能。他们在所有现代浏览器中工作。当然,他们都不能在IE中工作。 IE总是阻止网络。

答案 4 :(得分:1)

不 - 您可以为用户提供三种特定的体验,并且许多应用程序中的原因都不会混淆它们

轻量级 - 纯网络,客户端只需要能够运行浏览器 - 这可以进一步细分为移动客户端,在受到挑战的环境中运行的客户端(低CPU,低带宽等)

丰富的互联网应用程序 - 更重量级的Web应用程序 - 不再是传统的asp.net(我希望)因为应用程序击败了通信渠道(viewstate)和主机服务器(通常回发会导致大量代码在服务器上运行,仅用于3行“真实”功能) - 我建议jQuery用于它的广泛竞争领域,Silverlight用于更有限的游乐场,但无可否认的丰富经验,并且想知道什么时候HTML 5的承诺将真正进入市场

胖客户端应用程序 - 自定义代码,对文件系统的访问,3D渲染,真正需要本地代码以及访问本地资源的所有位

现在就说了,你的问题的正面旋转与你的应用程序的分解有关 - 注意你的层之间的分离,特别是关于你的表示层和它所讨论的逻辑层之间的分离 - < / p>

1)使用全局通信机制 - 错误,这意味着REST,因为任何人都可以说 - 所有客户都可以使用它 - SOAP不是全球可用的

2)不要单片,面向服务 - 打破你的功能,以便直接访问特定的位 - 这意味着jQuery和富客户端可以轻松地在需要时轻松访问他们需要的位 - 你想要的处于你不关心客户是谁/什么的位置(对于轻量级的你,对于其他所有人),你创建一次服务,每个人都或多或少地使用它

3)使不同媒体/交付类型/使服务统一的演示文稿 - (也就是说,对于富客户端,有时需要将服务处理卸载到客户端以节省服务器并提高可扩展性)