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