今天开到一篇很好的文章,忍不住翻译过来。(版权归作者所有。如有侵权,请留言告知)

软件开发项目通常从一个常见的困境开始:桌面与 Web 应用程序。每个选项的优点和缺点使它成为一个艰难但至关重要的选择。但它们是什么?

什么是桌面和 Web 应用程序?

在整个软件开发的历史中,该平台对应用程序产生了巨大的影响。随着跨平台应用程序的引入,这种差距正在逐渐缩小。但在讨论如何实现之前,让我们看看 Web 和桌面应用程序之间有什么区别。

桌面应用程序

它是一种直接安装在个人计算机上的软件。您可以在任何时候独立于其他应用程序启动它。它们占用您的硬盘空间,无论互联网连接如何都可以工作。尽管某些应用程序需要它按预期运行(例如 Chrome 或 Firefox 等 Web 浏览器),但它们仍被视为桌面应用程序,因为它们已安装在您的 PC 上。

除了上述网络浏览器之外,还有很多其他您熟悉的桌面应用程序。 Word、Excel 和 Powerpoint 等办公程序、Photoshop 和 Paint 等图形编辑器、视频游戏、媒体播放器等等。有些具有更多功能,有些更需要资源,有些则相当简单。但它们的共同点是它们都安装在您的桌面上并提供某种功能。

网络应用程序

这种类型的软件应用程序通过网络浏览器通过互联网使用。它们不是将文件存储在您的计算机上,而是位于远程服务器上。 Web 浏览器允许您访问应用程序及其内容,还可以运行负责其功能的所有脚本。简单的静态网页与 Web 应用程序的区别在于交互性。它们通常允许您创建、编辑或操作数据和内容。

您很可能每天都在使用网络应用程序。电子邮件服务、Google Docs 等文本编辑器、Messenger 等。随着技术的发展,网络应用程序变得越来越复杂和功能丰富。您可以找到在浏览器中正常工作的复杂图形设计工具或视频编辑器,以及用于项目管理、企业资源规划 (ERP)、客户关系管理 (CRM) 等的专业应用程序。

在谈论跨平台软件时,Web 应用程序通常处于讨论的最前沿。这是有道理的,因为大多数设备都有可以访问它们的浏览器。这一点以及进步的网络应用程序技术的发展是网络解决方案一直主导软件市场的原因。即使你不熟悉 GitLab 或 GitHub,你也知道 Netflix、Spotify 和 Amazon。它们都是网络应用程序,这说明了这项技术的流行程度。

网络应用优势

无需安装

只需转到正确的 URL,即可启动 Web 应用程序。这使您可以在需要时快速轻松地开始使用该应用程序。您的硬盘驱动器上没有大文件占用存储空间,您可以从任何设备访问它。对于某些工具,您需要注册帐户才能保存工作并访问其他功能。但许多其他人直接在门口工作。无论是哪种情况,使用 Web 应用程序,您无需等待下载和安装完成即可使用它们,这只会让您的生活更轻松。

自动更新

必须定期手动下载和安装更新是一件麻烦事。没有两种方法。即使程序自动为您下载它们,您仍然需要批准它,稍等片刻,然后重新启动应用程序。这听起来像是一件小事,但您会惊讶于自动更新节省了多少时间,并且每当您打开应用程序时,它始终是最新的稳定版本。

跨平台可用性

对于绝大多数 Web 应用程序,唯一的先决条件是 Internet 访问。它们不依赖于硬件和系统规格来运行。因此,您可以从具有 Web 浏览器的任何设备或平台启动它们。由于负责应用程序功能的组件位于服务器上,因此无论您是从 Windows、Mac、Linux 还是其他任何方式启动它都无关紧要。

移动访问

