【问题标题】:com+ alternative in .net?.net 中的 com+ 替代方案?
【发布时间】:2010-02-07 07:27:08
【问题描述】:

.net 中的 com+ 替代方案是什么?是 .net 远程处理还是 WCF 或其他。


这两个答案都是正确的,即使我认为我们可以使用远程处理和 Web 服务来实现 com+ 的功能,也有其他选择。甚至也可以使用 com+ 的包装器。但我说的是有什么东西可以贬低 com+ ,比如在 java 中我们有 EJB 作为 com+ 的替代品,在 .net 中是否有类似的东西反对 com+ ?

【问题讨论】:

  • 请准确告诉我们您关心 COM+ 的哪些功能。

标签: .net remoting


【解决方案1】:

这取决于您在 COM+ 替代品中寻找什么。正如Ash 所说,企业服务允许您使用.NET 创建COM+ 组件。但是对于一般的远程通信,请使用 WCF。特别是,二进制绑定(netTcpBindingnetMsmqBinding 等)为企业内部通信提供了高性能通道。

【讨论】:

  • WCF 不是 .NET 中的 COM+ 替代方案。 COM+ 不仅仅是 DCOM,例如。分布式事务、对象池、安全等
  • @Ash:请阅读我写的内容。 “这取决于您在 COM+ 替代品中寻找什么”。我知道 COM+ 中有什么。了解 OP 想要替换 COM+ 的哪些部分很重要。
  • @John,根据我的经验,几乎没有使用 COM+ 的现有应用程序可以成功地删除 COM+ 部分并仅使用 WCF 替换它。绝大多数将需要企业服务。我确定理解这一点,但这是我从许多其他开发人员那里听到的误解。
  • @Ash:如果 OP 说“我目前正在使用 COM+。如何替换它”,那么我会同意。但这可能不是他要问的。即便如此,WCF 也可以做事务;很少需要对象池;和其他 COM+ 功能只是 .NET 的一部分。
  • @John,“.net 中的 com+ 替代方案是什么?”很清楚 OP 在问什么,你正在分裂头发。
【解决方案2】:

如果您需要 .NET 中的 COM+ 服务,Enterprise ServicesSystem.EnterpriseServices namespace 中的类型为托管代码提供广泛的 COM+ 支持。

一个(非常)简化的总结:

  • 创建一个继承自ServicedComponent的新类
  • 用所需的属性(如 ApplicationActivation、Transaction 等)对其进行装饰。
  • 用强名称签名
  • 构建程序集
  • 使用regsvcs 向COM+ 注册程序集。

【讨论】:

  • 两个答案都是正确的,即使我认为我们可以使用远程处理和 Web 服务来实现 com+ 的功能,也有替代方案。甚至也可以使用 com+ 的包装器。但我说的是有什么东西可以贬低 com+ 吗,比如在 java 中我们有 EJB 作为 com+ 的替代品,.net 中是否有类似的东西反对 com+ ?
  • COM+(据我所知)仍然是微软首选的组件服务器技术。它没有被弃用。您不能使用远程处理和 Web 服务来实现 COM+ 提供的对象池、分布式事务、应用程序服务器场和安全功能。重写 .NET 版本的 COM+ 需要付出很大的努力,并且不会比成熟的 COM+ 提供任何明显的好处。如果您想要 .NET 中的 COM+ 样式服务,请使用 EnterpriseServices。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-11
相关资源
最近更新 更多