Silverlight能很好地满足这些需求吗?

本文关键字:需求 满足 很好 Silverlight | 更新日期: 2023-09-27 18:02:19

我正在寻找一个合适的客户端架构,将满足一些或所有以下要求。

我主要考虑的是Silverlight(但我也会考虑MVC或WPF,这取决于你的建议-我可能会交易这些要求中的一些,或者找到工作)。

我正在寻找Silverlight是否能够完全、部分或不能够支持以下每一项的评估,如果可能的话,详细说明每一项:

  • 必须能够通过WCF和MTOM可靠地上传大(~100MB)二进制文件
  • 必须能够支持文件下载,最好是在后台(即通过"同步"),尽管这可以简单地通过手动URL支持,如果有必要
  • 应该可以访问某种形式的本地存储-这可以是二进制或XML用于配置目的,但理想的是某种数据库(不要大惊小怪,只要它是安装/应用程序的一部分)
  • 应该能够根据用户配置文件动态配置自身。换句话说,当用户登录时,可用的UI和服务是动态确定的。
  • 应该支持某种形式的客户端通知(声音和/或托盘气泡)。理想情况下,这可以通过WCF双工来支持,但也可以通过轮询来完成。
  • 理想情况下,应该在多个平台上运行(Win/OSX)
  • 应该很容易部署-如果我需要在完全信任模式/OOB下运行Silverlight -用户如何获得新版本?
  • 应该最小化到系统托盘

如果您能就上述问题给我任何细节或想法,我将不胜感激。

编辑-附加问题

  • 在Silverlight 5 OOB中对本地存储/访问有任何限制吗?或者它的行为像一个标准的WinForms应用程序?
  • 是否有可能捆绑SQL express与Silverlight OOB .msi?
  • 动态配置Silverlight应用的最佳选择是什么?我看到有人提到MEF——这是首选的方法还是有其他的方法?

Silverlight能很好地满足这些需求吗?

必须能够通过WCF可靠地上传大型(~100MB)二进制文件和MTOM

必须能够支持文件下载,最好是在后台(即通过"同步"),尽管这可以简单地支持如果需要,通过手动URL

除非您运行的OOB具有更高的信任(或浏览器中的SL5),因此对本地文件系统的访问受限,否则您需要确保在隔离存储中有足够的空间用于下载。

应该能够访问某种形式的本地存储——这可能是二进制或XML用于配置目的,但理想的是某种数据库(只要它是安装/应用程序的一部分就可以了)

见上图。关于本地数据库支持,Windows Phone 7有一个SQLite端口,它也可以在Silverlight中工作(我最近测试了它)。

应该支持某种形式的客户端通知(声音和/或托盘)泡沫)。理想情况下,这将通过WCF双工来支持,但也可以通过轮询完成。

通知可以通过Silverlight的通知窗口完成(从SL4及更高版本开始支持)。实际的服务器端通知可以通过双工通道或Kaazing WebSockets网关等来完成。

应该很容易部署-如果我需要运行Silverlight在全信任模式/OOB -用户如何获得新版本?

你可以在运行时安装一个带有MSI安装程序的OOB客户端,并且仍然有Silverlight标准更新机制为你工作(需要Authenticode签名的XAP)。我几个星期前就这样做了。

应该最小化到系统托盘

AFAIK在SL4中不可能。不确定SL5。

所有我没有引用的点都应该起作用

做过一些Silverlight开发后,我经常觉得它提供的可能性有点受限。在我看来,它应该在浏览器中运行,具有类似web的界面。从你的描述来看,它更像是你想要的一个完整的应用程序,所以我推荐WPF和点击一次部署,自动处理更新。

从你的要求来看,我会建议WPF,完整的应用程序支持,但是当涉及到OS X支持时,那么你就有问题了,WPF不能在OS X上工作,只有Silverlight可以,所以我担心你有一些相互冲突的要求。