COM就是解决了C++中的二进制封装的呀,
在程序集中,还使用COM吗?
COM并不是很好的 组件,COM很多组件功能都没有实现,如事务处理等,请问是不是在.NET中解决了这些问题呢 ?怎么解决的呢?
谢谢,各位,我才刚学.NET,请多指教。
另外,进程边界是什么一个概念??
---------------------------------------------------------------
COM虽然说解决了C++的编译时二进制封装,但是却制定了自己的二进制封装(Vtable, __stdcall等)。
.NET可以说是彻底抛弃了COM,但为了持续性,还是提供了.NET-COM Interop的技术使得两个平台之间互相调用。
程序集(Assembly)没有COM。
.NET中并没有提供自己的事务处理(Transaction Processing),还是依靠COM+ Runtime来实现。
进程边界(Process Boundary)指的是不同进程间进行消息传递时候所需要做的额外工作(serialize/deserialize)的这种情况。
---------------------------------------------------------------
忘记回答题目里的问题 :)
Q:程序集作用是什么?
A:程序集(Assembly)是一个或者多个.NET模块(Module)的逻辑集合。程序集也是在.NET环境下安装(?)(Deploy)的最小最基本的单位。
.NET里面让一个程序集包含多个模块的主要目的是允许主要的常用的模块与次要的不常用的模块分开,这样下载、调用和运行一个.NET程序的速度能够更快也更有效率;其次,程序集将允许不同语言编写的模块能够互相调用(比如用VB.NET写界面程序而用Managed C++来写核心模块)。
从一个更抽象更哲学(或者说更虚)的角度来说,程序集由提供了一个抽象层(Abstraction layer 或者 Virtrualized layer),这一点,可以从.NET的关键词比如C#里的internal看出。
---------------------------------------------------------------
在WROX出版社的professional asp.net 1.0[special Edition]中说的
程序集是一个或多个文件的集合, 其中的一个文件(DLL或EXE)包含了一些称为程序集的特殊元数据(meta data).程序集清单定义了对程序集的版本化要求、程序集的作者、程序集运行所需的安全权限,以及构成部分程序集的文件.
典型的程序集的基本结构为:
----------------------------------
¦ system.Web程序集 ¦
¦ ¦
¦ ¦------------------------------
¦ ¦ system.Web.DLL ¦
¦ ¦ ¦
¦ ¦ 清单 类型元数据 ¦
¦ ¦ ¦
¦ ¦ IL 资源 ¦
¦ -------------------------------
--------------------------------------
具体还是看书为好
2. DLL问题
书中的解释是这样的: CLR可以同时加载一个程序集的多个版本.这就基本上解决了DLL问题.