gpt4 book ai didi

wpf - 担心 WPF。我应该为 Windows GUI 使用 WPF 还是其他库?

转载 作者:可可西里 更新时间:2023-11-01 13:59:43 28 4
gpt4 key购买 nike

我在一个执行数值计算的库上工作了一段时间。它是用纯原生 C++ 编写的,直到现在我一直在使用简单的控制台应用程序来测试它的功能。

是时候在库的顶部构建一个 GUI - 以更好地显示结果表并以图形形式呈现它们。

我一直打算用WPF来实现UI,也花了一些时间研究它,但我现在又重新考虑了。我对 WPF 的担心是:

  1. 是否值得仅仅为了用户界面而将我的程序耦合到 .NET 框架? .NET 和 WPF 似乎以多种形式增加了开销,包括:
    • 程序复杂性
      • 使用 .NET 意味着使用第二种语言 - 从而编写大量困惑的互操作代码。
    • 运行时性能
      • 尤其是 WPF 应用程序启动起来似乎非常缓慢。
    • 部署
      • .NET Framework 安装快捷方便吗?是否需要重启机器?

  2. 渲染质量
    • 这在 WPF 4 中有所改善,但标准元素的显示在某些方面似乎仍然很差。

  3. 担心 future 性能和质量是否会提高
    • WPF 在 Microsoft 中不再受到重视(转而支持 Silverlight)是真的吗?

我的担忧因人们远离 WPF 的消息而更加复杂,他们面临着类似的问题 - 最近和最引人注目的是 Evernote .

您会建议我坚持原来的计划并使用 WPF 吗?

如果是,您如何看待上述问题?
如果不是,我可以使用哪些替代库来创建高质量的 Windows GUI?


编辑:

感谢 Reed Copsey 提出我的个人观点。回复表明我遇到的大多数 WPF 问题都可以解决。

似乎使用 WPF 将涉及比理想情况更多的工作 - 包括编写互操作代码和进行调整以确保良好的性能和高质量。人们是否普遍同意以下说法:尽管如此,生成顶级质量 UI 的最佳方法是使用 WPF,而不是使用任何其他框架?

最佳答案

我将尝试按顺序解决这些问题。剧透:在我看来,在大多数情况下,答案是肯定的。

Is it worth coupling my program to the .NET framework just for the sake of the user interface?

这取决于接口(interface)要求。你的用户需要一个好的、可靠的、现代的用户界面吗?如果是这样,您将希望使用正确的工具来满足该要求。

.NET and WPF seem to add overhead in many forms, including:

  • Program complexity
    • Using .NET implies using a second language - and thus writing lots of messy interop code.

您可以通过 C++/CLI 使用 GDI+,并用一种​​语言处理所有事情。话虽这么说,人们为此使用其他语言的部分原因是生产力——与用 C++ 制作 GUI 相比,它实际上非常非常快。通过 C++/CLI 的互操作代码根本不是很困惑,至少如果您的例程是基于类的则不会。

Runtime performance - In particular, WPF applications seem very slow to start up.

在某种程度上,这可能是个问题。然而,您可以做很多事情来减轻它 - 但这可能总是比精简的 native 代码库启动起来慢一些,因为它必须启动 CLR + 库。

Deployment - Is .NET framework installation quick and easy? Does it require rebooting the machine?

在这两个方面都是肯定的,通常。也就是说,大多数人已经安装了该框架(尤其是如果您的目标是 .NET 3.5,但 4.0 进展顺利),所以这不是问题。不过,我总是认为这是一次性的事情——我宁愿用良好的用户体验来换取一些部署时间,尤其是当它是一个相对轻松的部署时(.NET 非常容易安装,只是又大又有点耗时)。

Rendering quality - This has improved in WPF 4, but display of standard elements still seems poor in some areas.

我强烈反对这里。 WPF 是(尤其是在 v4 中)高质量用户界面的首要平台。很难击败 WPF 中的渲染质量选项 -

Concern over whether performance and quality will improve in the future - Is it true that WPF is being de-emphasized within Microsoft (in favour of Silverlight)?

没有。在 PDC 上甚至有关于 WPF future 的精彩演讲。 Silverlight 受到更多的关注,但这主要是因为它的技术还不够成熟,所以它的变化更快。 WPF 仍然是他们的顶级 UI 体验,并且仍在添加新功能。它也是与 native 代码互操作的建议平台 - 虽然在 SL 中使用 COM 是可能的,但它不像在 WPF 中那样令人愉快。

根据 PDC 谈话,性能、线程问题和空域问题似乎是 future 的改进目标。详情请看“The Future of WPF”。

关于wpf - 担心 WPF。我应该为 Windows GUI 使用 WPF 还是其他库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4092661/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com