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

简介:

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


代码组织和元数据

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

程序集 可重用的最小单元

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

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

.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

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

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

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

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



本文转自风前絮~~博客园博客,原文链接:http://www.cnblogs.com/windsails/archive/2004/09/05/39837.html,如需转载请自行联系原作者


相关文章
|
12月前
|
数据可视化 项目管理 C++
|
JavaScript 前端开发 开发工具
Notion做思维导图,用自带的功能就够了!
Notion做思维导图,用自带的功能就够了!
Notion做思维导图,用自带的功能就够了!
|
安全 Java 关系型数据库
Java开发手册黄山版新增规约摘录
Java开发手册黄山版新增规约摘录
1823 0
|
小程序 前端开发 容器
幼儿园小程序实战开发教程(下篇)
幼儿园小程序实战开发教程(下篇)
幼儿园小程序实战开发教程(下篇)
|
存储 运维 小程序
宠物寄养小程序实战教程(上篇)
宠物寄养小程序实战教程(上篇)
宠物寄养小程序实战教程(上篇)
学习记录 产品经理之思维导图
学习记录 产品经理之思维导图
2142 0
|
Java Spring 开发工具
Java开发之上帝之眼系列教程前言和章节目录汇总
如果您正在为Java后端庞大的体系所困扰,如果您正在为各种繁出不穷的技术和各种框架所迷茫,那么本系列文章将带您窥探Java庞大的体系。本系列教程希望您能站在上帝的角度去观察(了解)Java体系。使Java的各种后端技术在你心中模块化;让你在工作中能将Java各个技术了然于心;能够即插即用。
2035 0