与上一点相关,平台无关也意味着移动性。这意味着大多数 Web 应用程序也可以在移动设备上运行。根据程序的性质和功能,有时可能会由于屏幕大小或导航不太精确而受到限制。例如,一个复杂的多轨音频母带网络工作室将更适合比手机更大的屏幕。但无论系统如何,绝大多数企业 Web 解决方案都运行良好。这使您可以将工作带到任何地方,并且仍然可以随时掌握业务流程的脉搏。

计算机资源之光

Web 服务消耗的处理能力要少得多。当然,您的浏览器仍然在您的计算机上运行,​​并且您打开的选项卡越多,使用的内存就越多。但是,在这方面它远不能与桌面应用程序相提并论。不是每个人都有功能强大的 PC。由于机器的技术限制而无法完成工作令人沮丧。无论您的处理器有多昂贵,Web 应用程序的工作方式都几乎相同。

Web 应用程序的缺点

安全威胁

每当任何数据位于远程服务器上的某处时,就会出现安全问题。您如何知道供应商采取了适当的安全措施?对许多人来说,这是一场赌博。这就是为什么您需要格外小心敏感数据的原因。但这适用于大多数情况,而不仅仅是 Web 服务。碰巧的是,Web 服务器是潜在攻击者的首选目标,而不是任何个人计算机。

对互联网访问的依赖

毫无疑问,访问互联网从未如此可靠。但不能保证它不会在你已经推到最后期限的最关键时刻让你失望,例如。许多现代软件解决方案都有针对这种情况的保护措施。一旦它们被加载到浏览器中,它们就可以在您断开连接时访问客户端内存。这使您可以在连接恢复的任何地方继续工作并自动更新服务器端数据库。

可能比台式机同类产品慢

在讨论优势时,我们已经描述了 Web 应用程序如何不消耗您的 PC 资源。这是该论点的另一面。由于无法获得尽可能多的处理能力,与桌面等效应用程序相比,应用程序自然会更慢。再说一次,并不是每个程序都需要它。例如,文本编辑器非常简单,可以在 Web 平台和桌面上快速运行。

偶尔的掠夺性货币化

企业需要赚钱。这是完全可以理解的。无论平台如何,企业软件都很昂贵。软件即服务 (SaaS) 提供商经常采用让您多花钱的策略。它通常以锁定在付费墙后面的非常有用或生活质量功能的形式出现。一旦您习惯并习惯了这项服务,它就会开始促使您花费更多。它在某些类型的网络应用程序(如游戏和企业工具)中更为明显。但是 SaaS 模型可以公平地实施并对其用户有利。你可以在这里读更多关于它的内容。

桌面应用程序优势

无需互联网访问

尽管互联网很普遍,但它尚未达到 100% 的可靠性。在某些地方,它的访问性较差,并且许多 ISP(互联网服务提供商)的连接稳定性较差。更不用说,前面描述的自治模式并非对所有 Web 应用程序都通用。然而,这是台式机的强项。一旦应用程序在您的 PC 上,您就可以在需要时使用它,而不会出现任何连接延迟。

隐私问题

如果您特别重视知识产权安全,那么桌面应用程序就是您的最佳选择。不太敏感的数据出现在不同的云上越好。考虑到当您上网时,实际上您所做的一切都会以某种方式进行跟踪,因此桌面服务在这方面更加安全。

替代支付模式

对于绝大多数付费桌面应用程序,一旦您购买它,它就是您的了。没有每月付款或订阅。作为权衡,此类程序通常更昂贵。此外,重要的是要注意,如果您有多个系统或需要在办公室的每台 PC 上安装应用程序,根据购买的解决方案,最终可能会花费一笔不小的财富。

更好的性能

与 Web 应用程序相比,桌面应用程序无疑具有更好的性能。相同的操作完成得更快,特征范围通常更大。性能并不总是引人注目或需要,因为如此多的 Web 服务不需要太多功率。但是,在桌面替代品没有问题的情况下,更复杂的可能会真正滞后。这是通过利用计算机本身的资源来实现的。

优化使用计算机资源

