2010-05-11 64 views
7

一段时间以来,我和我的团队一直在Web服务外观(使用WCF)中包装我们的数据访问层,并从业务逻辑层调用它。与此同时,我们可以简单地使用存储库模式,其中业务逻辑层通过接口在本地使用数据访问层,并且在任何时候,我们都可以改变它以创建服务(如果需要)。包装或不包装:在服务外观中包装数据访问

问题是:什么时候将数据访问层包装在服务门面中,何时不是它?现在看起来主要优势在于其他应用程序可以使用该服务,但是如果它们是使用.NET编写的内部应用程序,那么它们可以仅使用.NET程序集。将DAL包装在我不知道的服务中是否还有其他优点?

+0

即使对于内部应用程序,如果您的程序集有许多用户,直接使用.NET程序集也可能是PITA更新,但webservice会更加流水线化。 – Nate 2010-05-11 15:06:36

+0

这是一个很好的问题...与序列化/传输/反序列化有关的开销可能非常昂贵,因此考虑其他模型是有意义的。另一方面,拥有服务外观可以使数据更容易丰富和转换。这种模式的另一个不错的方面是能够整合排队的端点以满足即时存储需求。 – JoeGeeky 2010-05-13 20:36:31

回答

2

这真的取决于数据服务将被使用的方式/方式。如果只有少数应用程序,这并不是什么大问题,但是如果你有很多应用程序和数据方面的很多变化,那么推出更新的版本并确保你不会中断现有的应用。

有了WCF,你可以版本服务,这将有助于缓解这种风险。所以实际上很大程度上取决于消费者的数量,消费者的位置(内部/外部)以及更新的频率。

这至少是我在评估时使用的。