是否有企业服务的交易和池功能的现代替代品?

时间:2009-03-31 00:10:01

标签: .net wcf com+

我正在使用EnterpriseServices AKA Com +中的ServicedComponent

  • 分布式交易
  • 使用属性进行简单的事务编程
  • 对象池

我发现com +

中缺少的东西
  • 缺少dll版本控制
  • 不得不加急的痛苦每次我更改组件时都会注册
  • 必须附加调试器

我知道WCF解决了一些与COM +相同的问题。但它能解决所有问题吗?有人能指出我正确的方向吗?

由于

3 个答案:

答案 0 :(得分:7)

我对COM +的细节并不十分熟悉,但是WCF的构建是为了在.NET平台中取代它和企业服务。您在这里提到的所有用例都被纳入框架(池,事务,版本控制),并且只要您花时间学习它想要做什么,那么编写代码就非常简单。当你正确配置东西时,你可以用它做什么几乎没有限制。

WCF还支持微软为即时和长期未来(Azure服务)所做的很多工作。我认为这对您的学习时间来说是值得的投资,特别是考虑到您的COM +背景。

我强烈推荐Juval Lowy的书作为一个很好的起点。他可能会像你在这个主题上找到一样权威的声音。

http://oreilly.com/catalog/9780596521301/?CMP=AFC-ak_book&ATT=Programming+WCF+Services%2c+Second+Edition%2c

我还建议您查看他的公司IDesign的网站。它们不仅提供了出色的培训,而且还有一个非常有用的WCF扩展库,名为ServiceModelEx,它提供了许多实用程序扩展/帮助程序类,使您的WCF生活更加轻松。

http://www.idesign.net/idesign/DesktopDefault.aspx

如果你正在寻找更多教程风格的书,Michele Leroux Bustamante的书也很不错。

答案 1 :(得分:3)

如果您想在组件上使用基于属性的事务,WCF可以为您完成。除了隐喻不再是COM +的组件;它现在是WCF中的服务。一个微妙但重要的转变。 WCF依赖于与COM +相同的事务基础结构(DTC)。

如果你只想在.NET中使用COM +,它的EnterpriseServices - 同样的模型,仍然需要使用DLL部署和版本控制。仍然可以获得汇集等。还可以获得暂停/恢复和一些其他新的ES功能。

如果您只想要一个事务编程模型,可以使用System.Transactions命名空间。

至于对象池 - 看两次。可能值得重新检查您对对象池的使用。年前,业界做出的假设,或者我们的理解,w.r.t。实例化对象的成本使我们得到了对象池的隐喻。这些假设和理解今天可能无效。换句话说,对象池可能对您的应用程序有用,也可能不对您的应用程序有用。它仍然在ES中,但是值得考虑是否需要它。

答案 2 :(得分:0)

你应该看看Enterprise Services