2016-05-14 95 views
-3

我一直在使用Windows Forms一段时间,并且由于Forms的某些限制,我想按照更好的方式制作GUI。我发现WPF,看起来很有希望,但我问你们,如果有什么更好的方法用C#为Windows做好GUI? 在此先感谢!WPF是C#GUI的最佳解决方案吗?

+1

链接到一篇文章(即使四岁,我会说它仍然成立):http://stackoverflow.com/questions/9752375/which-windows-gui-frameworks-are-currently-worth-learning –

+0

我发现WPF比winforms好得多,但第一年或第二年的学习曲线却是一团糟。这是对事物的不同思考方式。使用模板进行数据绑定可以快速实现干净,可维护的UI。 –

回答

4

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

这是自2013年11月以来,但仍然有很大程度上有效。除此之外它指出(重点煤矿):

.NET的Windows Presentation Foundation
这对于需要UI复杂的Windows桌面应用程序的首选技术,风格 定制和图形 - 用于桌面的密集场景。 WPF也利用XAML视图。 而WPF开发技能类似于Windows Store开发技能,因此从WPF迁移到 Windows Store应用程序比从Windows Forms迁移更容易。

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

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

+2

与WPF相比,HTML和JS是一个笑话...如果你需要它。我使用使用Direct3d进行快速渲染的图表,我编写可打开多个屏幕的应用程序。 HTML和JS无法做到这一点 - 他们是为了简单的东西。 – TomTom

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#

在了形式独特的优势而言,有很多的东西,你用WPF获得外的开箱,像双例如双向数据绑定和UI线程。但是我发现,思考问题的变化同样重要。当我开始思考MVVM时,异步编程(例如从基于Windows的客户端应用程序调用Web服务)等概念和理由变得更加容易。在网络开发中,MV *也是所有的愤怒,所以技能(以及理想世界中的一些代码)可以转移到网络上。