7

我问这个是因为在工作中我应该开发一个由两个人在 Intranet 中使用的 Web 应用程序。这是一个应该在工作流中保留一些状态的应用程序。所以我必须将数据保存在会话中并且必须关心并发性。开发一个普通的桌面应用程序会容易得多。但是客户对此很清楚(我希望规范中的所有内容都如此清楚):他想要一个 Web 应用程序。

我知道很多人不想安装应用程序,但是这里有两个用户,我可以在他们的计算机上安装它。

所以我想知道:是什么原因,为什么现在 webapps 如此流行?这是一种炒作吗?两年后客户会需要更多的桌面应用程序吗?或者 webapps 有什么东西让它们特别性感/吸引人?

4

14 回答 14

8

一般来说,您的观点是错误的:Web 应用程序并不比本地应用程序更受欢迎。

您的特定情况下,客户可能想要利用这些东西:

  • 无缝升级
  • 无需安装客户端软件即可从任何机器获得可用性
  • “没有崩溃”
  • 在完成软件之前尝试的能力
  • 感知成本降低。

如果您碰巧不同意他们的评估,您可以尝试说服他们您的经验表明网络应用程序不是最适合此的。

或者,也许您应该考虑探索基于延续的 Web 框架,例如Seaside。它们通过无状态交互使状态持久化更加直接。

于 2008-11-14T19:01:48.693 回答
7

IMO 的主要原因是

  1. 它们可以在任何连接互联网的计算机上工作,而不仅仅是安装了软件的计算机。
  2. 当有更新时,您只需将其推送到服务器,每个人下次登录时都会获得新版本。
于 2008-11-14T19:01:07.307 回答
4

到目前为止,我看到的大多数帖子都试图通过说 Web 应用程序使部署变得容易、消除“操作系统战争”、升级很容易等来证明 Web 应用程序的合理性。

然而,软件的全部意义在于使最终用户能够高效工作。Web 应用程序的最大卖点是让软件专业人员的工作更轻松一些。制作一个与桌面应用程序相媲美的富 Web 应用程序是非常非常困难的。通常必须做出许多可用性妥协。

有时这些妥协是值得的,但主要目标应该始终是为最终用户提供尽可能好的体验。我见过很少有像桌面应用程序一样能做到这一点的网络应用程序。

当然,您可以说“但从任何浏览器运行的功能正在为用户服务”。也许吧,但我会在一周中的任何一天使用一个难以部署但易于使用的应用程序,而不是易于部署但不易于使用的应用程序,如果是的话我必须定期与之互动的东西。

我使用 turbotax 在线,因为它是一年一次的事情,而且即时更新功能很重要,但我绝对不想从基于 Web 的应用程序运行 Quicken。没办法,没办法。

于 2008-11-14T19:51:18.407 回答
1

那么,Web 应用程序可以更容易维护。如果您更新传统桌面客户端的数据结构,您需要确保客户端软件的版本正确。在 Web 应用程序中,这没什么大不了的。

此外,拼写错误/错误更容易修复——您只需更新一次并重新部署。传统的桌面应用程序必须自动更新,或者(如果你真的是一个施虐受虐者)手动更新。

在完成了传统的桌面客户端和 Web 应用程序之后,我会选择 Web 应用程序。

但是,我很惊讶这么小的应用程序需要成为一个 webapp。

于 2008-11-14T19:02:00.877 回答
1

对我来说,比起桌面应用程序更喜欢 Web 应用程序的第一个原因是它们很容易分发。我不必安装该应用程序,担心它是否由于某些基于客户端的问题(例如个人防火墙)或与其他应用程序冲突等而无法工作。

另一个原因是我可以轻松地向应用程序推送更新。

也许你的答案很简单,任何一个都可以。如果没有更多信息,我看不出你的应用程序作为 Web 应用程序更好的一个压倒性原因。但是由于上述原因,网络应用程序非常吸引人。

于 2008-11-14T19:02:47.583 回答
1

老实说,因为在.Net 之前的时代,Web 应用程序比基于 COM 的 winforms 应用程序具有三个主要优势,这使得它们在几乎所有情况下都更受欢迎。

 1.  They required no installation or deployment on client machines
 2.  They could not break other apps on the client machine. 
 3.  They could be made to function on just about any computer in the world that had a browser and could connect to the application's web server.

