.Net Remoting:包装用户对象与更多远程通道

时间:2009-12-07 16:24:11

标签: .net remoting

我正在通过做一些基于小型远程处理的项目来学习远程处理,并且还试图强制执行良好实践,同时避免我习惯于养成恶习。

有一项服务可以使用用户创建的插件。每个插件都在自己的appdomain中隔离。此外,还有一个客户端应用程序连接到服务并与之交互。

有服务客户端通信和服务插件通信的渠道,但没有什么方便插件 - 客户端通信。因此,插件创建的任何对象必须先包装在服务定义的对象中,然后才能进入客户端(否则由于缺少通道接收器而存在异常)。

如果这是有道理的,我的问题是:我应该继续这种模式,还是应该在插件和客户端应用程序域之间创建通道,以允许插件实例化的对象转到客户端应用程序?

感谢有关该主题的任何教育!

1 个答案:

答案 0 :(得分:3)

如果没有更多地了解你的申请,我无法给你明确的答案,所以虽然这个问题可以说是主观的,但这是我的主观回答:

服务器聚合连接到插件似乎是合理的,而客户端只维护到服务器的单个通道。这可以通过多种方式简化和整合解决方案:

  • 仅在服务器中执行访问控制
  • 插件机制可以让我对客户端透明
  • 简化客户端
  • 如果客户端和服务器位于不同的计算机上,您可能更喜欢客户端只与服务器通信而不是直接与任何插件通信,因为它可能需要在服务器计算机上打开多个连接/端口(用于每个插件),如果你有防火墙等,这可能会成为一个问题。

另一方面,将服务器对象中的每个插件对象包装起来可能会很麻烦。