WPF是C#GUI的最佳解决方案吗?

时间:2016-05-14 08:58:28

标签: c# wpf windows user-interface

我现在正在使用Windows Forms一段时间,由于对表单的某些限制,我希望能够以更好的方式制作GUI。我找到了WPF,看起来非常有前景,但我问你们,如果有更好的方法可以用C#为Windows做好的GUI吗? 提前谢谢!

2 个答案:

答案 0 :(得分:6)

我会寻找他们计划驾驶平台的MS路线图和说明。例如: .NET Technology Guide for Business Applications

这是自2013年11月以来,但仍然在很大程度上有效。除此之外,它还指出(强调我的):

  

.NET Windows Presentation Foundation
  这是基于Windows的桌面应用程序的首选技术,需要UI复杂性和样式   桌面的自定义和图形密集型方案。 WPF还利用了XAML视图。   而WPF开发技巧与Windows Store开发技能类似,因此从WPF迁移到   Windows应用商店应用比从Windows窗体迁移更容易。

HTML5和基于JS的应用程序是一种替代路线,但我认为它在开发效率和可维护性方面较差。如果你是一个脚本家伙,那么值得一看。

根据我的经验,WPF绝对是桌面开发的方式。

答案 1 :(得分:1)

从Forms开发迁移到WPF肯定存在学习曲线,但在我看来,这种努力非常值得,而不仅仅是因为WPF在美学上与Windows Forms不同。

WPF鼓励您沿着MVVM("模型 - 视图 - 视图模型")路径以及UI,逻辑和数据元素之间的关注点分离。另外,MVVM是众多MV *架构模式中的一种 - 关于什么构成不同模式之间的差异存在一些争论,但是对于关注点分离的共识绝对是一件好事。例如:

http://www.infoworld.com/article/2926003/microsoft-net/exploring-the-mvc-mvp-and-mvvm-design-patterns.html

https://nirajrules.wordpress.com/2009/07/18/mvc-vs-mvp-vs-mvvm/

What is difference between MVC, MVP & MVVM design pattern in terms of coding c#

就Form的特定优势而言,WPF开箱即用的内容很多,比如双向数据绑定和UI线程。但我发现,思考问题的变化同样有价值;当我开始考虑MVVM时,异步编程(例如从基于Windows的客户端应用程序调用Web服务)之类的东西变得更容易概念化和推理。

MV *在网络开发中风靡一时,因此技能(以及理想世界中的一些代码)可以转移到网络上。