我刚刚完成了两个WinForm应用程序,作为强化课程的一部分。只是想知道整体技术......我应该转向新的东西,还是WinForms对未来仍然可行?
答案 0 :(得分:12)
我想说Windows Forms非常适合表单驱动的应用程序。 WPF / Silverlight非常适合动画和图形驱动的应用程序。
如果你需要做一些实用工作或制作工具,我不明白为什么Win Forms无法达到这个目的。 WPF可能有点矫枉过正,除非你真的希望它看起来漂亮。再加上WPF,你必须学习XAML,这不像使用Win Forms设计器那么容易或直观。
如果您是Web开发人员或设计人员,在WPF中工作可能看起来更像设计网页,因为您在XAML中工作并对界面进行细粒度控制。
WPF / Silverlight还具有出色的数据绑定功能,而且Silverlight可以在浏览器之外运行,因此跳过第一个版本的WPF并执行Silverlight版本甚至可能更有利。 SL到WPF比WPF更容易移植到SL(因为SL是WPF的一个子集)。
对于我正在开发的项目,它只能在SL4中完成,因为它能够将它从浏览器中运行,就像它是桌面应用程序一样,无需将其移植到WPF。将Silverlight应用程序安装到用户的计算机上非常简单明了,并且使您可以使用所有现有代码并自动更新。
答案 1 :(得分:5)
熟悉WinForms会对您有所帮助。旧版应用程序将使用它们,如果您在微软商店工作,您将遇到遗留应用程序。你也应该学习更新的东西,因为那只是程序员的一部分。你现在知道的事情只是你知道的基础。永远不要停止学习,否则你最终会像Office Space中的订书机一样。
答案 2 :(得分:3)
我想说WinForms很有用,但我会花更多时间在WPF上。 WPF与Silverlight有相似之处,这将为您提供更多的工作基础。
话虽如此,学到更多东西永远不会伤害:)
答案 3 :(得分:2)
这完全取决于你的工作地点和工作地点。
如果你找到了一份他们正在开发新事物的工作,那么答案就是“不”,因为我希望他们会使用WPF或Silverlight。
但是,如果你得到一份他们支持现有应用程序的工作,那么答案就是“是” - 即使他们正在转换它,因为你将支持旧应用程序很长一段时间。
答案 4 :(得分:2)
这两种技术都有其优点和缺点。
你可以用WPF做一些真正复杂的控制,但是,一些简单的任务更难做到。例如,WPF中的树视图可以按照您希望它们进行一些工作的方式进行格式化,但是默认情况下,项目之间的虚线之类的简单事物并不存在,并且实际上很难使其工作(从未能够到目前为止)
无论如何,由于WPF,XAML和所有其他相关技术都是纯粹的Microsoft产品,Delphi等语言在使用之前可能需要一些时间,因此Winform必定会保留至少几年。
我知道两者,我根据我所做的项目使用两者。我必须承认,我更喜欢WPF用于大多数项目。
答案 5 :(得分:2)
好吧,如果你对颜色和用户体验很棒:) WPF适合你。
另一方面,如果你像我一样,你只能识别8位颜色:P你会发现自己经常使用WinForms。它比WPF具有这样的优势,你可以在不考虑UI的情况下启动应用程序 - 它仍然可用并且看起来很好。
WPF为您提供强大的力量,强大的力量带来了巨大的责任。
答案 6 :(得分:2)
除了已经说过的所有内容之外,我认为对winforms的一些了解对于创建小型玩具应用程序或扔掉那种东西总是有用的。
答案 7 :(得分:2)
不要购买所有的炒作。我的客户继续要求WinForms开发。我们很快就会开始一个全新的项目,它是WinForms,C#,NHibernate。这是对的,它不是Web,javascript,ajax,云,地铁,WPF,silverlight,等等等等。
理由很简单 - 当我们需要花时间定位竞争平台时,为什么在WPF上花费双倍的精力。 GUI空间完全碎片化。 WPF将永远不会跨平台,并且陷入WPF细节的时间减少了Cocoa支持Linux的可能性。此外,看起来微软已经倾销了WPF,转而支持令人惊叹的Javascript和复杂的HTML 5。
就个人而言,我更喜欢面向组件的GUI框架而不是基于MVC的框架,原因很简单,因为它们更容易编写。我不同意MVC是所有GUI开发的最佳模式。是的,它确实在世界上占有一席之地,就像在Web开发中一样,表示层技术与最低的通用浏览器分母并驾齐驱。
IMO有一个WinForms 3分支的空间,开源,并着眼于正确的跨平台支持。
答案 8 :(得分:1)
这需要很少的时间来学习,所以我认为这非常值得。 WinForms使用的模式也被许多其他框架使用,因此学习它不会丢失任何东西。
而且,如果你有一些基础,WPF可能更容易。
答案 9 :(得分:1)
我会说,如果你刚开始,WPF可能是你的精力集中精力。 也就是说,我目前正在开发一个Winforms项目,并在过去的一年中开始了2个新项目,它运行得很好。
答案 10 :(得分:0)
许多公司发现将解决方案迁移到基于Web的经验。公司使用Citrix和App-V等虚拟化技术通过Web提供软件,而无需开发新的解决方案。
如果您已经在使用ASP.NET,那么学习WinForms会相当容易。