WCF RIA服务中的业务逻辑位置

3
我正在学习如何使用WCF RIA Services编写应用程序。大多数相关教程都介绍了从数据库中获取数据并在客户端显示的步骤,但我不清楚业务逻辑应该放在哪里。我需要从客户端获取输入,对数据库进行一些查询,然后对其进行一些计算,并在客户端显示计算结果。我是要将数据从数据库检索到客户端并在那里执行操作,还是应该在服务器的领域类中执行操作并返回结果,还是其他方法?任何帮助都将不胜感激。
3个回答

1

你可以在服务器端或客户端上执行它,但在客户端上执行可以利用客户端机器/处理器来执行计算。如果有大量用户,将工作推到客户端上可以显著提高服务器性能。


0

性能是一个考虑因素,但您还必须考虑您的知识产权。请记住,Silverlight应用程序会传递到客户端,并且客户端上的所有.Net代码都可以重新设计。是的,您可以混淆代码,但这是部署中的额外步骤。无论如何,如果您的知识产权很有价值,我建议在客户端上进行数据收集和验证(这只是良好的实践)。工作返回服务器后,您可以注入/拦截WCF RIA服务请求并执行“附加”工作。我在这里提出了类似的问题:ChangeSet Complete


0
WCF RIA Services 的理念是,您的业务逻辑可以在客户端和服务器之间共享。显然,您无法构建复杂的计算,但所有与业务类相关的验证和规则都应该在对象元数据中,以便它自动显示在客户端和服务器上。
在进行这些类型的计算时,最重要的是记住:
1)任何发送到客户端的代码都可以被客户端查看。 2)在客户端上进行的任何计算都可能被客户端更改。
因此,如果您有一个订单服务,并且仅在客户端上计算订单总额,那么恶意用户可能会向您发送一个计算错误的订单。

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