是否可以使用Silverlight创建桌面应用程序?

时间:2010-10-27 12:40:29

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

我已经使用WPF一段时间了,我一再认识到微软在Silverlight中投入了它的优势,而不是WPF(RIA服务,默认主题,控件等)。

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

BTW,我认为LightSwitch应用程序是使用Silverlight作为独立桌面应用程序生成的。

6 个答案:

答案 0 :(得分:2)

来自MSDN:

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

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

答案 1 :(得分:1)

Silverlight 3支持浏览器外功能。

引自Wikipedia silverlight page

  

Silverlight 3支持浏览器外体验,即可以将Silverlight应用程序安装到系统以进行脱机访问(前提是应用程序清单旨在允许本地安装),以便在浏览器外部运行。

此处还有一个快速howto

答案 2 :(得分:1)

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

使用Silverlight 4,您可以创建完全信任的应用程序,它们可以完全访问计算机。

更多关于Network Security Access Restrictions in Silverlight

答案 3 :(得分:1)

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

然而,微软并不只是投资银光。微软也在投资WPF。虽然可以用Silverlight创建浏览器应用程序,但与完整的WPF应用程序相比,它们有很多限制。不要忘记Silverlight只是WPF的一个子集,例如,silverlight没有ADO.NET,硬件设备因此,如果您的应用程序仅仅是一个业务应用程序而您不必直接访问硬件设备或数据库,那么Silverlight可能是一个选项,但是如果您的应用程序访问客户端直接加工硬件资源,那么您最好使用WPF。

我的建议是,如果您事先知道它将是一个桌面应用程序,那么请使用WPF(或者甚至可能是XBAP)。根据我的经验,有用的应用程序随着时间的推移而增长,总是不时地要求新的功能。如果将来要求使用Silverlight无法完成的功能并且只能通过WPF完成,那么您将遇到大麻烦,因为您需要在WPF中重写您的应用程序,并且您很难说服您的首席财务官分配更多资金只是为了实现一个功能。 Silverlight不是为开发桌面应用程序而设计的,其主要目标是支持多平台。

答案 4 :(得分:0)

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

我们正在开发一个同样的OOB应用程序,一个互联网下载就完成了。但是,你不会得到与WPF完全相同的API。

答案 5 :(得分:0)

正如其他人所指出的那样,可以安装Silverlight应用程序以运行“浏览器外”,但即使信任度提高,他们仍然会对他们可以做的事情有很大的限制,当然也没有“完全访问”电脑”。

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

并行开发这两种类型可能比在某些时候突然切换类型并且发现不兼容性/限制太迟的努力要少得多。