如果我理解正确,Microsoft Silverlight是一个轻量级.NET实现,意味着在浏览器内部在客户端运行。所以现在我听说“浏览器外”的Silverlight应用程序,我很困惑。
与传统的.NET桌面应用程序相比,“浏览器外”Silverlight应用程序的优势是什么?
答案 0 :(得分:5)
Silverlight应用程序的浏览器外安装仍然在安全沙箱中运行,而传统的.NET桌面应用程序则不会。
OOB的目标是让用户能够将基于Web的应用程序从其浏览器容器中取出并使其更易于访问。它仍然是基于Web的应用程序。值得注意的是,这适用于Mac,而传统的.NET桌面应用程序则不然。
SL4 OOB使这个区域变得更加混乱,现在可以要求用户提升信任度。现在沙箱更加轻松,并且有更多机会使用本机操作系统。但是,仍然存在许多限制,主要是为了支持多平台。如果它成为一个事实,那么可信的OOB往往只能在Windows上运行,这是不可取的。这是否可以避免还有待观察。
因此,如果您正在考虑使用全功能的Windows桌面应用程序,那么您最好使用WPF。另一方面,如果您不需要完全访问操作系统,您可以通过网页提供和/或您希望能够在Windows和Mac(以及可能的其他平台)上运行,然后Silverlight 4 OOB + Elevated信任可能就是你所需要的。
答案 1 :(得分:3)
Silverlight 3浏览器外浏览器应用程序允许任何Silverlight应用程序具有桌面快捷方式,并且不需要打开浏览器来运行应用程序(因此从技术上讲,即使您处于离线状态,您现在也可以运行该应用程序,因为您不必通过网络获取SL应用程序。)
使用SL 4,您现在可以拥有提升的权限,允许SL应用程序访问本地资源(例如网络堆栈和文件系统)。
还有一个简单的API调用,用于浏览器外SL应用程序在启动时检查更新,并从服务器下载更新。这可以被视为类似于一次性部署,但它会自动且快速地发生,因此它比单击一次更有效率和直接性。
与传统的.NET应用程序相比(在这种情况下,让我们与WPF进行比较,因为这实际上是WinForms的替代品),安装方式很少。没有安装程序,只有xap文件,可以轻松托管在网络上并且可以快速安装。 SL使用简化的.NET框架,这似乎是负面的。但是,SL应用程序的典型模式是将大部分繁重的工作放在服务层中。然后,在服务层中,您拥有完整的.NET框架,并且可以执行任何您想要的操作(例如使用ADO.NET访问数据库)。
答案 2 :(得分:2)
I answered a similar question here。所有这些都应该适用,除了更好的html集成。
答案 3 :(得分:0)
图书馆是两个应用程序之间需要考虑的另一件事。例如,Silverlight 4原生内置支持与开箱即用的网络摄像头和麦克风交谈,而WPF和完整的.net Framework有一个非常大的第三方库社区可供您使用,您可能需要源代码如果你想在Silverlight下重建它们。
另一个因素是沙箱中的限制,例如,您将无法编写可以使用Silverlight 4中的任何套接字连接到任何服务器的应用程序。