Silverlight/WPF 似乎是使用 .NET 进行用户界面开发的长期未来。这很棒,因为我可以看到在客户端和 Web 开发方面重用 XAML 技能的优势。但是看看 WPF/XAML/Silverlight,它们似乎是非常庞大的技术,那么从哪里开始最好呢?
我想听听任何对两者都有很好的了解并可以推荐哪个是更好的起点以及原因的人的意见。
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 最好的一点是,如果你没有看到你需要的东西,你可以大喊大叫在我这里,我会确保你很快得到它。
享受吧,祝你好运,一个肮脏的小秘密是,无论你选择哪一个,你都会没事的。这一切都只是软件。
-杰西
杰西·利伯蒂 《银光极客》
我会说先使用 Silverlight!
我以前用 WPF 和 Silverlight 编程过。
但是,由于 Silverlight 是 WPF 的一个子集,如果您深入研究并尝试切换到编写 Silverlight 应用程序,那么您将在寻找您在 WPF 中学会喜欢但在 Silverlight 中不可用的“标签”时摸不着头脑。
当您首先掌握 Silverlight 中的基本内容时,WPF 中的额外机制/触发器/任何功能将简单地添加到您已经知道的大部分内容中。
WPF 中的 Silverlight 在功能级别上有所不同,而不仅仅是缺少一些控件或动画。以 WPF 触发器机制为例,它在 Silverlight 中并不完全可用。
因此,首先学习较小的子集,您可以稍后将这些知识扩展到全套,但如果您从全套开始并沉迷于一些可用的细节,当有人要求您移植时,您将遇到麻烦您设计的使用 WPF 应用程序到 Silverlight。
我会反对说先学习WPF。
这是我的推理:
可用于 WPF 的资源比 Silverlight 多得多,例如书籍、博客和 msdn 文档
您不是在处理 Beta 移动目标
您不必只处理异步调用
不受缺少合并字典、触发器、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 年夏天,未来可能看起来支离破碎,纯 Web 技术(HTML5、JS 和 CSS)的机会更多,而不是插件和特定于操作系统的 UI 技术。
我将从学习 XAML 开始,阅读一些教程并使用 XAMLPad。这将使您在实际构建应用程序之前对基础知识有所了解。
我将从 WPF 开始并做非常简单的控件熟悉示例。你的目标应该是学习 XAML 和绑定。因此,如果您只是创建一些基本的 WPF 窗口应用程序将引导您的学习速度。然后最终你可以转移到silverlight。是的,正如其他人在这里提到的,Silverlight 是 WPF 的一个子集。
嗯,这取决于你要做什么。如果您正在处理客户端/服务器,那么我会使用 WPF。如果您在可以保证所有机器上都安装了 .Net 的环境中工作,那么我也会使用 WPF,因为您可以使用所谓的 XBAP,它是一个运行通过的 WPF 应用程序浏览器。
这真的取决于你。但是,我会说silverlight 还不是RTM,而WPF 是。WPF 有很多关于这个主题的书籍,而 silverlight 没有。通过阅读其中几本书可能更容易获得 WPF 的全部禅宗,然后深入研究您想玩的任何一本。
请记住,silverlight 具有 WPF 控件的子集,这是一个配对的 .Net 框架,并且不进行同步调用。只要您事先了解这一点,您就可以开始学习整个基础的核心,并在以后根据最适合您的技术调整您的实践经验。