2008-09-14 65 views
23

看来,Silverlight/WPF是.NET用户界面开发的长期未来。这很好,因为我可以看到在客户端和Web开发方面重用XAML技能的优势。但是看看WPF/XAML/Silverlight,它们看起来非常庞大,所以最适合开始的地方在哪里?首先学习Silverlight或WPF?

我想听听任何一位对这两方面都有深入了解的人,并能推荐哪一个更好的出发点和原因。

回答

28

你应该先了解ASP.NET或的WinForms? ASP或MFC? HTML或VB? C#或VB?

预留的想法,有过这已成为一个非常复杂交织的一系列技术的逻辑发展,并退后一步,然后问自己一系列问题:

  • 你有什么目标;你想如何平衡利润与享受
  • 你是短期导向还是长时间运作
  • 你是喜欢做什么事情,做很多事情或者你会感到无聊的人的类型你完全明白吗?

接下来也是最难的一步是接受任何你给出的建议肯定是错的;时间越长越可能不正确。如果建议的时间超过六到十二个月,那么建议的可能性非常不正确。方法1.

我只能很快告诉你我的故事。在2000年,我很高兴作为一名顾问在Windows应用程序中使用C++进行有益的工作,撰写关于ASP.NET和WinForms的文章。然后我看到C#和世界颠倒了。我从未回去。

两年前,我拥有了同样的启示,只有一个数量级更大,更强大,对Silverlight更有信心。是的,WPF非常棒,可能我对此一直都很担心,但我相信我的直觉是Silverlight改变了一切。毫无疑问,毫无疑问,今天毫无疑问,自从.NET(当然)以来,Silverlight是微软最重要的开发平台,并且有可能在切换到C++之后。

简而言之,这就是为什么。我不明白它的局限性在哪里。对于大多数平台我都这样做:你可以做到这一点,但你不能那样做。 WPF是一个非常好的例子,A​​SP.Net和WinForms也是如此,到目前为止,事实上也是如此。
使用Silverlight,我还没有看到边界。 Silverlight已经将桌面应用到了手机上,我没有看到它有任何停止的理由。是的,这是事实,它受到浏览器的约束,但我认为这不像监狱牢房,而是Silverlight将骑在很多地形上的坦克(它一定很晚,我应该上床睡觉)。

在任何情况下,就目前而言,学习Silverlight是一种天然气,Silverlight.net site上有很多材料,关于学习Silverlight的最好的东西是,如果你没有看到你需要的东西,你可以对我很重要,我会确保你很快得到它。

享受,祝你好运,肮脏的小秘密是你会罚款,无论你选择。这全都只是软件。

-jesse


杰西自由 "Silverlight Geek"

+1

“如果你没有看到你需要的东西,可以在我看来” TIFF支持! mbeckish 2009-01-27 18:47:26

5

Silverlight是WPF的精简版本,所以它应该有更少的内部学习内容。另一方面,这两个平台有不同的目标(富网客户端),所以我猜这取决于你要构建的应用程序。
如果你只是想自己学习(不久的将来没有应用程序),我会选择Silverlight,因为它不会被同化。尽管如此,Silverlight几乎是一个移动的目标,远远超过WPF,所以你必须不时地跟上一些变化(作为早期使用者的乐趣:))。
WPF有更多的东西,你可能会想在某些时候使用,但我会等待需求首先出现。

2

我会从学习XAML开始,阅读一些教程并使用XAMLPad进行游戏。在实际构建应用程序之前,这会给你一些基本的感受。

14

一些技巧我想说的Silverlight先走了!

我以前用WPF和Silverlight编程过。

但由于Silverlight是WPF的一个子集如果你陷得太深去尝试切换到编写Silverlight应用程序,你会被抓你的头寻找一个“标签”,你学会了WPF爱,但在Silverlight中不可用。

当您首先掌握Silverlight的基本功能时,WPF中额外的机制/触发器/任何功能将简单地将添加到到您已知的大部分内容中。

WPF中的Silverlight不同于的功能级别,而不仅仅是一些缺失的控件或动画。以WPF触发机制为例,在Silverlight中完全不可用。

因此,先学习较小的子集,稍后可以将这些知识扩展到整个集合,但是如果您从全套开始学习并沉迷于某些可用的细节,那么当有人要求您将设计利用的WPF应用程序移植到Silverlight。

+0

感谢您的答复,我会去与你的意见,并第一次尝试了Silverlight的。 – 2008-09-25 13:09:01

2

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

4

我在播客,博客和访谈中听到的每位行业专家都建议学习先Silverlightlight然后逐渐转向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年夏季,与纯插件和操作系统特定的UI技术相比,未来可能会出现更多纯Web技术(HTML5,JS和CSS)的机会。

+0

+1进行更新。 Windows Metro已经在优先考虑:http://msdn.microsoft。com/en-us/windows/apps/ – PhillipKregg 2011-12-01 23:55:07

1

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

这真的取决于你。不过,我会说silverlight不是RTM,而WPF是。 WPF有很多关于这个主题的书籍,silverlight没有。通过阅读这些书籍中的一些来获得WPF的整个禅宗可能会更容易,然后潜入你想玩的任何一个。

请记住,silverlight具有WPF控件的子集,一个配对的.Net框架,并且不会执行同步调用。只要你事先知道,你就可以开始学习整个基础的核心,并在稍后调整你的实际经验,以适合你的技术。

7

我会反对谷物,并说先学习WPF。

这里是我的推理:

  • 更多的资源可用于WPF比Silverlight的,如书籍,博客和MSDN文档

  • 你没有处理测试版,移动目标

  • 你不必处理与仅异步调用

  • 缺乏的功能,如合并字典,触发器,TileBrushes等不局限于工作

  • 您不必担心重新学习正确地做,因为事物的特点缺乏SL