《C#类设计手册》读书随笔(4)

Programmer To Programer 丛书
C# Class Design Handbook
Richard Conway, Teun Duynstee等著
清华大学出版社


star.gif代码组织和元数据

coffee.gif共享程序集 全局程序集缓存  Global Assembly Cache (GAC)

coffee.gif程序集 可重用的最小单元

coffee.gif元数据 为公共语言运行时提供了在运行期间加载类型和调用方法所需的所有信息
metadata 是元编程的基础,在很多系统中也是根本的东西,了解这个东西可以比较深入的了解某个架构

查看元数据最简单方法使用ildasm.exe /adv或/advancel选项

coffee.gif.NET模块是一个可移植、可执行(PE)格式文件

只有数据的模块  SDK包含一个工具Assembly Linker(AL.exe)
利用该工具将这些非MISL模块链接到程序集中

将该文件编译成模块,必须使用C#.NET命令行编译器
不能使用Visual Studio .NET 因为它总是创建单、程序集
例如:csc /target:module csMod.cs csMod.netmodule
*.netmodule 是.NET的模块
增加模块到程序集清单中:
csc /addmodule: csMod.netmodule /addmodule:VBMod.netmodule MainMod.cs

star.gif程序部署
snail.gif部署单程序集应用程序比较简单,直接用xcopy部署。
snail.gif私有程序集部署应用程序也不复杂,将需要的程序集合放在同一个文件夹或者用应用程序配置文件通知CLR在什么位置查找程序集

snail.gif部署共享程序集
添加到GAC 全局程序集缓存
但Microsoft不推荐应用程序与GAC相互依赖,应尽量使用应用私有程序集部署方式

star.gif利用公有-私有密钥对可以为程序集创建强名称
编译期间编译器使用私钥,将相应的公钥写入程序集清单
sn (Strong Name)  sn \k *.snk
MSDN中查找"Keys crytography"查找相应内容
publickey 较长的数字
public key token 公钥令牌
sn \t *.snk

star.gif将共享程序集安装到GAC中
gacutil -i *.dll  需要管理员权限
或者在控制面板的管理工具中找 .NET FrameWork Configuration


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值