.net如何取代com?我得一点疑问.
com是一种以组件为单位进行交互的技术,它采用接口描述组件信息,而且客户对组件的访问也是通过接口,它的契约建立在二进制基础上。而clr的装配件是采用元数据描述,使用中间语言描述。
com有进程内和进程外com组件之分,com组件需要注册到注册表,当客户程序调用com提供的服务的时候,需要查找注册表,并动态加载com组件,所以com组件的其中一个特性就是位置透明性。
在.net中,装配件是CLR加载的最小单位。在一个项目中要调用其他装配件的服务,就必须先引用那个装配件,同时复制到本地bin内。也就是说,在.net中,无法实现com中那种位置透明性?
另外在com的模型中,客户端可以调用进程外的com组件(包括本地和跨网络),如果是本机不同进程,则由本机的com库直接进行组件加载操作;如果是其他机器,com库应该在特定的端口监听,当收到请求时,同样由com库加载组件.在.net中,是通过remoting来实现的,其监听加载宿主可以是windows服务,iis或是其他自己写的程序。
不知道,我得理解是否正确,是否在.net中,就是通过如此方式来取代com的?