查看: 363|回复: 1

[ASP入门] 从经典通过COM Interop技术访问 .NET Com+ 组件

[复制链接]
xuanxiao 发表于 2023-3-28 15:47:59 | 显示全部楼层 |阅读模式
.NET 程序集不能直接与 COM 或 COM+ 对话。他们需要一个由名为“regasm.exe”的实用程序生成的包装器 (COM Interop)。这是一个简单快速的过程,您可以使用它来将任何 .NET 程序集注册为 COM 或 COM+。完成此操作后,您将能够从 ASP 3 调用它。


在将程序集注册为 COM Interop 之前,您需要首先对程序集进行强命名。还有另一个名为“sn.exe”的实用程序,它允许您对它们进行强命名(这为它们提供了一个公共 GUID,就像任何 COM 组件一样)。

一旦拥有 COM Interop DLL,就可以将其作为 COM+ 应用程序导入到组件服务中。

***************************

一、.什么是COM组件?
        1.COM组件是以WIN32动态链接库(DLL)或可执行文件(EXE)形式发布的可执行代码组成。

        2.COM组件是一些小的二进制可执行文件,必须以二进制的形式发布。

        3.COM组件可以给应用程序、操作系统以及其它组件提供服务。

        4.自定义的COM组件可以在运行时刻同其它组件连接起来构成某个应用程序。

        5.COM组件必须是动态链接的。

二、使用COM组件需要注意:
1.必须要保证升级应用时不破坏与以前版本的向后兼容性;

2.必须要做到扩展系统服务时不依赖于特定的操作系统。

        COM组件不是一种计算机语言;

        COM组件不是DLL,只是利用DLL来给组件提供动态链接的能力;

        COM组件不是API函数集;

        COM组件不是类;

        COM组件中的接口是一组由组件实现的,提供给客户使用的函数(在COM中的接口是一个包含函数指针数组的内存结构,数组元素是一个由组件实现的函数地址)。DLL的接口就是它所输出的函数。

 楼主| xuanxiao 发表于 2023-3-28 16:20:02 | 显示全部楼层
.NET Framework类库大概
.NET Framework类库是一个关于类和类型的程序库 。其中的类由C#语言写成,但可被任何基于CLR的语言使用。应用程序还可以从类库中的类派生出新类
.NET Framework类库的内容被组织成一个树状的命名空间,每一个命名空间可以包含许多类型(例如类和接口)和其它命名空间。

1765383-20200309110924776-1010809243.png


* System命名空间:“树”的根,此命名空间包含了.NET Framework类库中其它所有的命名空间。System还包含了所定义的核心类型(如Int16,Char等标准值类型,Array等引用类型,Object也定义于此)。
* System.Web:该命名空间包含的类型能够用来创建Web应用程序,可以使用System.Web.UI中的类型来构建ASP.NET浏览器应用程序,而System.Web.Services中的类型则可用来构建ASP.NET Web Services应用程序。
* System.Data:这个命名空间内的类型造就了ADO.NET,用于访问数据库
* System.Windows.Forms:这个命名空间内的类型构成了Windows Forms,它们用于构建Windows GUIs,不必依赖于某种特定的语言机制(例如在C++ 中使用较陈旧的MFC)。
* System.EnterpriseServices:这个命名空间内的类型提供了某些企业应用所要求的服务。这些服务包括分布式事务对象实例生命期管理等。
* System.XML:这个命名空间内的类型支持生成和处理以XML定义的数据


.NET Framework,包括CLR(公共语言运行时,Commmon Language Runtime)和.NET框架类库(.NET Framework class library)。
通用语言运行平台Common Language Runtime,简称CLR),简单地说,就是.NET的虚拟机,相当于Java的JVM.
.NET框架类库(.NET Framework class library)是一个关于类和类型的程序库 。其中的类由C#语言写成,但可被任何基于CLR的语言使用。应用程序还可以从类库中的类派生出新类。
托管代码是用.NETFramework编写的代码。托管应用程序运行时,将要用到相应的CLR

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表

在线客服

售前咨询
售后咨询
服务热线
023-58418553
微信公众号