这些问题很重要,因为对于当时的 winforms 应用程序来说,它们简直就是噩梦,尤其是第 1 点和第 2 点。(“dll 地狱”)当 .Net 发布时,前两点变得毫无意义...... .Net 应用程序,只需单击一次部署,并且二进制结果和组件互操作性不依赖注册表键/GUIDS(实现二进制冲突的元数据存储在组件本身,而不是机器注册表中),这些问题变得没有实际意义。
一般来说,如今偏爱 Web 应用程序的唯一原因是 #3,您的客户群包括非 Wintel 平台。

于 2008-11-14T19:09:01.643 回答
1

无法回答 Web 应用程序是否比本地应用程序更受欢迎。当然,某些类型的应用程序更适合 Internet。

已经提到过,Web 应用程序具有这些感知优势:

  • 无需安装或实际设置
  • 可以更轻松地记录数据。如果使用 Office 应用程序,它会自动将我的工作保持在线以供在任何地方使用,理论上,如果您管理这样的程序,那么您就可以访问其他人的文档。这可能对一般业务有用
  • 只要用户有一个工作的浏览器,它就可以工作。不再有疯狂的错误或数据丢失,因为它们都在 Internet 上!

如果这些优势适用于您选择的应用程序,那就太好了!为网络世界发展并获得优势。当您的应用程序不适合在线世界时,问题就来了。尝试实现 Spore 的在线版本,看看你能走多远。

为简化起见,Web 应用程序优于桌面应用程序的唯一情况是所需的功能和业务需求表明在线使用优于本地使用。我的朋友在 O2 电话店工作,他们的新用户注册应用程序是一个在线应用程序。这样,所有数据都可以本地存储在商店中,并同时传输到主要办公室,以确保电话被激活。这种应用程序适用于 Web,因为它需要安装在数百个地方,并且需要在本地和总部记录数据

根据我自己的个人经验,现在几乎没有理由使用在线应用程序。他们中很少有人比桌面同行有很大的优势,而且在杀手级应用出现之前,没有充分的理由改变。

于 2008-11-14T19:19:39.250 回答
1

我不同意 Rich 的观点,根据我的经验,Web 应用程序受欢迎,但这取决于您所说的受欢迎程度。

在这种情况下,我所说的受欢迎程度是指,如果我在一家随机的中小型软件公司接受一份随机的编程工作,我希望他们正在开发网络软件。当然,这条规则有很多例外,但现在十年的大部分时间里,总体趋势是向 Web 开发方向发展。

许多其他回应给出了支持 Web 开发的充分理由:

  • 没有大惊小怪的安装/分发过程
  • 跨平台支持相对容易

正如里奇所说,在我看来,最重要的是“感觉成本降低了”。与其他编程方法相比,Web 开发的进入门槛非常低。您可以从 HTML 和 CSS 开始,然后转到 JavaScript,然后再学习 PHP 和 Flash,然后称自己为 Web 开发人员。相比之下,像 C++ 和 Java 这样的环境有一个残酷的学习曲线。

以我的经验,有商业头脑的人如此着迷于 Web 开发是多么“简单”,以至于他们经常忘记还有其他选择。我曾经在一个项目中,最初要求一个 Web 项目,当开发团队说根据要求开发桌面应用程序会更便宜时,项目经理感到很惊讶。非技术人员可能会简单地认为 Web 应用程序的成本较低,因为他们不了解其中的区别。

于 2008-11-14T19:45:00.040 回答
0

“我可以将它安装在他们的电脑上。” 当你中了彩票,然后呢?现在谁来照顾那些精心制作的桌面,拥有独特软件的桌面?

Web 应用程序的中央管理——即使是两个人——对组织来说也具有巨大的价值。

于 2008-11-14T19:06:59.493 回答
0

一些额外的原因:

  1. 因为精心设计的网络应用程序几乎可以在任何可以运行浏览器的计算机上运行。如果您运行 Web 应用程序,它有效地结束了操作系统之战——Apple 粉丝可以继续使用苹果,Msoft 粉丝和 Unix/Linux 粉丝同样如此。

