我现在正在使用Windows Forms一段时间,由于对表单的某些限制,我希望能够以更好的方式制作GUI。我找到了WPF,看起来非常有前景,但我问你们,如果有更好的方法可以用C#为Windows做好的GUI吗? 提前谢谢!
答案 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 *架构模式中的一种 - 关于什么构成不同模式之间的差异存在一些争论,但是对于关注点分离的共识绝对是一件好事。例如:
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 *在网络开发中风靡一时,因此技能(以及理想世界中的一些代码)可以转移到网络上。