以前一直认为。NET不能编写COM,刚看了红马天下写的《用C#编写ActiveX控件》,才知道也可以实现。但是运行COM的客户端仍然要装有。NET框架才能正常运行,就象如果运行APPLET必须要装JRE一样。
http://www.cnblogs.com/homer/archive/2005/01/04/86473.html
http://homer.cnblogs.com/archive/2005/01/08/88780.html
http://homer.cnblogs.com/archive/2005/01/26/97822.html
最近做个项目,是用VB编写ACTIVEX,再在asp.net中显示出来。这样就存在一个问题,连接数据库需要连接两次,即asp.net连接一次,另外还需传递用户名、密码、主机名、数据库参数到activex再连接一次。使得不但速度有所影响,而且安全性也很低,用户可以很方便看到ASP。NET到ACTIVEX的传递参数。
而如果用。NET编写COM时,虽然客户端需要装。NET框架,但是传递参数时只连接对象进去就可以了。所以不管在速度还是在安全方面都有提高!
另外我测试了一下,不知道是不是什么地方配置有问题,居然发现只有把。NET创建的DLL放到根目录下再使用<object id = "test" classid="http://localhost/test.dll#test.usercontrol1"></object>才能使用。放到其他虚拟目录下即便更改CLASSID的目录也不能显示,并不提示错误。