【发布时间】:2017-07-25 01:46:24
【问题描述】:
我是一家制造公司的软件工程师实习生,他们希望我为该公司开发一个应用程序。他们倾向于使用 Web 应用程序,但是我想知道桌面应用程序是否更适合这项工作。因此,我一直在谷歌上搜索并查看 stackoverflow,以了解桌面应用程序和 Web 应用程序之间的优缺点。以下基本上是我发现的:
快速免责声明,我有 C# 和 WPF 的背景,所以我有点偏见,因为我开发桌面应用程序会更容易。我没有 Web 经验,因此在该领域我无话可说,这就是为什么我想更多地了解这个应用程序是否更适合作为 Web 应用程序或桌面应用程序。我绝对愿意学习 PHP 和 Web 开发以扩展我的能力。我已经开始(有点)研究使用 Php7 和 Laravel 框架开发 Web 应用程序。
桌面应用程序的优点:
- 通常比 Web 应用程序更快(假设 Web 应用程序将执行复杂的查询、计算等,而不仅仅是显示标记)
- GUI 的开发速度更快
- 桌面应用程序默认为私有,因此更加安全。
- 有更多可用控件可为用户提供更丰富和互动的体验(或者至少,与基于 Web 的应用程序相比,这些控件在基于桌面的应用程序上实施起来更容易/更快)
- 可以利用用户硬件。
桌面应用程序的缺点:
- 使用/部署受系统限制(不过,这应该不是问题,因为我们所有的系统都是基于 Windows 的。)
- 必须手动执行更新和安装。
- 如果每个客户端桌面都有一个数据库连接,则无法进行扩展 很好,因为数据库负载很重。 (不过,这大概 不会,因为我们的用户不会超过 500 个)。
Web 应用程序的优点
- 跨平台(无需处理不同的操作系统),便于移植
- 开发简单快捷
- 部署很容易,因为更新是自动和服务器端的。
- 大型社区支持和可用框架。
Web 应用程序的缺点
- 更大的开销(由于需要通过 Internet 传输数据,应用程序往往会变慢)。
- 需要处理不同的浏览器。 Javascript 很可能需要在一个 Web 平台(Chrome、Firefox 等)上进行调整以使其完美,而在其他平台上则不完美。 (不过,这没什么大不了的)。
- 安全是一个问题,因为数据将是公开的。
如果以上任何内容已过时(我发现的大多数帖子都是 2011 年或更早的帖子)或错误的,请告诉我。另外,如果还有其他优点/缺点需要考虑。
继续应用描述......
公司背景:我们每天制造和加工数十种不同的零件。对于每种类型的零件,在加工X数量的零件后,需要取样进行检验。例如,零件 Y 每 120 分钟抽取 3 个样品进行检查(因为机器通常在 120 分钟内完成 X 数量的加工)。然后将检测结果(测量数据)存储在数据库(MySQL 数据库)中。
应用程序用途的一般摘要:
- 查看我们设计的所有部件的原理图(我们将所有原理图以 pdf 格式存储在网络驱动器上,因此这只是从驱动器中提取特定的 pdf 文件并将其显示到应用程序中)。
- 查看/更新公司所有机器的状态(他们在做什么,在线/离线等)。某个用户(检查员)将使用此应用程序来更新机器状态/信息。然后另一个用户(操作员)将使用该应用程序查看状态。
- 监控部件检查。因此,对于正在处理的每台机器和零件,都会有一个计时器让操作员用户知道何时需要提交某个零件进行检查。零件提交后,检查员将收到检查零件的通知,在让应用程序知道他们完成检查后,计时器将重新启动,以让操作员知道他们下次需要提交零件的时间。李>
- 应用程序将从检测结果中获得的零件测量值计算统计数据(例如,Cpk 值),并将统计数据与图形/图表一起显示。
我希望我已经足够清楚地解释了所有这些。其他一些需要注意的事情,据我了解,用户不需要远程访问。此应用程序几乎只能在公司网站上使用。此外,该公司想要一个 Web 应用程序的最初原因是因为运营商将使用平板电脑来运行该应用程序,而他们购买的平板电脑是基于 Android 的。但是,他们决定改用 Windows Surface 平板电脑,因此现在可以使用 WPF 应用程序。
说了这么多,我真的很想知道有更多经验的人会推荐什么路线。我还在上大学,所以请原谅我缺乏知识/经验。在选择 Web 应用程序和桌面应用程序时,我还应该考虑什么?
以下是我在思考这个话题时看到的一些页面:
- Advantages of web applications over desktop applications
- https://www.quora.com/How-much-different-is-it-to-build-a-web-application-vs-a-desktop-application
- https://www.quora.com/What-are-the-advantages-and-disadvantages-of-web-based-application-development-vs-desktop-application-development
有更多的 stackoverflow 页面,但上面列出的页面几乎包含其他页面所述的所有内容。
编辑:到目前为止,似乎网络应用程序正在获胜(我一点也不介意,我真的很高兴能够根据我所听到的开发一个网络应用程序)。有没有人愿意做一个桌面应用程序?如果有,为什么?
【问题讨论】:
-
它看起来是基于意见(或过于具体),但因为他们有这么快的截止日期,所以无论什么技术都能更快地完成工作。那么WPF,是吗?只做最低限度的工作。
-
是的,对不起。我的帖子有偏见,因为我没有网络开发经验,所以我很难谈论它。但是,如果截止日期不是那么快,您会推荐什么?项目描述中是否有任何听起来偏向桌面应用程序的区域?我试图保持这部分的客观性。
-
我希望具体的细节能帮助有人给我更具体的建议。也许它产生了相反的效果,只是让帖子陷入了不必要的信息。 :( 我将尝试简化这一点。可能不需要包括我发现的优点/缺点......
标签: c# php wpf desktop-application web-application-project