为什么要跳转到WPF for Business Application而不是使用Winforms
本文关键字:Winforms Application Business for WPF 为什么 | 更新日期: 2023-09-27 18:27:09
我们的团队在Winforms和ASP.net项目方面经验丰富。
正如程序员堆栈交换中的其他程序员建议我为我们团队的下一个项目跳到WPF,而不是为我们基于客户端的业务应用程序使用WinForms。
现在我开始使用WPF开发我的第一个项目,这对我来说有点棘手,因为这是我第一次尝试使用它。
你能提供更深入的信息吗?为什么我们需要跳到WPF而不是使用winforms?
我需要说服我们的经理,我们可以为基于客户的项目挖掘WPF。
我们正在使用VS 2008。
-
选择一个好的MVVM框架。我个人使用微软棱镜。对于其他备选方案,请查看这个StackOverflow问题。
-
路由事件仅用于视图。例如,如果要在文本更改时滚动到多行文本框的末尾。
-
命令用于绑定逻辑驻留在视图模型(业务逻辑)上的事件。。。例如,提交按钮。
-
如果你的团队中有设计师,让他们开始玩Expression Blend,了解风格/布局。Expression Blend允许您使用示例数据查看应用程序布局,而不必一直运行它。
-
理解
ContentControl
和ContentPresenter
之间的区别。 -
了解
ItemsControl
的工作原理。SelectedItem
、SelectedValue
和SelectedValuePath
之间存在差异。 -
看看网上的很多前任。Wpf博士,WPFTutorial.net,Josh Smith关于Wpf等
-
如果您计划利用代码UI测试(测试实际的用户界面),请确保命名重要的控件(大多数MVVM教程都告诉您,您不应该命名任何控件)。如果您不打算进行编码UI测试,那么不要命名控件,除非您需要从视图本身引用它们。
-
IValueConverter
和IMultiValueConverter
应仅用于转换属性以查看相关项目。最常用的转换器是BooleanToVisiblity
转换器。 -
TargetNullValue
、FallbackValue
和StringFormat
在使用绑定时是重要的。不要假设绑定的数据总是可用且正确的。 -
您几乎总是会从视图模型中公开
ObservableCollection<T>
或ReadOnlyObservableCollection<T>
。您很少会返回任何其他类型的集合,包括IEnumerable<T>
。 -
选择
BindingMode
:OneWay
、OneTime
、TwoWay
、OneWayToSource
时要小心(警告:OneWayToSource很棘手……它仍然需要getter,因为它是而不是仅写绑定)。 -
Snoop是一个很好的免费调试工具。它类似于用于运行WPF应用程序的DOM资源管理器。Mole是一款功能更强大的更先进(而非免费)的工具。
这就是我现在所能想到的。。。哦,如果你遇到路障,StackOverflow就是你的朋友:)
我写了一个关于WPF和MVVM的系列文章,专门针对那些有Windows窗体背景并计划擅自离船;跳槽的开发人员。
它介绍了WPF的一些基础知识,展示了它如何允许您以不同于Windows窗体的方式进行开发,包括(温和地)引入模板、命令和其他概念,这些概念与WPF中极其优越的数据绑定相结合。
这将为WPF提供一个很好的介绍,并向您展示为什么它比Windows窗体更适合商业应用程序。
对于那些正在阅读并想知道"为什么是WPF"而不是Winforms的人来说,答案是WPF数据绑定让它变得容易多了。MVVM实际上只是帮助你充分利用它,但你并不严格需要它。
作为一个刚刚在学习的人,我建议带WPF出去转一转,打开一个项目,开始做你在WinForms中做的事情,手动分配属性和处理事件。它会起作用的。但是,一旦你发现WPF会自动为你做这件事,你就会突然开始讨厌旧的方式,你最终会走上MVVM的快乐之路。