我们正在使用WSSF构建WCF Web服务。这个想法是,它会通过服务暴露我们的主数据库,并允许我们在服务之上构建各种应用程序和网站。目前,我正在构建一个简单的客户端应用程序,该应用程序将从该服务下载一些数据,对其进行处理,然后将其作为报告CSV文件提供给用户。WCF /客户端应用程序 - 业务逻辑应该去哪里?
现在的问题是业务逻辑(操纵数据)应该放在哪里?我想我会把它放在服务里面。我已经有了一个业务层,其中包含几乎与数据库一一对应的简单对象(客户,订单等)。我认为我会制作一些“更高级别”的对象来操纵数据。例如,通过使用客户,订单和其他对象并生成报告等。我认为最好的地方在于服务的业务层。这样,如果需要,我们可以将这个逻辑用于各种不同的应用程序。
不幸的是,我的老板不同意。他希望有一个“关注点分离”,并说这个逻辑的正确位置应该位于客户端应用程序内的业务层,而不是服务中。我想这可能会更简单,但我想在服务业务层中使用强大的对象模型编写此代码。服务公开的对象不是“真实”的对象,实际上只是轻量级的数据结构,没有服务业务层中存在的完整对象模型的能力。
你们认为什么?非常感谢您的帮助。
干杯 马克
问他:如果我们需要另一个客户端,我们应该复制所有的业务逻辑,还是使用集中版本? – 2009-12-02 01:58:15
继续使用@Rubens Farias的逻辑,如果业务逻辑需要修复并驻留在客户端,那么*所有*客户端需要更新。如果它在服务中,那么只有服务需要更新。 – 2009-12-02 02:37:10
感谢您的回复。是的,我也认为可重用性很酷。我想主要的缺点是更新服务可能会破坏所有现有客户端。 – 2009-12-02 04:15:25