【发布时间】:2010-11-07 21:21:10
【问题描述】:
我经常听到人们称赞 Web 应用程序(相对于桌面应用程序)的便携性。事实上,使桌面应用程序在多个操作系统上可用是很困难的。但是,我认为 Web 应用程序必须同样好地处理可移植性问题,只是在浏览器之间而不是在操作系统之间。还是做一个跨浏览器的web应用程序不难?
【问题讨论】:
标签: desktop-application portability
我经常听到人们称赞 Web 应用程序(相对于桌面应用程序)的便携性。事实上,使桌面应用程序在多个操作系统上可用是很困难的。但是,我认为 Web 应用程序必须同样好地处理可移植性问题,只是在浏览器之间而不是在操作系统之间。还是做一个跨浏览器的web应用程序不难?
【问题讨论】:
标签: desktop-application portability
【讨论】:
当然,编写 Web 应用程序存在跨浏览器兼容性问题,这是对的。但是,与桌面应用程序开发一样,您可以使用一些框架和库来为您处理这个问题(例如 JQuery、Google Web Toolkit、Yahoo UI)。
Web 应用程序更简单的一个突出特点是跨平台具有一致的外观和感觉。浏览器都使用 CSS 并且通常具有外观一致的表单元素(或将使用适合平台的元素)。对于桌面应用程序,更难实现跨平台的原生外观。将 Java 用于跨平台 GUI 的一大批评是,即使您使用平台的外观和感觉,它也不够原生。我不确定像 Qt 这样的库在这方面是否更好。
【讨论】:
请记住,对于 Web 应用程序,有两个级别的可移植性。
首先也是最重要的,浏览器的可移植性。但是如果应用程序必须在更多的网络服务器上运行,那么还有服务器端的可移植性。大多数时候,您决定 linux 还是 windows。但还有其他问题(例如 php 版本要求)。
【讨论】:
这完全取决于您要构建什么。像 QT 工具包这样的一些工具包允许非常容易和快速的编译和跨平台的可移植性。 Web 应用程序目前非常流行和“流行”,因为网络文化与混搭、分发等无关。问题是,当大多数浏览器正在变得越来越快时,这从未真正设想过。诸如 Google Docs 之类的瘦客户端确实非常有用,但不能与桌面版本进行正面竞争,但他们并没有尝试这样做。这主要取决于您使用它们的目的。
【讨论】:
如果一个 Web 应用程序是根据 MVC 模式精心设计的,那么视图部分(页面)已经被移植了。
如果业务层和数据层设计良好(不是意大利面条式代码)并且不混合,那么它们也可以轻松移植(但对于桌面应用程序也是如此)。
无论如何,Web 应用程序已经被移植 - 您可以在许多平台上的许多浏览器中使用它们。
【讨论】:
是的,您通常可以构建非常高交互性和丰富的 Web 应用程序,不幸的是,由于使用的工具、浏览器不兼容等原因,开发过程要复杂得多。但是像 Silverlight 这样的东西让事情变得更容易了。
还有很多地方更适合桌面应用程序。
【讨论】: