我正在学习如何使用WCF RIA Services编写应用程序。大多数相关教程都介绍了从数据库中获取数据并在客户端显示的步骤,但我不清楚业务逻辑应该放在哪里。我需要从客户端获取输入,对数据库进行一些查询,然后对其进行一些计算,并在客户端显示计算结果。我是要将数据从数据库检索到客户端并在那里执行操作,还是应该在服务器的领域类中执行操作并返回结果,还是其他方法?任何帮助都将不胜感激。
你可以在服务器端或客户端上执行它,但在客户端上执行可以利用客户端机器/处理器来执行计算。如果有大量用户,将工作推到客户端上可以显著提高服务器性能。
性能是一个考虑因素,但您还必须考虑您的知识产权。请记住,Silverlight应用程序会传递到客户端,并且客户端上的所有.Net代码都可以重新设计。是的,您可以混淆代码,但这是部署中的额外步骤。无论如何,如果您的知识产权很有价值,我建议在客户端上进行数据收集和验证(这只是良好的实践)。工作返回服务器后,您可以注入/拦截WCF RIA服务请求并执行“附加”工作。我在这里提出了类似的问题:ChangeSet Complete