Silverlight 和 XBAP 有什么区别?你会在哪里使用一个与另一个?
4 回答
历史课。 我们制作 WPF 最初是为了让设计人员在涉及基于 Windows 的应用程序时能够更多地参与其中,因为这是我们从 WinForms 世界中发现的一致反馈。我们生产 WPF,它借用了从 HTML 中发现的类似技术,但采用了我们称之为成熟方式 (XAML) 的更多方式。
然后,我们决定(根据客户反馈)在 x 平台和 x 浏览器机器上启用这一愿景的一个子集。结果,我们最终得到了后来更名为 Silverlight 的 WPF/E(WPF Everywhere)。
WPF 与 Silverlight。 简单的答案是,如果您想创建一个具有 x-platform / x-browser 范围的解决方案,那么 Silverlight 是您的最佳选择。不利的一面是您将无法突破浏览器中强加的沙箱,因此,如果它的应用程序乐于脱离它所在的机器,Silverlight 可以为您提供一个非常合理的结果( Out Of Browser、Isolated Storage 等确实允许您比正常情况下更多地访问个人计算机)。
然而,WPF 可用于深度访问,这意味着您想要访问 USB 驱动程序或与 .NET 等的替代技术交谈。同样的原则,只是更深入的无限制访问。
您可以部署与 Silverlight 非常相似的 .XBAP 解决方案,但在访问方面提供了更深层次的访问……将其视为 WPF 和 Silverlight 之间的中间孩子。
向前走。 我们正在花费周期确保 WPF/Silverlight 在统一 API 等方面更多地融合,以使您能够升级/降低技术经验,而无需从根本上改变您的逻辑。我们今天已经制定了可以帮助您的框架(即 PRISM/MEF),但我们正在努力使这两种技术恢复到对大家的平等地位。
欢迎随时提供反馈,并随时在 Twitter 上关注我们,通过@teamsilverlight 进行投诉/表扬。
Scott Barnes / Rich Platforms 产品经理 / Microsoft。
Silverlight 是跨平台的,并在浏览器中运行其应用程序;它可以在您使用网络浏览器的任何地方使用。
WPF仅适用于 Windows,通常在桌面上运行其应用程序;它要求安装 .NET 框架。
Silverlight 可以被视为 WPF 的一个子集(尽管这在技术上并不正确)。它没有 WPF 所具有的功能集。但是,您在功能上失去的东西,您会在可采用性方面获得收益。
WPF 可以使用所谓的 XBAP 通过浏览器部署应用程序。不过,这与Silverlight 不同。Silverlight 应用程序实际上集成到浏览器中,而 WPF 只是将浏览器用作其进程的主机。
有关 WPF 和 Silverlight 之间差异的更深入指南,我将参考CodePlex 上的这份白皮书。
从用户的角度来看,WPF 浏览器应用程序用户将需要安装比 Silverlight 运行时高得多的总 dot net 框架。
WPF 浏览器应用程序将无法运行,除了 windows 操作系统
您可以在 WPF 浏览器应用程序中使用更多功能(如带摄像头和灯光的真实 3D),而 Silverlight 则无法使用这些功能。
最大的区别是沙盒。两者都是沙盒,但 WPF 浏览器应用程序(例如 XBAP)可以请求更多权限,但在 Silverlight 中您不能(根据设计)。