所以,我几个月来一直在使用WCF Ria服务,我想知道为什么有人会使用WCF basicHttp webservice而不是使用WCF RIA服务?
有人告诉我,RIA Services不适合企业级应用程序,我想知道为什么?
W / out RIA似乎必须在2个区域(客户端和服务器)中编写验证逻辑。此外,RIA可以非常轻松地处理角色和成员资格。如果要使用WCF basicHttp webservice,需要多少额外工作?使用RIA有什么好处?和..有没有人有使用wcf basicHttp webservice的企业级silverlight应用程序的任何好例子?
谢谢!
答案 0 :(得分:1)
Silverlight中WCF支持的问题与嵌入在Silverlight插件中的.NET Framework的有限子集有关,因为它本质上是.NET Framework的缩小版本。由于Silverlight插件中缩小的.NET运行时,它没有从标准.NET项目获得的对WCF的完全支持。这样做是为了从客户的角度快速下载SL,并缩短SL作为产品的上市时间。请记住,SL插件不依赖于正在安装的现有.NET框架,这就是Linux,Windows Phone 7和OS X版本在市场上的原因。
随着时间的推移,他们继续添加按需功能。例如,Silverlight 5将支持WS-Trust(请参阅here以获取5中新功能的完整列表。)
我建议您通过尝试从客户端调用WCF服务来阅读此资源以查看可能错过的内容:
http://msdn.microsoft.com/en-us/library/cc896571(v=vs.95).aspx
请记住,您可以通过RIA服务端点代理调用更复杂的WCF服务,这些端点实际上是直接从服务器端调用服务。
至于使用标准WCF而不是RIA ...当您的中间层具有多个客户端类型时,有一些优势,但是使用RIA,您可以简单地将端点作为SOAP 1.1端点公开,并要求人们使用该范例进行连接而不是WCF。您不必使用RIA或任何东西;您可以根据自己的需要混合搭配以满足您的要求。就个人而言,如果可能的话,我很擅长使用RIA。
答案 1 :(得分:1)
可以说RIA Services已经有了成长的痛苦。我最大的一些bug(例如无法返回非Invoke方法中的实体的复杂对象,以及缺乏对MVVM方式使用的体面支持)大多已在RIA Services SP1中修复。我知道在大型企业应用程序中使用它的一些人对它有很大的麻烦(至少在早期)。我不太确定现在在这方面的情况如何,至于他们的特殊问题是否已得到解决。
那就是说,我个人认为这是一项了不起的技术。它使标准WCF服务的任务变得简单(我最喜欢的是能够在客户端上指定返回IQueryable的域服务中的方法的查询,在服务器上执行 - 使排序/过滤/分组/分页变得轻而易举) 。它是否适合您取决于您的情况。它的设计主要是为了简单地对实体执行CRUD操作,所以如果这主要是你需要的那么它就是完美的。 RIA Services 设计为仅由Silverlight应用程序使用(至少暂时)。您可以从其他客户端访问它们,但是您没有获得使它们如此优秀的所有功能。因此,如果您需要支持其他客户端平台,则可能不合适。
我认为RIA服务很棒,但最终取决于您的情况是否适合您的项目。作为一种技术,它面向特定场景,并非旨在解决所有世界的软件开发问题。一些可能抱怨它的人可能没有按照预期的方式使用它,并推动其极限(也就是说,它也不完美,并且已经有了它的问题)。如果您可以提供更多详细信息(例如应用程序的规模,它需要支持的客户端平台以及项目开发人员的数量),我可能会给您一些更有用的建议。< / p>
希望这会有所帮助......
克里斯