【问题标题】:Why are companies still using Windows Forms and WPF applications instead of web applications?为什么公司仍在使用 Windows 窗体和 WPF 应用程序而不是 Web 应用程序?
【发布时间】:2011-02-11 11:30:56
【问题描述】:

为什么公司仍在使用 Windows FormsWPF 应用程序而不是 Web 应用程序?

我不想讨论。我只想要原因,因为最近几天我对自己的工作(Windows Forms/WPF)缺乏信心,我认为这是改变技术/工作的好方法。

【问题讨论】:

  • 没有灵丹妙药的语言/部署——否则我们都会这样做。针对不同的业务问题需要解决不同的实现机制。

标签: c# asp.net wpf desktop-application


【解决方案1】:

Windows 应用程序具有最好的用户界面和功能,但它们只提供给最小的用户,而 Web 应用程序具有最有限的用户界面功能,但它们是提供给最广泛的受众。

这取决于公司在 Web 和 Windows 应用程序之间做出决定,他们必须为自己的发展而开发...

【讨论】:

  • 我们还要补充一点,Windows 应用程序在使用的工具方面要强大得多。要制作同样出色的 Web 应用程序,您需要设置大量 AJAX 东西来模拟桌面客户端上免费的东西。 (例如用于验证的即时反馈等。)我曾经决定向一家需要解决问题的小公司提供 win-app 而不是 web 应用程序。他们之前有一个网络应用程序,并且喜欢允许他们使用拖放操作的快捷方式和多文档窗口的新系统。尝试使用网络应用程序做所有事情就像将一个方形框装进一个圆形洞。
【解决方案2】:

一些可能的原因:

  1. 桌面应用程序可以轻松离线使用(显然,这会随着新的HTML5 内容而改变)
  2. 有些事情在桌面应用程序中更简单(想想复杂的 3D 可视化,当然你可以编写一些 Flash 来做这些事情)
  3. 您可能需要访问本地文件/系统信息/其他应用程序无法通过 Web 应用程序访问
  4. 与通过 JavaScript 相比,使用本机代码可以更有效地使用本地处理能力(同样,随着浏览器变得更好而变化)
  5. 桌面应用程序所需的技能范围通常小于 Web(想想 C# 与 HTML、CSS、JavaScript、Flash、HTTP 等),因此它可能适合可用的开发资源

【讨论】:

    【解决方案3】:

    公司仍在使用 Windows 窗体,因为它允许在比 Web 应用程序更低的级别上与 Windows 进行通信。

    WPF 还允许更大的数据绑定,并拥有更简单的工具来处理复杂的任务。

    【讨论】:

      【解决方案4】:

      我们仍然使用 WinForms 和 WPF,因为我们需要处理大量数据并且需要快速的性能。还有一件事:我们不想将数据存储在网络服务器(或云中)!

      【讨论】:

      • 别告诉我您将所有数据都存储在本地桌面上!你不使用数据库吗?
      • 我们将数据存储在本地数据库中,而不是在云中。但是数据库必须在本地机器上,否则您无法在路上或向客户获取数据。
      • 每个工具都有它的用途。我的公司也使用本地数据库,但对我们来说这是错误的决定。它使许多事情变得过于复杂,因为它提供的一些好处。
      【解决方案5】:

      Windows 应用程序更加安全,不受外界影响。

      【讨论】:

        【解决方案6】:

        就我而言,我开发桌面应用程序是因为我需要访问本地资源。 它可以是文件系统、数据库、原生应用程序 API、COM 组件等。

        唯一的网络解决方案是运行内部网络服务器,但我的大多数客户都没有 IT 人员来维护它。将 EXE 文件发送给客户(通过例如ClickOnce)要容易得多。

        我很想使用 Silverlight 进行分发。 Silverlight 4 增加了对本地 COM 资源的访问,但对本机代码的访问似乎还很遥远。

        【讨论】:

          【解决方案7】:

          WPF 和 Windows 窗体在许多用例中开始失去相关性。它们仍然引人注目的唯一地方将是 Windows/Windows Server 生态系统的深处。例如,如果不使用 WPF 或 WinForms,您仍然无法编写专业级的 Office 插件。

          在更一般的用例中,例如经典的 CRUD 应用程序,您可以使用 Angular 或 React 编写的应用程序。如果您需要操作系统级别的权限,可以很容易地转换为 Ionic、React Native 或 Electron,并获得深度功能。有时,功能确实超过了您从 WPF 或 WinForms 获得的“开箱即用”(例如,烤面包机在 Electron 中的功能性更强,因为它利用了下一代 HTML5 通知)。编码体验更像是 REPL,而且你必须编写的实际代码比 WPF 或 WinForms 少了很多仪式性 (IMHO),所以这是一个很大的吸引力。

          有趣的是,VS Code 是用 Electron 编写的。事实上,有大量且不断增长的主流 Electron 应用程序。

          【讨论】:

            【解决方案8】:

            嗯,Windows 或 WPF 应用程序在许多方面都更强大,并且可以更快地开发更丰富、响应更快的应用程序。 Web 应用程序只需要从几乎任何地方登录,但您通常会发现这样更笨重且功能有限。那么,您想要一个功能强大且易于使用 Web 连接的 Windows 应用程序吗?很简单,只需创建onw。我们做到了,我们可以部署一个基于 Windows 的全功能应用程序(以及具有惊人图形和功能的 WPF),我们的客户可以从任何地方以 Web 应用程序的速度登录,但无需任何瘦客户端或昂贵的网络。我的投票是,坚持使用 Windows 应用程序,并放弃对那些想要使用该技术进行开发的人提供很少的 Web 解决方案的抱怨。话虽如此,网络是唯一的方式,具体取决于您要做什么,但如果您要交付商业产品,那就不要再说了。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2015-10-28
              • 1970-01-01
              • 2014-03-16
              • 2014-01-02
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多