我想知道如何在RIA中准确实现域服务。在单个域服务中包含整个域模型中的所有实体是否常见,从而使服务负责整个数据库?这是通常的方式吗?我真的没有理由将数据访问分成不同的服务,但我想知道这是否被认为是一种好的做法,以及这种方法的优点和缺点是什么。
此外,将域上下文注册为具有IOC的单例是否被视为好或坏做法,以便整个应用程序使用相同的数据集,从而避免并发问题和类似问题?
思想?
谢谢
答案 0 :(得分:1)
我们的应用程序中有两个独立的服务:一个用于数据模型,另一个用于严格认证。我们从MS的业务样本应用程序结构中采用了这种设计。
我们考虑将我们的数据域服务分解为更小的组件,但决定反对它,因为它似乎没有增加任何优势(除了减少服务类大小。)如果你有完全独立的不同数据模型然后走这条路可能有意义。直观地,域服务应该代表整个域。如果您的域名是独立的(使用occasional need for crossover),那么以这种方式隔离它们是合乎逻辑的。
关于将上下文用作Singleton:我试过了,最后创建了类范围实例。我们没有遇到任何问题这样做,因为他们都使用相同的底层数据连接。我不知道“官方”最佳做法是什么,但这是我在众多RIA应用程序中看到它的方式。
答案 1 :(得分:0)
谢谢尼克。我实际上和你做了同样的事情,我构建了两个服务,一个用于身份验证,一个用于数据访问。这对我来说似乎最合乎逻辑。
至于使datacontext成为单身人士,我也试过了,并且它运作良好。无需不断重新加载和刷新数据,并担心其他类中的并发问题:)