我一直在使用Windows Forms一段时间,并且由于Forms的某些限制,我想按照更好的方式制作GUI。我发现WPF,看起来很有希望,但我问你们,如果有什么更好的方法用C#为Windows做好GUI? 在此先感谢!WPF是C#GUI的最佳解决方案吗?
回答
我会寻找他们计划推动平台的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绝对是用于桌面开发的方式。
与WPF相比,HTML和JS是一个笑话...如果你需要它。我使用使用Direct3d进行快速渲染的图表,我编写可打开多个屏幕的应用程序。 HTML和JS无法做到这一点 - 他们是为了简单的东西。 – TomTom
肯定有一个学习曲线从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#
在了形式独特的优势而言,有很多的东西,你用WPF获得外的开箱,像双例如双向数据绑定和UI线程。但是我发现,思考问题的变化同样重要。当我开始思考MVVM时,异步编程(例如从基于Windows的客户端应用程序调用Web服务)等概念和理由变得更加容易。在网络开发中,MV *也是所有的愤怒,所以技能(以及理想世界中的一些代码)可以转移到网络上。
- 1. 最佳的解决方案
- 2. 最佳解决方案
- 3. 最佳解决方案
- 4. 最佳SQL解决方案?
- 5. SQLite是备份Heroku上的postgres的最佳解决方案吗?
- 6. Cookie会议是React的最佳解决方案吗?
- 7. Box2D是我iphone游戏场景的最佳解决方案吗?
- 8. 数据透视表是最佳解决方案吗?
- 9. 最佳的NoSQL缓存解决方案
- 10. 解决方案的SharePoint最佳实践
- 11. “Array chaining”的最佳解决方案
- 12. 最佳的asp.net crud解决方案?
- 13. 寻找最佳的解决方案
- 14. Null DateTime值的最佳解决方案
- 15. 模板方法模式是共享Soap方法的最佳解决方案吗?
- 16. 最佳解决方案架构
- 17. 最佳数据库/解决方案
- 18. 最佳解决方案后Gurobi回调
- 19. 最佳体系结构解决方案
- 20. 最佳实践:解决方案参考
- 21. 最佳解决方案:add或addu
- 22. 最佳解决方案 - 规划理论
- 23. WebSocket:后端最佳解决方案
- 24. XML和MQ最佳解决方案
- 25. 解决方案结构/最佳实践
- 26. 最佳ASP.NET MVC搜索解决方案
- 27. wxNet仍然是单声道GUI的良好解决方案吗?
- 28. SplitViewController presentedWithGesture解决方法 - 最佳解决方案?
- 29. 在WPF/C中实时刷新设备UI的最佳解决方案#
- 30. 构建nservicebus解决方案的最佳方式是什么?
链接到一篇文章(即使四岁,我会说它仍然成立):http://stackoverflow.com/questions/9752375/which-windows-gui-frameworks-are-currently-worth-learning –
我发现WPF比winforms好得多,但第一年或第二年的学习曲线却是一团糟。这是对事物的不同思考方式。使用模板进行数据绑定可以快速实现干净,可维护的UI。 –