Silverlight 4安全LOB应用程序 - WCF vs WCF Ria Services

3
我是新手,计划开发一个安全的LOB应用程序,该程序连接到我所在公司的SQL后端。我一直在阅读有关服务的主题,并阅读了有关WCF与Ria Services的不同观点,其中很多与Silverlight 3有关。由于我们现在使用的是Silverlight 4,而Silverlight 5正在测试阶段,我希望能够得到更加最新的答案。请原谅我的知识有所欠缺,因为我正在学习。
  1. 我已经阅读过Ria Services适用于较小的数据库。 "较小的数据库" 不清楚,想知道有人能解释一下吗?
  2. 既然RIA服务将SQL/Linq复制到客户端,是否会通过反向工程公开任何安全风险?
  3. 我已经阅读过RIA Services在比较上受到限制。这方面有何限制?如果RIA无法完成我们的某些逻辑,我是否能够在RIA Services项目中实现普通的WCF服务?
  4. 目前,我们计划仅通过Silverlight连接到服务,但如果我们计划将来扩展,RIA Services是否会使这更加困难?
  5. 是否可能同时在局域网和互联网上运行Silverlight?
  6. Microsoft是否正在朝着其中之一作为未来版本的标准?
  7. 你会推荐什么?
提前感谢。
1个回答

4

以下是我的想法。(完全透明,我在RIA团队工作。)

  1. 当将RIA DomainServices分成工作单元块时,它们的效果最佳。然而,要正确分离数据库关系以做到这一点可能有些棘手,因此往往会有人仅为整个应用程序使用单个DomainService。DomainService的大小随着您拥有的表/实体数量而扩展,因此有时会变得难以处理。
  2. 在客户端允许LINQ并不会比您的服务本身更多地暴露信息。它实际上只允许客户端缩小和形状返回的数据。如果您担心安全问题,RIA提供了授权属性(RequiresAuthenticationAttribute等),可用于保护您的服务。
  3. RIA是建立在WCF之上的,因此您拥有相同的底层框架的强大功能。但是,由于RIA为您执行大部分配置,因此您没有相同广泛的灵活性。
  4. 这可能会更容易。请参见Jeff's post on RiaJS
  5. 是的。
  6. WCF已经是一个标准。RIA是建立在WCF之上的,使常见情况和丰富的客户端更容易。
  7. 如果RIA似乎适合您的应用程序,请从那里开始。随着应用程序的成熟,不要害怕混合使用一些WCF服务,以满足RIA无法提供所需支持的情况。在V1中,当您遵循规则(实体的CRUD操作,其他操作的调用操作)时,RIA效果最佳。最好在论坛上询问一下人们是否正在执行您认为您想在应用程序中执行的操作。

感谢您的帮助。昨天我继续阅读并偶然发现了这篇文章http://blogs.visoftinc.com/2010/12/20/data-access-and-silverlight-4/ ,作者是Damien White,他介绍了模型和服务之间的断开以及“实体更改不会级联到合同”。我还没有尝试过,但在我们仅调用存储过程而不生成数据库模型的世界中,这会成为一个问题吗? - Oly
不,这是所有RIA开发人员都面临的真正问题。意图是您无法自动化服务契约(因为那会存在重大安全问题)。然而,在实践中,它会造成一些困扰。请放心,这是我们正在努力解决的领域。我几周前发布了一项调查,以收集该领域的一般反馈。如果您有兴趣,请看一下。http://blogs.msdn.com/b/kylemc/archive/2011/05/05/survey-how-do-you-use-the-domainservice-wizard.aspx - Kyle McClellan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接