【问题标题】: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
【解决方案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 不是为开发桌面应用程序而设计的,它的主要目标是多平台支持。
【解决方案5】:
当然,如果您指的是 Out of Browser 应用程序。 Seesmic Desktop 2 应用程序是这些应用程序之一的一个很好的例子,它有自己的更新机制。以这种方式使用 XAP/MEF 插件模型和 Silverlight 似乎很容易。
Seesmic Desktop 2
我们正在按照同样的思路开发一个 OOB 应用程序,只需一次互联网下载,您就完成了。但是,您不会获得与 WPF 中完全相同的 API。
【解决方案6】:
正如其他人所指出的,Silverlight 应用程序可以安装为在“浏览器外”运行,但即使信任度提高,它们仍然对自己的功能有很大限制,当然也没有“完全访问计算机”。
从头开始创建应用程序,您可能需要考虑并行 Silverlight 和 WPF 构建。通过使用“添加为链接”将一个项目(例如 WPF)中的 .cs 文件添加到另一个项目(Silverlight),可以或多或少地共享代码。 XAML 文件不能以这种方式链接,需要复制,但这可能只涉及复制和粘贴,具体取决于您的结构。网络上有很好的例子。
与不得不在某些时候突然切换类型并为时已晚发现不兼容/限制相比,并行开发这两种类型可能需要的工作量要少得多。