似乎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
Jesse Liberty "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有很多你可能想要在某些时候使用的东西,但我会等待首先出现的需求.