4

如果可以将一个想法实现为桌面应用程序和网络应用程序,您会采用哪种方式?

我在这里有点偏见,作为一个用户,我更喜欢桌面应用程序而不是网络应用程序,因为能够快速访问信息:无需打开浏览器,无需登录,响应速度更快,托盘集成,通知,全局热键等。作为开发人员,我也有更多开发桌面应用程序的经验。但作为 ISV,我必须担心不仅要丰富用户,还要丰富我自己 ;)

4

10 回答 10

12

这实际上取决于您拥有什么样的应用程序以及您想用它做什么。

Web 应用程序主要具有以下优点:

  • 真正的平台独立性——如果浏览器可用于该平台,您的应用程序将在其上运行。当然在实践中它并不那么简单,但与桌面应用程序相比,它本质上不是问题。
  • 轻松部署- 将最新版本上传到服务器,等等 - 部署完成。这就是它所需要的。没有手动更新,没有下载,什么都没有
  • 全球可用性- 浏览器 + 互联网连接 = 访问您的应用程序。
  • 保密- 如果您认为这是一个优点。我的意思是您的大部分宝贵代码都保留在您的服务器上,您不必担心邪恶的人对您的东西进行逆向工程;)
  • 用户控制-决定谁可以访问您的服务,谁不能。无需担心软件盗版、序列号和所有讨厌的东西。

另一方面,您有以下问题:

  • 集成- 您的应用程序运行在服务器上,实际上没有办法与本地应用程序(甚至文件)交互。例如,在 Web 应用程序和本地程序之间复制和粘贴实际上是不可行的。这当然还包括访问本地硬件,如 USB 加密狗,或任何你能想到的东西。
  • 连接- 没有互联网,没有服务。有一些方法可以通过本地缓存等来缓解这个问题,但最重要的是,如果没有互联网连接,你就是 SOL。
  • 性能——如果你的应用程序性能很重,那么让一万用户同时在你的服务器上运行它可能需要一个昂贵的服务器场。您可能不想将 SETI@home 实现为 Web 应用程序。
  • GUI - 现在你可以使用 Flash 和 JavaScript 制作令人惊叹的 GUI,但它仍然与真正的桌面 GUI 不同(立即想到浏览器和其他应用程序之间的拖放操作)。右键单击上下文菜单是一个经典问题。您是显示浏览器的菜单,还是尝试抑制它并显示您自己的菜单?这是一个失败/失败的情况。
  • 责任/总拥有成本- 这是您的服务器,因此必须为此付费并确保它运行顺畅并进行备份。桌面应用程序按“原样”交付,如果用户的硬盘崩溃,这不是您的问题。Web 应用程序在这里完全不同。

那么,这意味着什么?这一切都取决于。找出对您来说最重要的问题。

编辑:抱歉,我刚刚读到您专门询问了有关通过您的应用获利的问题。您也应该在问题的正文中提到这一点;)但我认为无论如何我都部分回答了,至少我尝试过。

于 2009-05-29T20:25:31.623 回答
11

我想这取决于您计划如何将事物货币化。使用桌面应用程序,您将主要从付费购买中获得收入。使用网络应用程序,您始终可以按月收费(甚至根据访问级别收取分级费用),甚至可以支持带有广告的免费/试用版。

另外,为什么要将自己限制在其中之一?使用像 Adob​​e 的 AIR 这样的框架,让自己两全其美。

你的技能组合在哪里?如果您有大量构建桌面应用程序的经验并且对 Web 不太熟悉,请先使用桌面。如果您是 Web 开发人员,请先使用 Web。发挥自己的优势。

设计怎么样?知道任何可以为您设计 Web 应用程序的网页设计师,或者在桌面上吹出一些东西会更容易吗?

Web 的跨平台方面是否值得,或者您打算主要为 Windows、Mac 或 Linux 构建并且对此感到满意?

有很多考虑。发挥自己的优势。

编辑(2012 年 9 月):似乎这篇文章在 3 年后仍然有一些流量。在这一点上,它已经过时了,并且没有考虑到移动设备之类的东西,我不知道。:-) YMMV!

