【问题标题】:Is it possible to create a desktop application using Silverlight?是否可以使用 Silverlight 创建桌面应用程序?
【发布时间】:2011-05-01 07:15:00
【问题描述】:

我使用 WPF 已经有一段时间了,我不断地意识到微软将其精力投入到 Silverlight 上,而不是 WPF(RIA 服务、默认主题、控件等)。

我认为迁移到 Silverlight 可能是个好主意(即使用 Silverlight 4.0 创建独立的桌面应用程序),问题是这是否可能。

顺便说一句,我认为 LightSwitch 应用程序是使用 Silverlight 作为独立桌面应用程序生成的。

【问题讨论】:

    标签: wpf silverlight xaml silverlight-4.0 desktop-application


    【解决方案1】:

    来自 MSDN:

    Silverlight 3 应用程序不再局限于在浏览器中运行。它们可以在浏览器中运行,也可以从浏览器中分离并从桌面运行。这些浏览器外应用程序允许您将 Silverlight 3 应用程序的丰富性直接带到桌面,而不受在浏览器中运行的限制。

    链接:Building An Out-of-Browser Client With Silverlight 3

    【讨论】:

      【解决方案2】:

      可以使用 silverlight 3.0 或更高版本创建独立的桌面应用程序(浏览器应用程序之外),并且效果很好。现在,即使不打开浏览器,也可以安装浏览器外应用程序,如 blog post 所示。Silverlight 非常棒,silverlight 应用程序甚至可以在 MAC 和 Linux 上运行(有限支持)

      但是,Microsoft 只投资 Silverlight 的说法是不正确的。微软也在投资 WPF。虽然可以使用 silverlight 创建浏览器应用程序,但与成熟的 WPF 应用程序相比,它们有很多限制。不要忘记,silverlight 只是 WPF 的一个子集,例如,silverlight 没有 ADO.NET,硬件设备访问等。因此,如果您的应用程序只是一个业务应用程序并且您不必直接访问硬件设备或数据库,那么 silverlight 可能是一种选择,但是如果您的应用程序直接访问客户端计算机硬件资源,那么您最好使用 WPF。

      我的建议是,如果您事先知道它将是一个桌面应用程序,那么就使用 WPF(或者甚至可能是 XBAP)。以我的经验,有用的应用程序会随着时间的推移而增长,总是会不时地请求新功能。如果将来要求的功能不能用silverlight完成,只能用WPF完成,那你就麻烦大了,因为你需要用WPF重写你的应用程序,你很难说服你的CFO分配更多资金只是为了实现一项功能。 Silverlight 不是为开发桌面应用程序而设计的,它的主要目标是多平台支持。

      【讨论】:

        【解决方案3】:

        Silverlight 3 支持浏览器外功能。

        引用Wikipedia silverlight page

        Silverlight 3 支持浏览器外体验,即,Silverlight 应用程序可以安装到系统以供离线访问(如果应用程序清单设计为允许本地安装),它们在浏览器之外运行。

        这里还有一个快速的howto

        【讨论】:

          【解决方案4】:

          非浏览器应用程序具有与浏览器应用程序相同的安全限制。

          使用 Silverlight 4,您可以创建对计算机具有完全访问权限的完全信任应用程序。

          更多关于Network Security Access Restrictions in Silverlight

          【讨论】:

            【解决方案5】:

            当然,如果您指的是 Out of Browser 应用程序。 Seesmic Desktop 2 应用程序是这些应用程序之一的一个很好的例子,它有自己的更新机制。以这种方式使用 XAP/MEF 插件模型和 Silverlight 似乎很容易。 Seesmic Desktop 2

            我们正在按照同样的思路开发一个 OOB 应用程序,只需一次互联网下载,您就完成了。但是,您不会获得与 WPF 中完全相同的 API。

            【讨论】:

              【解决方案6】:

              正如其他人所指出的,Silverlight 应用程序可以安装为在“浏览器外”运行,但即使信任度提高,它们仍然对自己的功能有很大限制,当然也没有“完全访问计算机”。

              从头开始创建应用程序,您可能需要考虑并行 Silverlight 和 WPF 构建。通过使用“添加为链接”将一个项目(例如 WPF)中的 .cs 文件添加到另一个项目(Silverlight),可以或多或少地共享代码。 XAML 文件不能以这种方式链接,需要复制,但这可能只涉及复制和粘贴,具体取决于您的结构。网络上有很好的例子。

              与不得不在某些时候突然切换类型并为时已晚发现不兼容/限制相比,并行开发这两种类型可能需要的工作量要少得多。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2012-02-06
                • 2020-09-22
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2013-06-18
                • 1970-01-01
                相关资源
                最近更新 更多