通过使用 PC 的处理能力,桌面应用程序可以执行一系列 Web 应用程序不可行的功能。例如,为最新的视频游戏或 3D 模型的渲染将图形处理单元 (GPU) 推到最大。

没有持续的托管费用

这一点描述了定制软件。如果您开发了 Web 应用程序,则需要自己支付托管费用。根据它存储和处理的数据量,它最终可能会非常昂贵。通过选择桌面应用程序可以消除这些成本。但是,您可能仍然需要一个带有下载链接的网页,但这远不及托管 Web 应用程序的成本。

桌面应用程序的缺点

不便携

顾名思义,桌面应用程序固定在您的办公桌上。当然,不是字面意思,您仍然可以随时在笔记本电脑上使用它们。但是,它仍然固定在一个系统上。您不能只登录其他人的 PC 并继续使用 Web 应用程序工作。

硬盘空间

程序本身和它产生的文件都存储在您的硬盘上。有些应用程序可能使用不多,但像录像机和图形编辑器这样的工具可能会占用千兆字节。您在他们的使用中多产,您将拥有的可用空间越少。

强制安装

每个桌面应用程序都必须安装在您的计算机上。这不仅意味着您不能只加载它并随时使用它,而且还意味着它占用空间。此外,如果您不再需要该工具,某些文件即使在卸载后仍可能保留。数量不多,但它会很快变得烦人。

手动更新

Web 应用程序始终是最新的。启动应用程序时,最新版本会自动推送给用户。桌面软件并非如此。它可以通知您有可用的更新,但您仍然需要手动下载并安装它。

为每台 PC 部署

我们之前提到过这个缺点,但它是我们大部分客户支持定制软件的决定性因素。由于我们在 Digital Skynet 专注于企业软件开发,因此我们的客户经常告诉我们为他们办公室的每台 PC 部署现成的软件是多么昂贵。您需要为每个系统购买一个新的昂贵副本。这就是为什么许多公司选择为定制软件付费并完全取消这些许可费用的原因。

我们客户的成功

扩展我们客户的经验,我们想向您介绍我们的一个项目。 Commodo 是我们监控金融报价的交易和经纪 CRM 的扩展。实施渐进式 Web 应用 (PWA) 技术使我们能够扩展原始 Web 服务的功能。

Comodo 中包含的功能包括收集服务使用频率和发送给经纪人的请求数量的统计数据,以及抓取市场信息和向任何设备发送更新报价的通知。所有这些都可以在任何浏览器中使用,因此交易者可以获得可以赚钱的相关信息。如果您曾经参与过经纪业务,您就会知道几分钟可以带来多大的改变。这就是为什么网络解决方案是该产品最明智的选择,因为您可以随时随地访问它。

综上所述

如您所见,桌面应用程序与网络应用程序的选择并非易事。每种方法在软件开发领域肯定都有它的位置。但是,要充分利用好处,您不仅需要了解项目的细节,还需要了解每种开发类型的来龙去脉。我们希望这篇文章对这个话题有所启发。但是,如果您有任何疑问,您可以随时向专家咨询,他们会更详细地告诉您您需要了解的一切。

