首先学习Silverlight或WPF?

首先学习Silverlight或WPF?

Learn Silverlight or WPF first?

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

我想听听任何对这两者都有很好了解的人,并且可以推荐哪一个更好的起点和原因。


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

撇开通过已成为高度复杂的交织技术集合的逻辑进展的想法,并退后一步并问自己一系列问题:

  • 你的目标是什么;你想如何平衡利润与享受
  • 您是短期的还是长期的?
  • 你是那种喜欢擅长某事并且做得很多的人,或者一旦你完全理解它就会感到无聊吗?

接下来最艰难的一步就是接受任何给出的建议都是错误的;时间范围越长,就越有可能出现错误。如果建议超过6到12个月,建议极不正确的概率接近1。

我很快就能告诉你我的故事。在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

杰西自由
"Silverlight Geek"


我会先说Silverlight吧!

我以前用WPF和Silverlight编程。

但是,由于Silverlight是WPF的一个子集,如果你进入太深,并尝试转而编写Silverlight应用程序,那么你会在寻找你在WPF中学到的那个"标记",但在Silverlight中不可用。

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

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

因此,首先学习较小的子集,您可以稍后将该知识扩展到完整集,但如果您从完整集开始并沉迷于某些可用的细节,当有人要求您移植时,您将遇到麻烦您设计的利用WPF应用程序到Silverlight。


我会反对,先说学习WPF。

这是我的推理:

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

    • WPF书籍
  • 你没有处理Beta,移动目标

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

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

  • 由于SL中缺少功能,您不必担心重新学习正确执行操作


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


我在播客,博客和访谈中听到的每位行业专家都建议先学习Silverlight,然后再逐渐转向WPF,这是一个庞大的UI框架。

Silverlight很轻巧,允许您处理较小的控件和功能子集,以便您可以了解基于此新UI构建范例,

  • 模板
  • 数据绑定
  • 样式
  • 更新:07/2011

    我不想提到这一点,但最近微软通过提出IE 9和IE 10的强大功能,以及即将推出的Windows 8,更加关注HTML5,Javascript和CSS。

    随着时间的推移,越来越多的开发人员和CTO对Silverlight作为LOB应用程序平台持怀疑态度,我们怀疑Silverlight将仅限于Windows Phone和利基领域,如图形相关应用程序的医疗保健而非常规LOB应用程序。

    就目前看来,截至2011年夏季,未来可能看起来更加分散,纯粹的网络技术(HTML5,JS和CSS)有更多的机会,而不是插件和特定于操作系统的UI技术。


    我将从WPF开始,并做非常简单的控制熟悉的样本。你的目标应该是学习XAML和Binding。因此,如果您只是创建一些基本的WPF窗口应用程序将引导您的学习速度。然后最终你可以转向silverlight。是的,其他提到的Silverlight是WPF的一个子集。


    我将从学习XAML开始,阅读一些教程并使用XAMLPad。这将让您在实际构建应用程序之前了解基础知识。


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

    这完全取决于你。但是,我会说Silverlight还不是RTM,而WPF是。 WPF有很多关于这个主题的书籍,而Silverlight却没有。通过阅读其中一些书籍来获取WPF的整个Zen可能更容易,然后深入了解你想要玩的那本书。

    请记住,Silverlight有一个WPF控件的子集,一个配对的.Net框架,并不进行同步调用。只要您事先知道,您就可以开始学习整个基础的核心,并在以后根据最适合您的技术定制您的实践经验。


    关于Silverlight开发入门的一些提示


    推荐阅读

      linux命令创建用户组?

      linux命令创建用户组?,系统,代码,密码,用户组,用户,命令,信息,名称,新增,管

      查看linux用户命令行?

      查看linux用户命令行?,信息,系统,时间,名称,密码,用户,命令,地址,状态,设备,L

      linux所有用户命令行?

      linux所有用户命令行?,系统,信息,地址,工作,密码,命令,用户,时间,电脑,管理,L

      linux用户下的命令是?

      linux用户下的命令是?,系统,工作,管理,地址,命令,密码,基础,信息,目录,新增,L

      linux关机用户命令?

      linux关机用户命令?,系统,工作,信息,状态,管理,命令,基础,目录,用户,功能,lin

      linux看用户信息命令?

      linux看用户信息命令?,系统,密码,信息,状态,软件,情况,命令,用户,网络,时间,l

      linux下删除用户命令?

      linux下删除用户命令?,系统,代码,邮箱,用户组,命令,用户,名称,管理,电脑,账

      用户id的linux命令?

      用户id的linux命令?,系统,密码,信息,联系方式,地址,位置,用户,命令,用户名,

      linux命令测试客户端?

      linux命令测试客户端?,地址,系统,网络,工具,工作,分析,环境,命令,下行,资料,l

      linux删除用户组命令?

      linux删除用户组命令?,管理,系统,密码,电脑,名称,用户,用户组,名字,信息,工

      linux下用户权限命令?

      linux下用户权限命令?,管理,系统,密码,地址,权限,时间,基础,信息,基本知识,

      linux登陆用户命令?

      linux登陆用户命令?,系统,工具,信息,地址,软件,工作,命令,数字,服务,名称,Lin

      linux用户名改名命令?

      linux用户名改名命令?,系统,密码,命令,代码,名称,用户名,用户,终端,主机名,

      linux用户分组命令?

      linux用户分组命令?,系统,命令,电脑,信息,时间,标准,资料,用户,文件,用户组,L

      linux命令改用户所属?

      linux命令改用户所属?,系统,文件,名称,用户组,命令,用户,名录,基本知识,所

      linux系统用户组命令?

      linux系统用户组命令?,系统,管理,密码,代码,用户组,用户,命令,邮箱,电脑,名

      linux用户管理的命令?

      linux用户管理的命令?,系统,管理,信息,地址,工作,用户,单位,基础,数据,命令,L

      linux用户退出命令行?

      linux用户退出命令行?,状态,档案,标准,系统,命令,文件,模式,编辑,指令,主机,l

      linux用户自定义命令?

      linux用户自定义命令?,系统,时间,标准,软件,项目,电脑,服务,工具,基本知识,

      linux用户组命令设置?

      linux用户组命令设置?,管理,系统,密码,代码,电脑,用户组,用户,软件,新增,命