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

COM+组件与COM+服务使用的区别

        近几年来,流行采用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  振河  阅读(5108)  评论(12编辑  收藏  举报

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