背景: 我基本上没有Silverlight的经验,被要求开始研究这项技术并为客户提供一些见解,他们可能想用Silverlight重建其.Net桌面应用程序的用户界面。因此,我的经验是我能够通过谷歌搜索(令人惊讶的不容易)和我做过的少数教程所获得的。 我知道Silverlight可以使用ASMX Web服务、WCF服务或REST与服务器进行通信。
问题: 有没有其他官方或非官方的通信方法?
提前感谢, David
背景: 我基本上没有Silverlight的经验,被要求开始研究这项技术并为客户提供一些见解,他们可能想用Silverlight重建其.Net桌面应用程序的用户界面。因此,我的经验是我能够通过谷歌搜索(令人惊讶的不容易)和我做过的少数教程所获得的。 我知道Silverlight可以使用ASMX Web服务、WCF服务或REST与服务器进行通信。
问题: 有没有其他官方或非官方的通信方法?
提前感谢, David
从这里开始:
http://msdn.microsoft.com/zh-cn/library/dd470099(VS.95).aspx
http://videos.visitmix.com/MIX08/T13
http://videos.visitmix.com/MIX09/T42F
我有点偏袒这项技术,因为我曾在其中工作过 :), 但我建议你考虑使用 WCF。
这种方法提供了极佳的可用性:只需几分钟即可在项目中“添加新的...启用 Silverlight 的 WCF 服务”,然后一切就可以运行了。在 Silverlight 3 中,此方法使用了一种非常高效的二进制 XML 协议,在调试时可以轻松地切换到常规文本 XML,只需进行两行配置更改即可。并且它与大多数身份验证模型都很好地集成在一起(请参阅上面文档链接中的安全部分)。
当然,你也可以使用 HttpWebRequest、WebClient 或甚至是 sockets 来自定义通信。如果你想在服务器上使用 REST,则最好使用 WebClient。请记住,一些在 REST 中通常可以实现的事情(如使用 PUT 和 DELETE HTTP 动词)由于浏览器限制,在浏览器插件(如 Flash 和 Silverlight)中不可能实现。
最后,还有 .NET RIA 服务。对于某些场景来说,它有点过于重量级,并且没有一些 WCF 的功能(如二进制和双工),但它不仅是与服务器通信的一种方式:它为构建带有服务器端数据的 SL 应用程序提供了一个完整的规范框架,并免费提供了许多不错的功能,例如验证、分页等。