先学习Silverlight还是WPF?

23

看起来,Silverlight/WPF是使用.NET进行用户界面开发的长期未来。这很棒,因为我可以看到在客户端和Web开发方面重用XAML技能的优势。但是看着WPF/XAML/Silverlight,它们似乎是非常庞大的技术,那么从哪里开始最好呢?

我想听听那些对两者都有很好了解并且能够推荐哪个是更好的起点以及原因的人。

9个回答

28

您应该先学习ASP.NET还是Winforms?ASP还是MFC?HTML还是VB?C#还是VB?

暂且不管现在已成为高度复杂技术交织的逻辑进展,退一步想想以下问题:

  • 您的目标是什么;您如何平衡利润和乐趣?
  • 您是短期或长期取向?
  • 您是那种喜欢精通某件事并经常做的人,还是在完全理解后就感到无聊?

接下来,也是最难的一步,是要接受任何给出的建议都很可能是错误的。给出的建议时间跨度越长,错误的概率越大。如果建议超过六到十二个月,那么建议极有可能是完全错误的。

我只能快速地告诉您我的故事。在2000年,我作为一个咨询顾问,在Windows应用程序中以C++盈利,并写有关ASP.NET和WinForms的文章。然后我看到了C#,世界翻转了。我再也没有回头。

两年前,我有了同样的领悟,只是更大、更强烈,并对Silverlight有更多的信念。是的,WPF很了不起,也许我对此一无所知,但我从内心深处相信Silverlight改变了一切。当时毫无疑问,今天仍然如此,Silverlight是自.NET以来(肯定)甚至可能是自转向C ++以来,微软最重要的开发平台。

简单来说,原因在于我不明白它的局限性在哪里。对于大多数平台,我都清楚:您可以这样做,但不能那样做。WPF是一个很好的例子,ASP.Net和WinForms也是如此,实际上直到现在的所有内容都是如此。

使用Silverlight,我还没有看到任何限制。Silverlight已经从桌面跨越到手机上,我不认为它会止步于此。是的,它受浏览器的限制,但我认为这不是牢狱,而是Silverlight将在其中穿越许多地形的坦克(现在应该很晚了,我应该去睡觉)。

无论如何,目前来说,学习Silverlight非常有趣,Silverlight.net网站上有很多材料,而最好的学习Silverlight的事情是,如果您找不到所需内容,您可以联系我,我会确保您很快得到它。

享受,祝你好运,而肮脏的小秘密是,无论你选择哪个,你都会很好。这只是软件而已。

- 杰西·利伯蒂(Jesse Liberty) “Silverlight极客”


1
如果你没有找到需要的,你可以喊我一声。 <喊>TIFF支持!</喊> - mbeckish

14

我建议先学习Silverlight!

我之前曾经用过WPF和Silverlight编程。

但由于Silverlight是WPF的一个子集,如果你深入了解WPF,然后尝试切换到编写Silverlight应用程序,你可能会为那些你在WPF中学会并且喜欢的"标记"而感到困惑,因为它们在Silverlight中不可用。

当你先掌握Silverlight的基本技能时,WPF中的额外机制/触发器/其他特性将简单地添加到你已经掌握的大部分内容中。

Silverlight和WPF之间的区别在功能级别上,而不仅仅是一些缺少控件或动画。例如,WPF触发器机制在Silverlight中无法完全使用。

因此,先学习较小的子集,您可以随后扩展该知识到完整的集合中,但如果您从完整的集合开始,并且对某些可用的好处上瘾,那么当有人要求您将基于WPF设计的应用程序移植到Silverlight时,您将面临麻烦。


谢谢您的回复,我会采纳您的建议,先尝试使用Silverlight。 - Phil Wright

7

我会违反潮流,建议先学习WPF。

我的理由如下:

  • 有比Silverlight更多的资源可用,例如书籍、博客和msdn文档

  • 您不必处理Beta版本或移动目标

  • 您不必仅使用异步调用来处理工作

  • 不受缺少功能的限制,例如Merged Dictionaries、Triggers、TileBrushes等

  • 您不必担心因为SL中缺少功能而重新学习正确的操作方式


5
银光(Silverlight)是WPF的简化版,因此内部需要学习的内容较少。另一方面,这两个平台有不同的目标(Web和丰富客户端),所以我想这取决于您要构建的应用程序。
如果您只是想为自己学习(没有即将到来的应用程序),我会选择银光,因为需要吸收的内容更少。但是,银光基本上是一个移动的目标,比WPF更多,因此您需要不时跟上一些变化(作为早期采用者的乐趣 :))。
WPF具有更多的功能,您可能希望在某个时候使用,但我建议先等待需求出现。

4
我听过的所有行业专家在播客、博客和采访中都推荐先学习 Silverlight,然后逐渐转向 WPF,这是一个庞大的 UI 框架。
Silverlight 轻便,允许您在较小的控件和功能子集上工作,以便您了解基于以下内容的新 UI 构建范例:
1.模板化 2.数据绑定 3.样式
更新:07/2011
我不想提及这一点,但近来微软已经通过推进 IE 9、IE 10 的功能以及即将到来的 Windows 8,更加关注 HTML5、Javascript 和 CSS。
随着时间的推移,越来越多的开发人员和 CTO 对 Silverlight 作为 LOB 应用程序平台持怀疑态度,我们怀疑 Silverlight 将被限制在 Windows Phone 和特定领域,如医疗保健或图形相关应用程序等方面,而不是常规的 LOB 应用程序。
目前看来,截至 2011 年夏季,未来可能会出现更多机会,纯 Web 技术(HTML5、JS 和 CSS)相对于插件和特定操作系统的 UI 技术。

更新加一。Windows Metro已经占据主导地位:http://msdn.microsoft.com/en-us/windows/apps/ - PhillipKregg

2

我建议先学习XAML,可以通过阅读一些教程并在XAMLPad上进行实践来掌握基础知识,这样在实际构建应用程序之前就能有所感悟。


2

我建议从WPF开始,做简单的控件熟悉样例。你的目标应该是学习XAML和绑定。所以,如果你只创建一些基本的WPF窗口应用程序,将会提高你的学习速度。最后你可以转向Silverlight。正如其他人在这里提到的,Silverlight是WPF的一个子集。


1

嗯,这取决于你将要做什么。如果你在做客户端/服务器,那么我会选择WPF。如果你在一个可以保证所有机器上都安装了.Net的环境中工作,那么我也会选择WPF,因为你可以使用所谓的XBAP,这是一个通过浏览器运行的WPF应用程序。

真的取决于你。但是,我要声明silverlight尚未RTM,而WPF已经完成了。有很多关于WPF的书籍,而没有关于silverlight的。通过阅读其中几本书,可能更容易理解WPF的整个基础,并深入研究你想玩的任何一款技术。

只需记住,silverlight具有WPF的子集控件,精简的.Net框架,并且不支持同步调用。只要你提前知道这些,你就可以开始学习整个基础并根据自己的实际体验选择最适合你的技术。


0

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