性能关键GUI应用程序(windows,linux)

evi*_*ack 5 .net linux windows user-interface

我的任务是更新一系列应用程序,这些应用程序是性能关键的VB.NET应用程序,基本上只监视和返回网络统计信息.我只有三个要求:将它转换为C#,使其快速,并使其稳定

有一点需要注意的是,我们"可能"从.net平台迁移到Linux "很快"

我将负责将来维护这些应用程序,所以我想这样做.我决定根据MVP模式重构这些应用程序,以便我可以正确地测试这个坏男孩的地狱.但我也在想,因为我使用MVP,我也可以在本机C/C++代码中执行计算上昂贵的东西,而GUI将使用.NET表单,或Qt或其他任何东西.

问题:

  1. 在winforms中执行GUI是否有意义,但在本机,非托管C/C++中使用昂贵的东西?

  2. 有关适合上述情况的良好跨平台窗口套件的任何建议吗?

小智 5

1)过早的优化是邪恶的。用 C# 实现“昂贵的东西”,看看是否需要重构它。或者,至少设置一个测试来确定这一点。

2)哟奇。跨平台用户界面。我不会忍受“可能”的事情。把黄鼠狼钉下来;如果不知道自己正在设计什么,怎么可能做出设计决策呢?如果您采用纯 .NET 实现,如果您必须(至少)重构它才能在 Mono 中工作,他们会抱怨吗?如果您用 Java 创建它,他们是否会因为它看起来丑陋而恼火,并且用户会抱怨他们在所有这些 .jar 中找不到他们的 .exe 文件?


Der*_*ark 5

首先,我会花点时间尝试一些VB.NET到C#转换器.你基本上是移植语法,如果你不需要,没有理由手工完成.当然,您可能需要清理转换器的内容,但这比手动转换要好.

现在,至于你的问题:

1)在winforms中执行GUI是否有意义,但在本机,非托管C/C++中使用昂贵的东西?

还没.等到你完成转换,然后找出你实际花费时间的地方.在您发现它是必要的之前,没有理由将C/C++与C#混合使用.您可能会发现陷入不安全的C#就足够了.即使这可能是不必要的.您可能只需要优化算法.找出你的瓶颈是什么,然后决定如何解决它们.

2)对于适合上述场景的良好跨平台窗口套件的任何建议?

我肯定会关注单声道.如果你要使用C#,这真的是你能做的最好的事情.当你转移到Linux时,它几乎可以是单声道或另一种语言的另一种重写.