于 2009-05-29T20:16:05.777 回答
2

在你的情况下,因为你的背景是桌面,我会这样做只是因为你可以更快地实现它,也可能以更好的方式实现它。

于 2009-05-29T20:15:37.150 回答
1

这是一个权衡。

一方面,Web 应用程序允许您采用 SaaS 样式的费用,并允许更轻松的部署模型。另一方面,Web 应用程序需要以服务器和带宽成本的形式进行维护。

桌面应用程序允许更丰富的 UI,这可能会让您的用户更快乐,但更难以部署和更新。

于 2009-05-29T20:14:19.790 回答
0

如果您希望通过您的应用程序赚钱,我会说基于 Web 的应用程序要容易得多,因为每个潜在客户都可以在您公开应用程序后立即访问它。桌面应用程序需要的供应链比我能想到的任何编程任务都要多得多。

于 2009-05-29T20:13:35.453 回答
0

这完全取决于您的应用程序提供的功能。有些应用程序无法在 Web 上运行,因为它们需要本地 PC 数据,而这些数据不能从浏览器中获得。

从维护的角度来看,Web 应用程序肯定更容易维护(节省时间和成本),因为它只在一个地方运行(你的服务器,所以任何新版本都必须只到那里)并且测试它相当容易通过跨不同浏览器进行测试,可以实现不同的用户配置。使用桌面应用程序会更难做到这一点,因为每个用户都可以有不同的硬件/操作系统设置,这可能会导致各种问题(并且您可能很难在支持场景中复制它)。

于 2009-05-29T20:14:53.127 回答
0

谷歌说网络应用程序是未来,他们可能是对的。Web 应用程序具有显着的最终用户优势,即本质上是跨平台的(在大多数情况下),并且不需要安装到将要使用它们的计算机上(同样,在大多数情况下)。当然,另一方面是它们将在您的计算机上运行,​​而不是在您的用户的计算机上运行,​​因此您将不得不在基础设施上花费一定数量的钱,而且可能比您花在上面的钱还要多分配。还有营销问题——你可能不会在它上面花更多的钱,但是当你不能在百思买的端盖上放一个盒子时,要宣传这个词要困难得多。

无论如何,如果您可以选择其中任何一个,我会调查托管和扩展您的应用程序的成本,如果不禁止盈利,我会说选择网络应用程序。如果你能很好地推销它,你将获得比使用桌面应用程序更大的用户群。

这无疑是一场激烈的讨论中的两分钱。:-)

于 2009-05-29T20:16:33.653 回答
0

我更喜欢网络,因为:

1) 跨平台 2) 您只需解决一次问题,从而降低支持成本 3) 您可以相当轻松地加入,甚至可以免费试用 4) 向所有客户推出新功能更容易

于 2009-05-29T20:19:32.370 回答
0

好吧,简单明了它是网络,100%。在您的网站上粘贴广告大约需要 5 分钟。可能要长一点,让它看起来不错。

但这并不意味着您将在桌面上尽可能多地制作。但说真的,如果你说得简单,人们会编写脚本来制作带有广告的网站。他们赚了 100 美元,然后将网站关闭。他们每天这样做几次。没有办法在桌面上赚到这种快钱。

需要注意的是,在网络上你谈论的是少量的钱,除非你可以让网站受欢迎。

于 2009-05-29T21:46:03.053 回答
0

我认为这真的取决于应用程序的类型。网络浏览器可以处理你想扔给它的任何东西吗?新的浏览器令人印象深刻,但仍然停留在 IE6 上的人不会高兴。另外,离线数据有多重要?Google Gears 是一个糟糕的解决方案。Safari 和 Firefox (3.5) 都对离线数据有很好的支持,但同样,使用旧浏览器的人无法充分利用它。(当然,您可以随时放弃对旧版浏览器的支持。)

网络上的主要缺点是您对用户的数据负责。网络上的主要优势是您会自动获得更广泛的受众。桌面应用程序的反向 - 更小的受众,但你的负担更轻。

于 2009-07-15T07:31:19.143 回答