我曾经写过几年前在COM +组件中部署业务数据访问层的ASP.Net应用程序。这是我国几个公司基础设施的标准。这仍然是推荐的吗?有什么替代方案?
答案 0 :(得分:5)
COM +实际上只是MTS(Microsoft Transaction Server)重新加载并与Windows 2000及更高版本捆绑在一起(它是NT4上的可选附件)。如果您使用的是非托管代码,则COM +仍然是事务中间层的首选选项。事实上,它通常用作TPC-C基准系统中的TP监视器,因为它比.Net或Java更有效,并且比Tuxedo或Encina(降低$ / TPM)便宜得多。
WCF(Windows Communication Foundation)有自己的事务监视器,这是合理的,因为COM +的体系结构与COM紧密耦合,很难改进.Net运行时。如果您在.Net中编写事务性应用程序,WCF提供此工具,尽管System.Transactions库还为ADO.Net客户端提供分布式事务支持。
答案 1 :(得分:4)
这里有很多关于WCF的讨论,但老实说,我认为这不是你想要的。
在ASP的早期,人们很快就知道将标记页中的所有代码放在一起很难维护。结果,一些人开始使用COM组件实现N层设计。如果您的意图是以典型的N-Tier方式简单地构建DAL,那么没有理由认为简单的类库是不够的。
考虑构建一个类库,将其添加为对您的Web项目的引用,当然还有ADO.NET。
答案 2 :(得分:3)
WCF是新建议的对象间通信机制
答案 3 :(得分:0)
过去两天我试图让两个旧的COM +业务对象在新的Windows 2003 Server上运行,我确信我再也不想使用COM +了。
答案 4 :(得分:-3)
来自http://msdn.microsoft.com/en-us/library/ms686988(VS.85).aspx:
“COM +是Microsoft®组件对象模型和Microsoft Transaction Server(MTS)发展的下一步.COM +处理您以前必须编写的许多资源管理任务,例如线程分配< / strong>和安全。自动通过提供线程池,对象,使您的应用更具可扩展性汇集和即时对象激活。即使事务跨越网络上的多个数据库,COM +还可以通过提供事务支持来帮助保护数据的完整性。“ p>
虽然看起来像是一种传统的东西,但我不认为微软此时提供的任何单一时尚技术都可以取代COM +。