【问题标题】:Choosing between WPF and Silverlight [closed]在 WPF 和 Silverlight 之间进行选择 [关闭]
【发布时间】:2010-04-08 17:17:14
【问题描述】:

我们有一个使用 ASP.NET/Ajax 开发的现有 Web 应用程序 我们计划将其移至 WPF 或 Silverlight。

有人可以比较这两种技术在生产力、性能、可维护性、权衡取舍、优缺点等方面吗?

另外,我是否也知道使用 Silverlight 优于 ASP.NET/AJAX 的优点/缺点?

感谢阅读。

【问题讨论】:

    标签: asp.net wpf ajax silverlight


    【解决方案1】:

    如果您使用 WPF,它本质上是一个“Pretty WinForms 应用程序”,而如果您使用 Silverlight,那么您将拥有一个“易于部署和管理的漂亮网络应用程序”。两者中的代码几乎相同,但这取决于您要定位的目标。鉴于您要替换 Web 应用,Silverlight 可能更有意义。

    【讨论】:

    • 只是为了扩展这一点,我想说如果您有疑问,请使用 Silverlight。它具有 WPF 的大部分功能,甚至可以作为独立应用程序安装。 Silverlight 唯一缺乏的是利用硬件处理复杂图形的能力(想想 3-D),尽管使用 Silverlight 4,它甚至获得了一些(不是 WPF 所具有的全部)使用 GPU 的能力。
    • 我完全同意你的看法。 Silverlight 现在真的很火,微软在不到 2 年的时间里发布了 4 个版本!虽然 Silverlight 确实是 WPF 的一个子集,但差异差距似乎越来越小。
    • Silverlight 的另一个好处是,如果您在 Silverlight 3 上进行标准化,那么您的应用程序可能会在 Windows Phone 7 上运行,只需很少的更改(主要是 UI 布局/大小)。如果 Windows Phone 7 成功了,那就太棒了!
    【解决方案2】:

    只有在客户端计算机上安装了 .NET 环境时,WPF 才会运行。 Silverlight 类似于 Adob​​e Flex(添加到网络浏览器的插件“运行时”)。

    【讨论】:

      【解决方案3】:

      WPF 基本上在桌面环境中运行,而 Silverlight 在基于浏览器的环境中运行。因为您在 ASP.Net/AJAX 中的应用程序选择 Silverlight。 Silverlight 是 WPF 的子集。所以像动画、控件模板、数据绑定(数据模板)这样的大部分事情都可以在 Silverlight 中完成。我发现使用 WPF/Silverlight 的主要优势之一是我们可以将 UI 团队和业务逻辑开发团队分开,以便他们可以同时工作。基本上它决定是使用桌面环境还是使用基于浏览器的问题。

      比较性能 桌面应用程序与基于浏览器的应用程序相比将占上风。使用诸如表达式混合之类的应用程序进行 UI 设计,这将为您的开发提供更大的灵活性。另一个优势是资源。这有点类似于 css,但它有一些很棒的附加功能来覆盖样式和基于键的样式开发。 如果你希望你的应用程序基于浏览器,我的建议是使用 Silverlight,否则选择 WPF

      【讨论】:

        【解决方案4】:

        如果您希望它保留为 Web 应用程序,您应该明确选择 Silverlight。另一方面,如果您愿意将此作为可安装的 Windows 应用程序,那么 WPF 将是更好的选择。

        【讨论】:

          【解决方案5】:

          如果您使用 MVVM 模式来设计您的应用程序,那么从一个迁移到另一个甚至两者都不是很难。您还可以让设计师使用 Blend 进城,而无需费力地编写代码。

          我的建议是使用一个或两个,但使用 MVVM 模式(复合应用程序指南在这方面有很大帮助)。

          【讨论】:

            【解决方案6】:

            除了上面所说的:您的应用程序的架构会有所不同,具体取决于您将其开发为 WPF 应用程序还是 Silverlight 应用程序。使用 Silverlight,您很可能必须使用 RIA 服务,并且与 WPF 相比,您的模型有不同的概念。 另外,很多人认为 Silverlight 会倒闭。所以你最好看看Html5

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2011-07-02
              • 2014-11-17
              • 1970-01-01
              • 2012-07-14
              • 2010-12-09
              • 2019-12-17
              • 2017-06-14
              • 2012-01-22
              相关资源
              最近更新 更多