就目前的情况而言,此问题不适合我们的问答格式。我们希望答案能得到事实、参考资料或专业知识的支持,但此问题可能会引发辩论、争论、民意调查或广泛讨论。如果您认为此问题可以改进并可能重新讨论,请访问visit the help center以获取指导。
10年前关闭了。
I know asp.net and winform development. I am not the type of developer who jumps into a new technology just because it's new. It needs to give me extra benefits like higher productivity.
对于纯商业应用程序来说,WPF比Winforms有什么优势?我对WPF提供的额外的视觉糖果、动画、渐变、图像显示效果等不感兴趣。商业应用程序用于数据输入、数据报告,可能还有一些图表和照片的静态显示。
WPF将如何帮助这些应用程序?更好更丰富的数据绑定?WinForm是一个成熟的技术,我喜欢的事实是,我可以做的一切在Visual Studio与多个IDE的WPF(VS & Blend家族)。另外,我认为WPF没有丰富的数据绑定控件一样,他们的Winform对应(DataGridView ..等)。AFAIK,微软仍然会支持Winforms很多年。
试着说服像我这样的人改变。
7条答案
按热度按时间0wi1tuuw1#
我知道asp.net和winform开发,我不是那种因为新技术就跳进去的开发者,我需要它给予我额外的好处,比如更高的生产力。
对于我的团队来说,WPF已经被证明比WinForms开发应用程序要快得多。我们最近发布了一个中型应用程序,用时32个工作日。我们的团队中有一个经验丰富的WPF开发人员,还有一些缺乏经验的人渴望学习这项技术。士气高涨,生产力令人印象深刻。
WinForm是一个成熟的技术,我喜欢我可以在Visual Studio中做任何事情,而不是WPF的多个IDE(VS & Blend家族)。
你认为自己是一个手工编码者,还是一个拖放编码者?如果你认为自己是一个拖放编码者,那么目前的WPF工具可能不适合你。也许等着Visual Studio 2010吧?我几乎完全使用XAML。大多数WPF用户可能会同意这是目前创建WPF应用程序最有效的方法。但是,我也手工制作HTML。所以我觉得很自然。
对于纯商业应用程序来说,WPF比Winforms有什么优势?我对WPF提供的额外的视觉糖果、动画、渐变、图像显示效果等不感兴趣。
我以前也是这么想的,但是最近我开发了一款商务应用,它有渐变、基本的动画和特效。这些花哨的功能是为了增强用户体验。为什么商务应用应该是战舰灰?为什么它们不能用?当然,让商务应用可用的不是颜色、渐变、动画,但是使用这些特效可以帮助用户体验。这对我来说很重要。我本可以在WinForms中完成我在WPF应用程序中所做的一切-只是需要更长的时间。
更好更丰富的数据绑定?
数据绑定支持真的很棒,这是我最喜欢的一个特性,看看this wonderful Databinding Cheatsheet吧。
试着说服像我这样的人改变。
我已经决定,我不会试图说服其他任何人切换到WPF。我试图“说服”的开发人员(都是经验丰富的Winforms开发人员)通常都在这个平台上挣扎。他们没有在技术上投资。他们没有“理解”。我鼓励人们去看看这个技术是否适合他们作为一个开发人员。学习曲线是巨大的。如果你是通过书本学习的,请查看这篇SO文章,了解一些关于WPF书籍的小评论。如果你是通过视频学习的,请查看windowsclient.net WPF videos。如果你是通过例子学习的,查看this或this帖子。忘记你所知道的关于WinForms的一切。WPF看起来真的比WinForms更接近ASP。创建一些示例应用程序。看看它是否适合您和您的团队。
由于你是多技能的(asp.net/winform技能),你可能会看到WPF的优势,因为它与Silverlight密切相关。Silverlight填补了你的富客户端应用程序和Web应用程序之间的空白。
我个人认为WPF是.NET框架可用的最好的客户端技术,并且在将来的工作中通常会避免在WinForms中开发。YMMV
aelbi1ox2#
我有相当多的winforms经验,只玩过一点点WPF,但我被卖了。
为什么?
2ul0zpep3#
当我开始关注WPF时,我把它当作“带矢量图形的Winforms”,直接撞上了学习的悬崖。从Winforms过渡到WPF的正确方法是服用一剂你能找到的麻醉剂,忘记你所知道的一切,然后从头开始。
不过说真的--如果使用Model-View-ViewModel这样的模式,会更简洁、更容易。更多信息请访问The Orbifold、Google Groups thread和Channel9
然后,在某个时刻,你会有一个顿悟,并开始数据绑定一切。你的代码隐藏将成为没有什么比调用InitializeComponent()。
bvjxkvbb4#
谢谢你的帖子。我的公司在WinForms上投入了大量的时间。我无法想象在32个工作日内完成一个中等大小的应用程序;我们的认证周期是连续几个月,发布周期有时是一年或更长(尽管我们尽可能地坚持敏捷开发哲学),这就是我们开发的应用程序的本质。
我刚刚第一次使用WPF,发现可以通过使用ElementHost在WinForms中获得WPF的一些好处。我扩展了一个WPF文本框,然后将扩展的类 Package 在一个Win Forms UserControl中,现在有了一个使用该WPF文本框的WinForms应用程序,并提供了拼写检查支持。
看到微软想到这一点(在WinForms中托管WPF,反之亦然),我印象深刻,因为我真的不能看到我的公司转移到WPF,除非我们可以在很长一段时间内过渡;在WinForms上投资太多了,不能再重新开始了。根据我最近的经验,我可能会开始和其他开发人员谈谈我最近的经验,看看他们的想法。我认为WPF需要一些时间来适应,这似乎与其他评论一致。
q8l4jmvw5#
不完全是重复的,但你可能会发现这篇文章有助于WPF的好处,除了新的图形位。
WPF or WinForms for internal tools?
oyt4ldly6#
您只需在Stackoverflow中查看此搜索结果即可获得众多答案。https://stackoverflow.com/search?q=WPF+Winforms
iyfjxgzm7#
想象一下,如果你可以在你的ASP.NET/(Silverlight)页面上使用同样的UI(XAML)和桌面应用程序。你只需要构建一次,然后把它连接到任何一个......这就是WPF/XAML的意图之一......我们真的到了吗?还没有,但是越来越近了。