【问题标题】:.NET, Java, AIR, Win32... What's the most compatible environment for running desktop apps?.NET、Java、AIR、Win32...运行桌面应用程序最兼容的环境是什么?
【发布时间】:2009-12-27 10:01:33
【问题描述】:

我有一个旧的 Win32 应用程序,我正在考虑将它移植到一个更灵活、更易于维护的环境中。

最重要的要求是新版本,就像 Win32 版本一样,必须在 Windows 机器上安装和运行而不会让人头疼。换句话说,几乎所有WinXP或更高版本的机器都应该能够在不安装更新、虚拟机等的情况下运行它。例如,AIR已经出局,因为我不得不强制用户安装环境(我认为)。我上次检查的 .NET 存在版本控制问题,可能会迫使用户必须升级 (http://www.joelonsoftware.com/articles/PleaseLinker.html),但也许可以通过针对旧版本进行开发来避免这个问题?

次要要求是“其他一切” - UI 灵活性、易于开发、工具支持等。但基本上其他一切都是次要的,因为客户能够轻松运行它。

我对 PC 客户端开发的最新技术了解不多,无法在这里指导我的想法。哪些运行时解决了安装问题?

【问题讨论】:

  • 我想我应该更清楚。这个应用程序需要在启动时启动,在后台运行,访问文件系统,以及做其他 app-y 的事情。因此,“PC 客户端开发”与“Web 应用程序开发”相对。不能在浏览器中运行,因为用户需要调用浏览器。

标签: .net


【解决方案1】:

我怀疑 最简单的 是带有服务器后端和 HTML 前端的客户端/服务器模型。我很欣赏这不是您严格的桌面模型,但它提供了许多优势。

您可以选择所需的任何后端技术,并随时升级/更改它们,所有客户都会看到这些更改。您的客户不会决定您使用的技术(在后端),您可以根据您的客户所拥有的在前端优雅地降级功能。使用 DHTML/AJAX 等,您可以拥有丰富的界面。如有必要,您可以使用 Flash 和类似工具的强大功能对此进行补充。

确实要求您运行服务器并且您的客户端具有网络连接,但如果这是允许的,那么我认为上述是一个值得认真考虑的选项。

【讨论】:

  • 这在很大程度上取决于用户界面的复杂性......这不是我会盲目选择的,.NET 1.1 Winforms。
  • 好吧,我不知道需要什么。但不要忘记丰富的接口,例如 GWT,它在浏览器中提供了强大的接口。此外,您还可以使用 Flash 处理复杂的内容。
  • 作为一般规则 +1,尽管我支持 Aviad 的评论。我说,看看开发客户端/服务器应用程序,如果普通的 XHTML + jQuery 还不够,客户端使用 Silverlight / Flash / Adob​​e Flex 作为它的 GUI。这样,您就可以拥有一个野兽服务器,并在需要时在幕后执行许多繁重的任务。在这一点上,看看云计算提供了什么,比如 Windows Azure。
【解决方案2】:

您的链接指向一篇已有 6 年历史的博文。它的顶部有一个免责声明:“警告!从 Joel on Software 存档中检索到的这个古老的小玩意已经很好地说明了它的到期日期。小心操作。”

嗯,没错。 .NET 框架现在随处可见。如果不是通过 Windows 更新,则预装在 Vista 和 Win7 上。这些天来,安装一个重要的原生 C/C++ 应用程序相当困难。部署正确版本的并行 DLL 可能会非常令人头疼。 .NET 显然满足“其他一切”要求。

哦,它对写作服务有很好的支持。

【讨论】:

  • 是的,这就是我说“最后我检查过”的原因。所以关键问题是——我能否避免版本控制问题,确保他们有旧版本的 .NET,但不是我期望的版本,因此需要更新。对于奖励积分,安装了每个版本的 .NET 的 Windows PC 的百分比是多少?对于 browsershare 而言,此信息很容易找到,但对于 .NET 框架而言则不然……
  • 奖励积分?你没有什么可以给的。 Anyhoo:stackoverflow.com/questions/933755/…
【解决方案3】:

根据您的评论,这听起来更像是一项服务,也就是守护进程。为此,您最好使用 Win32 作为电源或 .NET 以便于开发。我会推荐使用这两种架构而不是其他架构;例如,AIR 主要用于丰富的 GUI。如果需要,您始终可以开发一个应用程序来访问该服务并帮助管理它(或显示更多结果)。

【讨论】:

  • 好点。有一个始终在运行的服务组件,以及一个用户偶尔与之交互的漂亮 UI 组件。两者之间还有一些内容,例如系统托盘中的丰富弹出窗口。
  • 不确定您是否在这里问任何问题...无论如何,再次取决于您的服务的功能,使用 .NET 对其进行编码(我将使用 2.0 以确保它具有最广泛的支持) 或使用 Win32 C++,如果您正在执行繁重的操作以节省时间和计算机电源。对于 GUI(并且弹出窗口也被视为 GUI),请使用适合您的任何内容。 WPF(也是 .NET)、WinForms、AIR...
猜你喜欢
  • 2010-12-31
  • 1970-01-01
  • 2015-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多