请解释 .NET 中程序集与模块的差别以及它们各自承担哪些职责?
考察说明
考察对 .NET 部署与编译基本单元的概念理解以及二者关系。
回答思路
- 【回答框架 1】程序集是 .NET 中部署、版本控制、重用和安全权限的基本单元,通常以可执行文件或动态链接库形式存在,包含元数据和中间语言代码。
- 【回答框架 2】模块是程序集内部的逻辑容器,一个程序集可以包含一个或多个模块,模块本身没有程序集级别的标识,必须归属于某个程序集。
- 【回答框架 3】程序集负责定义类型边界和版本策略,而模块用于组织代码和资源,实际加载时程序集作为整体被运行时管理,模块用于更细粒度的划分。
- 【回答框架 4】程序集提供自描述性元数据,支持并行部署和版本控制;模块则便于大型项目按功能拆分代码,减少重复编译。
- 【关键点 1】程序集是部署和版本控制的基本单元,模块是程序集内的组成单元。
- 【关键点 2】程序集包含元数据与中间代码,模块只存储类型和代码,无程序集级标识。
- 【关键点 3】程序集可包含多个模块,但模块必须依附于程序集存在。
- 【易错点 1】混淆程序集与模块的粒度,程序集包含模块而非相反。
- 【易错点 2】误认为模块可直接独立部署或共享,实际需随所属程序集一起使用。