【问题标题】:Silverlight vs WPF [closed]Silverlight vs WPF [关闭]
【发布时间】:2010-01-06 01:40:41
【问题描述】:

我的组织正在考虑将哪些技术用于我们的下一代系统。我们将使用 .NET,但尚未决定哪种用户界面技术最好。 Silverlight 和 WPF 似乎是最合适的选择。有人可以分享每种方法的优缺点吗?

【问题讨论】:

标签: .net wpf silverlight


【解决方案1】:

正如 Gabriel(和 Reed)所提到的,Silverlight 是 WPF 的精简版。

WPF 主要用于桌面应用程序,它具有 Silverlight 尚不具备的布局、动画和数据绑定方面的高级功能。 WPF 可以通过浏览器交付,但它不作为浏览器插件运行,因此无法与浏览器中的任何其他内容进行交互。可以创建承载 WinForms 控件和窗口的 WPF 应用程序 - 这可以更轻松地转换现有 WinForms 代码组合(如果这对您很重要)。 WPF 还具有比 Silverlight 更复杂的 3D 功能 - 虽然不是很多。

Siverlight,可通过 Mono 运行时和 Silverlight 的 Moonlight 端口在多个平台(如 Linux 和 OSX)上使用。 Silver light 既可以作为独立应用程序运行,也可以在浏览器环境中运行——这使得创建基于 Web 的应用程序成为可能。当作为基于浏览器的插件运行时,Silverlight 应用程序可以与浏览器中的内容交互,并且可以与 HTML 并排显示。您还可以使用 JavaScript 操作 Silverlight 应用程序 - 创建一个近乎无缝的编程环境。 Silverlight 应用程序存在一些限制 - 例如,WCF 调用都是异步的(由于 Silverlight/浏览器线程模型)。此外,并非所有 .NET 框架 SDK 都可用于 Silverlight 应用程序。

这两种技术非常相似,因为它们使用标记和代码的组合来提供功能。要在它们之间进行选择,您需要确定是构建基于浏览器的应用程序还是独立的应用程序,是否希望移植到其他平台,以及是否需要 .NET 中提供的全套库。

在开发工具方面 - 恕我直言,最好的工具是 Expression Blend - 它具有优雅而强大的 UI,可用于直观地创建 WPF 或 Silverlight 用户界面。它还与 Visual Studio 集成 - 这仍然是一个卓越的开发环境(Blend 的代码编辑功能有限)。还有诸如 Expression Design 和 Expression Encoder 之类的工具可帮助创建图形和处理视频,以便在 WPF 和 Silveright 应用程序中使用。

【讨论】:

    【解决方案2】:

    Silverlight 的功能远不如 WPF,即使在版本 4 中也是如此。

    它可以在浏览器中运行,也可以在浏览器外运行,并且具有一些优势 - 但 Silverlight 与 WPF 相比的主要优势在于部署相关。部署 Silverlight 应用程序非常容易 - 只需在位于您服务器上的网页中引用 XAP,它就会被部署(前提是您的用户安装了 Silverlight)。 WPF 在部署方面需要做更多的工作,因为它是一个完整的桌面应用程序。

    话虽如此,WPF 提供了更多功能。它提供对完整 .NET 框架的访问(而不是 [不断增长的] 子集)。

    我个人的偏好是使用 Silverlight - 前提是应用程序不需要与旧版软件互操作、访问系统上的资源或 Silverlight 中不可用的其他内容。但是,如果您需要做任何会对系统造成负担的事情(即:需要并行性的繁重计算、图形资源的使用、复杂的 3D 工作等),那么 WPF 就是您的理想之选。

    【讨论】:

    • 谢谢里德。我想其中一些不可用的功能(例如互操作)可以通过使用 WCF 使用 SilverLight 来完成?
    • 那么您并没有真正使用 Silverlight - 您将把它移到一个单独的应用程序中。在 SL4 中,您可以使用 COM 托管(仅在浏览器之外)来完成其中的一些任务,但此时,WPF 更易于使用。如果您想要一个应用程序,并且需要互操作,请使用 WPF...
    【解决方案3】:

    Silverlight 是用于 Silverlight 浏览器插件的 WPF 子集。两者都很好,但您必须决定最终是基于 Web 的应用程序还是 Windows 应用程序。

    Silverlight 不具备 WPF 的所有功能(部分出于安全原因 - 它用于浏览器)。但是,使用 Silverlight,您可以访问所有其他基于 Web 的应用程序优势(单一升级位置等 - JavaScript、CSS 和 HTML)。

    【讨论】:

    • SilverLight 现在也可以在浏览器外运行
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-11
    • 2011-07-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多