WPF是用户界面设计的未来吗?我现在应该学习它吗?

5

最近WPF备受瞩目。我想知道WPF是否会成为图形交互用户界面设计的新标准。在Windows界面方面,我们是否正在朝着这个方向发展?它是否真的会像每个人说的那样大受欢迎?

参见

学习Windows Forms与Windows Presentation Foundation

(包含许多关于WPF的其他有用帖子的链接)。


这不是一个重复的问题。它可能不是一个很好的问题,但肯定不同于所引用的那个问题。 - JaredPar
@JaredPar - 非常好。已编辑。 - Jon B
10个回答

7
我认为仍然有很多应用程序是使用Win32、MFC和当然WinForms完成的。将WPF添加到你的工具箱可能是一个明智的选择。现在就放下一切去学习它吗?这取决于你。我看到越来越多的人需要WPF。虽然不是压倒性的,但2001年C#/WinForms也是如此。
所以答案是:你必须抓住机会。没有人知道WPF应用程序是否会主导市场。我倾向于这种可能性,并且我也认为Silverlight可能成为未来Web应用程序的真正参与者。由于这两者之间存在可转移技能,继续学习WPF可以稍微降低风险。
请参见Is it better to use WPF over WinForms 对不起,这不是一个具体的答案。

6

你要求我们预测未来 :)

我认为更好的方法是看看如果您不学习WPF,您可以学习哪些其他技术。我会权衡各种权衡因素,并选择对我更有价值的那一个。

例如,如果选择是WinForms或WPF,我肯定会选择WPF。WPF的学习曲线比WinForms要陡峭。然而,一旦您克服了这个学习曲线,使用它就会变得轻松得多。WPF可以在几行代码中完成WinForms中需要几百行自定义控件才能完成的任务。


4
在WPF中有很多东西需要学习。你需要像GUI程序员一样死去并重生。
但是这值得吗?为什么?下面是我的答案。
既然你问这个问题,我假设你是基于Microsoft技术的程序员。
由于MS的方向是面向WPF进行GUI开发,我看没有选择。Win Forms可能还会持续两年左右。由于WPF的酷炫外观使用户要求更多的WPF应用程序而不是Win Forms。正如你所知,对于许多用户来说,GUI就是软件 :)
现在,如果你是非MS的程序员,可能来自Java,我说WPF与Java Swing有很多相似之处。但它是Swing的一个非常大的超集。
要让Swing赶上WPF可能需要至少2/3年,到那时WPF可能会统治世界,如果不是困难的话,我不指望Swing会比这更容易。
由于Silverlight是一种类似于WPF的平台无关性,我预测WPF将在未来6/7年甚至十年内统治。
我相信并希望MS会让程序员的事情变得更加容易,以缩短学习曲线或将其委托给GUI艺术家(使用表达混合)。
希望我回答了你的问题。

4

WPF是Windows的终极图形平台。Win32的GDI只是一个“初步尝试”,而WPF则是一个“永久结构”。对于Windows和平面显示器的组合(例如3D显示器可能需要其他东西),它将永远不会被取代。因此,请学习它,这是一种很好的商品。


3
微软有一个习惯,就是把所有东西都扔到墙上看看哪个能粘住...Pocket PC平台、J#等等。关于WPF,现在还为时过早,无法确定未来是否会增加采用率。
如果您已经编写过.NET Winforms和/或Webforms,那么学习曲线并不陡峭。我建议您尝试一下,但不要将所有的鸡蛋都放在类比的WPF(甚至Silverlight)篮子里。正如其他人所指出的,最好将其视为您工具库中的另一个工具。

2
使用WPF比WinForms更好,需要有不同的思维方式。 我想说的是,微软在创建WPF和Silverlight应用程序时应该使用HTML语法,这样前端就可以重复使用,或者至少对于Silverlight应用程序,这样写桌面应用程序的人就可以在编写可在任何地方使用的浏览器应用程序时重复使用相同的代码。 如果HTML5变得更好,我相信它会成为流行趋势,因为趋势是朝着开源(便宜的技术)的方向发展。毫无疑问,对于开发桌面应用程序,WPF比我使用过的任何其他东西都要好,而且C#作为一种语言更加强大(不是速度)以及如何使用它。

2
WPF已经存在几年了,微软决定在WPF中重写Visual Studio(2010)是一个好的迹象,说明它将会一直存在。记住,这是市场上最受欢迎的IDE之一,也是微软团队意图的标志。
我们的组织去年采用了这项技术,虽然它有陡峭的学习曲线 - 你真的需要学习不同的思考方式 - 但它在我们所能开发的应用程序的丰富性方面带来了回报。我喜欢winforms,也是asp.net的铁杆粉丝,但是让我着迷的是WPF提供了构建块,而可能性则是无限的...
如果我是你,我会学习WPF以获得经验,并在以后收获回报。别忘了 - 如果你采用WPF,你也会学习Silverlight的核心 - 这是两个我个人认为不会消失的技术!

1
我正在学习编程,Matthew MacDonald写了一本超级好的书。我向每个人推荐这本书(事实上,在我发现他的书之前,我一直在网上搜索WPF)。还有一件事,“远离微软网站(MSDN)”。

1

是的,开始学习吧。它适用于Silverlight(虽然不是一对一的映射),它也是与Abobe Flex的MXML范例非常相似的模型。所以你将会得到三倍的收益。

我们开始看到需要使用它的工作,因此有很好的理由将其放在工具箱中。


0

如果你将在Windows平台上设计桌面应用程序,WPF是新兴的标准。WPF取代了一直主导Windows桌面的Win32 API,微软预计WPF平台会有类似的生命周期。

此外,它更加酷炫。

当然还有Silverlight。


WPF并不取代Win32,它是在比Win32更高的抽象层上构建的。 - Ashley Davis
是的,它是独立于Win32的(尽管它与之互操作非常好),而不是它的抽象。 - Tor Haugen
在Windows操作系统上,如何有什么东西是独立于Win32的呢?我以为Win32是操作系统执行所有功能的基本API。 - mooware
3
我的意思是GUI独立于Win32。我指的是Windows API传统上由应用程序与用户进行交互所使用的部分:GDI(gdi.dll),GUI(user.exe),常用对话框(comdlg32.dll),常用控件(commctrl.dll)。这是传统应用程序中使用的大部分Win32,但在WPF中不再使用。相反,WPF利用DirectX构建用户界面。 - Tor Haugen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接