使用桌面应用程序,您必须选择平台/操作系统,或者使用一些承诺(哈!)多操作系统功能的工具(然后当桌面应用程序看起来不像他们中的任何一个时处理来自各方的仇恨邮件是“习惯使用”。

  1. 如前所述,升级就像将代码重新发布到服务器一样简单。没有混乱,没有大惊小怪。升级桌面应用程序可能是一场噩梦,特别是如果您使用新工具开发新版本,并且突然不得不升级所有桌面上的所有“其他东西”(dll、二进制文件等)。在最坏的情况下,您喜欢的新版本甚至可能无法在旧操作系统上运行,因为二进制库随操作系统一起提供。所以现在你也在升级操作系统(和硬件 - 哎呀!)。

  2. 对于大多数应用程序,Web 界面非常完美,特别是如果您正在创建标准的“从数据库读取、写入、报告”应用程序,Web 界面就相当不错了。而且它在大多数浏览器上都相当不错(参见#1)。桌面应用程序很容易迷失在当前的“花哨的 UI 趋势”中(记住每个 Windows 应用程序都必须有多个窗口)。您不必编写的代码量可能很多。

  3. 顾客永远是对的。现在需要注意的是,作为设计师/开发人员,您需要尽可能深入客户的头脑,并确定他们为什么要求某些要求。确保实际问题首先得到解决,但如果是这种情况,请遵从客户的意愿。

干杯,

-R

于 2008-11-14T19:21:03.490 回答
0

基于 Web 的应用程序在应用程序用户中并不受欢迎。

但应用程序用户通常不会为自己的软件付费。

软件购买者不会根据技术优势做出决定。

于 2008-11-14T19:43:44.630 回答
0
  • 自动备份数据/文件...希望如此。
  • 自动升级和安装
于 2008-11-14T20:09:08.340 回答
0

首先,我认为网络/应用程序和客户端/服务器应用程序之间存在(小)区别。webapp是一种客户端/服务器应用程序,服务器完全不受客户控制,客户端是浏览器。客户端/服务器应用程序是客户拥有并控制服务器和客户端的应用程序。您的案例听起来更像是客户端/服务器应用程序,而不是 Web 应用程序本身。

除了每个人提到的关于为什么 webapps 更有吸引力的所有原因之外,不要忘记包括它们中的大多数都提供免费版本。不仅仅是限时或残废的版本,而是一个免费版本,您可以永远使用或直到他们停止使用(当然,以换取您的个人数据,对广告收入的关注等)。除了没有安装和升级的优势之外,这是一个巨大的激励(因为大多数免费加载者无论如何都不愿意为应用程序付费)。

但是,如果您需要保留数据的副本,并且您是铁杆“创造者”而不仅仅是消费者,那么在我看来,与服务器同步的混合桌面应用程序是一个更好的解决方案。

于 2008-11-14T21:02:31.180 回答
0

我认为部分原因与大多数网络应用程序提供的有限的人机交互选项有关(除非你喜欢)。

例如,我曾经在一家生产医疗保健软件的公司工作,我们花了很长时间让用户理解右键单击和拖放。因此,对于程序中的每个操作,我们必须有一个右键单击菜单选项、工具栏中的图标和菜单选项,例如文件->选项->导出。

在网络应用程序中,似乎大多数时候,你有两个选择——链接或按钮(当然,我知道你可以做任何厚应用程序所做的一切,但我只是说大部分时间,您只会遇到按钮和链接)。

正因为如此,似乎很多用户在识别 Web 应用程序时遇到的麻烦更少。他们只是寻找标有“保存”的按钮并单击它。因此,这些用户更喜欢网络应用程序,因为他们认为它们更易于使用。

而且,由于网络应用程序的性质也意味着很多时候您会离开一个有任何类型菜单的页面(每个页面顶部通常没有“文件、编辑、帮助”菜单) ,让他们感到困惑的噪音更少。他们只是查看一个页面,该页面充满了字段和下拉菜单,并在底部看到两个小按钮,标有“保存”或“取消”。我很少看到一个被限制在那个级别的厚应用程序。

于 2008-11-14T21:11:45.560 回答