就他吧-9ta8为您提供:身份证查询、15位转16位身份证,手机号码归属地查询,IP地址查询服务,城市天气预报查询,列车时刻表简易快速查询等等查询服务,就他吧欢迎您的光临!!
随笔-96  评论-675  文章-7  trackbacks-102

        近几年来,流行采用N-Tier类式应用程序设计结构来开发分布式应用程序,并将常变动的商业逻辑和数据存取动作包装在组件(Component)当中,然后将这些组件安装到COM+集中管理。但是什么时候使用COM+组件什么时候使用COM+服务呢?我做了一个COM+组件与一个COM+服务,想在此和大家探讨这个问题。并附有源代码下载。

1.COM+组件的开发 
        前两天用C#开发了一个加密解密的COM+组件,在装有VS2003和Win2000的机器上编译并运行通过。紧接着在没有安装VS2003的框架的机器上注册了此COM组件。用ASP测试运行通过。
注册方法:
dos下运行
注册
regasm /tlb SXCryptPwd.tlb SXCryptPwd.dll
gacutil /I SXCryptPwd.dll

注销
regasm /unregister SXCryptPwd.dll
注册完成。

ASP的使用方法:
<%
set obj = Server.CreateObject("SXCryptPwd.MyEnCrypt")
dim str1
str1 = obj.MyEncoding("20050708") // 加密
response.write("strEnCript=" & str1 & "<br>")
dim str2
str2 = obj.MyDecoding(str1) // 解密
response.write("strDecrypt=" & str2 & "<br>")
%>
和调用普通的COM是一样的。

这里可以下载源代码
http://www.cnblogs.com/fineboy/archive/2005/07/28/201672.html

2.COM+服务的开发
        功能是这样的:从数据库表中根据主键取出一个字段的值并返回。特简单的一个COM+服务,实际上是没有任何意义的。这里主要是介绍COM+服务的开发过程。具体的文档都在程序当中,大家可以去看看。下面简单的介绍一下COM+服务的开发步骤:
(1)新建一个类,让该类继承ServicedComponent类,ServicedComponent类是所有使用COM+服务的类的基类;
(2)让该类重载几个基类的方法,Activate方法、Deactivate()方法、CanBePooled方法
(3)定义一个public方法,用来从数据库中读取数据
(4)凡是要放在COM+组件服务管理工具的.NET组件,都必须要有一个Strong Name以做识别,因此还必须为他生成一个强名称。
(5)修改AssemblyInfo.cs中的[assembly:AssemblyKeyFile(“”)]改为[assembly:AssemblyKeyFile(“强名称的文件名”)],然后再增加一行[assembly:ApplicationName(“UCOMTEST”)],他表示此服务在COM+服务管理器中的名字。

        关于客户端的开发,见源程序。这里下载源代码,前面那个代码有点小错误,昨天晚上(2005-8-18晚上)重新写了一个,测试成功的,下载源代码

3.是用COM+组件还是用COM+服务
        我想把一些API封装到一个组件里,里面有一些简单的数据库操作,是用COM+组件好还是用COM+服务好,想在这和大家共同探讨一下。

posted on 2005-08-18 17:16 振河 阅读(1961) 评论(12)  编辑 收藏 所属分类: 其他

评论:
#1楼 2005-08-18 18:47 |       
1、您能对COM这个东西了解多少
2、COM+=COM+MTS:即COM+是在COM的基础上整合MTS、MSMQ等所谓的COM+基础结构服务
3、COM+组件是基于COM+服务的基础结构上开发的,所以说两者是一回事,即所说的“服务组件”的意思

  回复  引用  查看    
#2楼 2005-08-19 08:37 | 振河
但是两者的表现形式是完全不一样的呀
  回复  引用    
#3楼 2005-08-19 09:48 | 牙神幻十郎      
二者适用的范围不一样吧,就如上面,要在asp程序里调用的话,COM+服务就不行了,而需要做某些服务的话,只是COM+就不行了,毕竟它的功能比较单一.
  回复  引用  查看    
#4楼 2005-08-19 11:57 |       
要在asp程序里调用的话,COM+服务就不行:正确
Asp.net完全可以!
不会吧,现在还有人在做Asp开发?!不是跟效率和分布式架构过不去

  回复  引用  查看    
#5楼 2005-08-22 13:47 | flyarror[未注册用户]
请教:VB下也可以调用.net的com组件吧
  回复  引用    
#6楼 2005-08-22 21:03 | wang2855      
前几天我用.net的com+实现ServicedComponent,感觉运行比较慢,我主要想实现事务功能,期待沟通下。




wzx2855@hotmail.com

  回复  引用  查看    
#7楼 2005-08-27 14:50 | bdhh[未注册用户]
你好像说的是COM组件与COM+组件的区别吧!!!
  回复  引用    
#8楼 2005-10-30 14:15 | fusx[未注册用户]
一个很浅显的区分:
我在VC6中使用ATL写了一个COM DLL,如果我写的COM DLL如果没有在COM+基础结构服务中去注册,那么就是COM组件,如果注册了就可以看成是COM+组件。注册的了COM DLL还可以充分使用COM+基础结构服务中的很多高级的特性,不改变任何原代码,你就可以使用那些高级的比较事务处理、分布式布署、性能均衡等功能,也就是所说基于属性的编程。

不过我未使用过C#来写这些,不知道这些概念是否有所变化?

  回复  引用    
#9楼 2005-11-01 09:44 | gzp[未注册用户]
我的观点于fusx的一致,但希望大家不要在耗费时间在COM+上,因为微软NET中的很多技术在逐步取代COM+,虽然微软一直声称不会这么做,但我在详细了解了NET的基础结构和做了大量的实际工作后可以判断这点。并且在实际工作中,普通NET组件的运行效率是COM+组件的2倍以上,并且在大规模的压力测试中也得出同样的结果;对象池、即使激活特性在实际工作中没有像微软提出的那样好(VC6的效果较好;但VC.NET的效果很差,还不如普通的Net组件);性能均衡已经在NET中取消了,它的运行环境Application Center2000 也已经不再升级了。
  回复  引用    
#10楼 2005-11-03 08:58 | xyangyang[未注册用户]
现在还有人在用COM+吗,.net的功能这么强大?
  回复  引用    
#11楼 2007-07-23 10:11 | 田方平[未注册用户]
我的com+组件不能用了,请问相关服务是哪些??可能某些服务被我关掉了
  回复  引用    
#12楼 2008-08-15 13:01 | wangjianguo[未注册用户]
你好,我想请教您两个问题,关于开发COM+方面的.可以加下我QQ吗,QQ:285625240
  回复  引用    



发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 217876


相关文章:

相关链接:

  就他吧-9ta8伴您开心每一天