【问题标题】:Is System.AddIn mostly about making it easier to use Remoting or does it make it harder to do so?System.AddIn 主要是为了让远程处理更容易使用还是让它更难使用?
【发布时间】:2009-11-15 05:26:40
【问题描述】:

在 appdomain 隔离功能开始工作之前,至少需要 7 个程序集并将我的 AddIn 的数据模型限制为远程处理可以处理的数据类型。太复杂了! System.AddIn 团队博客向我暗示他们正在尝试重新创建 COM 的心智模型,我一开始就不太了解这个模型,也没有为它的好处买单。 (如果 COM 这么好,为什么它死了?-修辞问题。)如果我不需要镜像或与旧 COM 互操作(就像 VSTO 使用 System.AddIn 一样),是否可以只创建一些加载加载的类一个新的应用程序域?

我可以自己编写发现代码,我以前做过,而且幼稚的实现非常快,因为我不喜欢在 GAC 中迭代程序集!

所以我的具体问题是,我可以通过一些代码 Remoting sn-ps 获得 AddIns 提供的 AppDomain 隔离吗?那些会是什么?

【问题讨论】:

    标签: remoting system.addin maf .net-remoting .net-bcl


    【解决方案1】:

    我不完全确定您的问题的任何答案是否符合网站的条款 - 没有解决方案。

    是的,远程处理更容易,因为它为您完成。但是,它是高度控制的,并且正如您所确定的,需要一些工作才能将它们全部组合在一起。发现过程中吐出的缓存文件也不太受欢迎。

    System.AddIn 擅长隔离,实际上以一种健壮、灵活的方式从头开始组合起来有点笨拙。它支持跨进程托管和相当简单的用户 WPF 元素从一个域到另一个域的传递。

    但要记住的一点是,MAF 的目标受众不是那些试图将两个应用程序连接在一起的人。它面向需要可插拔但安全系统的开发人员(跨进程托管保护根应用程序免受未处理的异常,appdomains 允许执行具有定义安全性的潜在外部代码)。在大多数交流中,直接将自己引向 System.Runtime.Remoting 或 WCF。

    如果您想继续使用 System.AddIn,请考虑 pipeline builder plugin for visual studio!

    总之 - 您可以使用 Remoting 获得 System.AddIn 隔离,但要获得一个像样的系统,您需要的不仅仅是几个 sn-ps。我正在尝试自己复制它,并且在远程接口组件上绊倒了 - System.AddIn 可以顺利完成。

    【讨论】:

      【解决方案2】:

      在使用 System.Add 一段时间后,我确信它是作为 Microsoft 使用的一次性专用解决方案添加的。我很惊讶它被提升为 .NET 框架的核心部分。它似乎没有一般 .NET 框架组件所需的细化和润色。

      我想找到一种替代方法来创建不需要太多努力的 .NET 托管加载项。

      【讨论】:

      • 不能再同意了。有一些专门为 MAF 编写的优秀管道创作插件和工具(一些直接来自 MS),但仍然缺乏改进。
      猜你喜欢
      • 2011-01-01
      • 2011-01-09
      • 1970-01-01
      • 2020-11-13
      • 2016-05-10
      • 2011-05-15
      • 1970-01-01
      • 1970-01-01
      • 2015-10-25
      相关资源
      最近更新 更多