gpt4 book ai didi

WPF 与 Silverlight

转载 作者:行者123 更新时间:2023-12-03 04:31:17 27 4
gpt4 key购买 nike

Possible Duplicate:
What is the difference between WPF and Silverlight application?

WPF 和 Silverlight 之间的具体区别是什么?

最佳答案

这是一个极其广泛的问题。我的公司最近写了一份白皮书,概述了两种技术之间的差异,大约 70 页。不幸的是,它还没有发布,否则我会给你链接。

EDIT: As promised, here's the link to the whitepaper on Codeplex:

http://wpfslguidance.codeplex.com/

不过,我会尝试总结一下。

  1. WPF 是一个厚的 Windows 客户端平台,可以访问完整的 .Net Framework。 Silverlight 是一种基于浏览器的技术,可以访问 .Net Framework 的子集(称为 CoreCLR)。因此,您会注意到使用框架内看似日常的方法和对象的差异。例如,String 类的 Split() 方法在 Silverlight 中有 3 个重写,但在 .Net Framework 中有 6 个重写。您会经常看到这样的差异。

  2. 在 WPF 中,所有视觉渲染元素均派生自 Visual 基类。在 Silverlight 中,它们没有;相反,它们源自控制。然而,这两种技术最终都派生自 DependencyObject 类并沿层次结构向上发展。

  3. WPF 目前比 Silverlight 提供或拥有更多的用户控件;尽管这种差异正在通过 Silverlight 工具包和即将发布的 Silverlight 3 得到缓解。

  4. WPF 支持 3 种类型的路由事件(直接、冒泡和隧道)。 Silverlight 仅支持直接和冒泡。

  5. 存在相当多的数据绑定(bind)差异,下一版本的 Silverlight 将在一定程度上缓解这些差异。目前,Silverlight 不支持绑定(bind)模式、OneWayToSource 或 Explict UpdateSourceTriggers。此外,如果未设置,Silverlight 默认为 OneWay 数据绑定(bind),而 WPF 使用依赖属性指定的默认模式。

  6. Silveright 不支持多重绑定(bind)。

  7. Silverlight 支持 XmlDataProvider,但不支持 ObjectDataProvider。 WPF 两者都支持。

  8. Silverlight 只能进行异步网络调用。 WPF 可以访问完整的 .Net 网络堆栈,并且可以进行任何类型的调用。另外,目前,Silverlight 支持 SOAP,但无法原生处理 SOAP 错误异常(这可能在 Silverlight 3 中发生变化)。

  9. 密码学方面存在巨大差异(Silverlight 在命名空间中有 20 个类,而 WPF 可以访问 107 个类)。基本上,Silverlight 仅支持 4 种哈希算法和 AES 加密协议(protocol)。

  10. Silverlight 尚不支持:命令、验证、打印、XPS 文档、语音、3D、Freezable 对象或与 Windows 桌面的 InterOp;所有这些都可以在 WPF 中使用。

  11. Silverlight 支持浏览器互操作、更多媒体流选项(包括时间线标记和深度缩放)。 WPF 尚不支持这些功能。

这绝不是完整的,因为我试图将 70 页的文档缩减为要点。

最后,即使存在所有这些差异,微软仍在努力缩小这两种技术之间的差距。 Silverlight 工具包和 WPF 工具包都解决了每种技术的一些缺点。 Silverlight 3 将添加许多当前不可用的功能(例如元素到元素的数据绑定(bind))。但由于核心库的差异,总会存在一些Framework的差异。

关于WPF 与 Silverlight,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/944608/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com