在桌面应用程序与Web应用程序之间该如何选择相关推荐

  1. vs窗体应用linux,使用Visual Studio2019创建C#项目(窗体应用程序、控制台应用程序、Web应用程序)...

    使用Visual Studio2019创建C#项目(窗体应用程序.控制台应用程序.Web应用程序) 一.VS的开发环境 首先你得安装了vs2019,然后确认下下面三个组件是否存在,如果没有要下载一下. ...

  2. JSP、ASP、PHP Web应用程序怎么这么多P!

    之前我们说完了计算机网络应用程序的两种结构:C/S,B/S(传送门)今天我们详细说一说B/S开发中的这么多P是干什么的. 1.什么是Web应用程序 一个Web应用程序是由完成特定任务的各种Web组件( ...

  3. Web应用程序测试工具Top20

    Web应用程序测试工具可提高可靠性,缩短周转时间并提高ROI. 它们是各种类型的工具,可以协助从需求捕获到测试管理等各种Web测试活动.以下是包含主要功能和下载链接的顶级Web测试工具的精选列表. 下 ...

  4. 第一章 Web应用程序开发基础

    一.HTTP协议工作机制 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议.它是一种主流B/S架构中应用的通信 ...

  5. Web 应用程序 – 概述

    应用程序的体系结构 B/S结构优点 静态web的工作原理 静态页面的不足之处 动态网页的工作原理 应用程序体系结构 Web 应用程序体系结构 Web 应用程序目录结构 Web 应用程序开发过程 总结 ...

  6. 使用缓存构建更快的 Web 应用程序

    使用 Java™ 技术的 Web 开发人员可以使用缓存实用程序快速提升他们的应用程序的性能.Java 缓存系统(Java Caching System,JCS)是一个用于 Java 应用程序的强大分布 ...

  7. guacamole 纯web rdp预研:web应用程序部分

    文章目录 web rdp预研 web应用程序部分 预研目的 相关基础 Web应用结构(框架) 配置tomcat运行web项目 与前端交互原理 问题整理 Java web基础知识 Java web调试 ...

  8. 在VS2008.Net下使用WPF开发Web应用程序

    原文地址:http://hankjin.blog.163.com/blog/static/33731937200922353623434/ 胖客户端的好处是可以轻易的实现绚丽的效果, 而瘦客户端则需要 ...

  9. (转)PWA(Progressive Web App)渐进式Web应用程序

    PWA 编辑 讨论 PWA(Progressive Web App)是一种理念,使用多种技术来增强web app的功能,可以让网站的体验变得更好,能够模拟一些原生功能,比如通知推送.在移动端利用标准化 ...

最新文章

  1. HttpServletResponse 的 sendError( )方法以及常用的HttpServletResponse常量级错误代码
  2. Easy Slider: 功能强大简单易用的jQuery滑动门插件
  3. 怀里橘猫柴犬,掌上代码江湖——对话阿里云MVP郭旭东
  4. iis7.5 php伪静态,Windows Server 2008 下WordPress IIS7.5伪静态规则设置(最新)
  5. 【Google 行销课】 初学者投放AdWords容易出现的26个错误
  6. 人脸关键点:TCNN-Tweaked Convolutional Neural Networks
  7. 4.Linux/Unix 系统编程手册(上) -- 文件IO:通用的IO模型
  8. 游戏开发最佳10个工具与技术方案
  9. 为开发者们准备的10款超棒的jQuery视频插件
  10. drozer安全评估框架基础使用技法
  11. asp.net开源资料——国内.NET论坛源代码
  12. Feign集成Hystric报错
  13. python实现计算器功能、输入加减乘除、不是就跳出_使用Python实现计算器功能
  14. 物联网和互联网之间,主要有什么关系?
  15. 工程项目常见风险及其22种最佳管理实践
  16. OpenCV之灰度空间变换
  17. js 将一大段时间均分为很多个小时间段
  18. 如何使用闲置的云服务器搭建一个属于自己的私人云网盘(可道云kodbox)
  19. 老哈佛H3的空调控制器的维修记录
  20. leetcode/nowcoder-huawei-5-排列组合

热门文章

  1. Shiro 那点事儿
  2. 技术久了,偶尔放松下吧,看看这些小样,很美好!
  3. 关于对话框DoModal()函数调用失败的原因分析
  4. ASP.NET AJAX入门系列(11):在多个UpdatePanle中使用Timer控件
  5. NoneBot2插件——进群欢迎
  6. 海龟绘图画花朵_我家宝宝最喜欢的一本图画书——我的连衣裙
  7. java util concurrent_Error: java.util.concurrent.Execution
  8. 宝塔面板使用阿里云ssl证书
  9. java的快速开发框架
  10. AngularJS——第3章 指令