基于组件编程有很多优势:代码重用
建立组件 部署组件 配置文件
组件:编译后的实体
在.NET 中组件==Assembly(exe/.dll)
多层应用程序设计是一个很好的表现组件的例子
GUI.exe---Business.dll----Data.dll---DB
创建组件
在vs.NET中创建Class Library--被编译成DLLs
如何实现
1使用名称空间进行逻辑组织
2使用类和OO的设计
internal只能被组件内部的类访问
版本:major.minor.build.revision
AssemblyInfo.cs中的属性可以控制
强命名 Strong Name
Assembly在.Net的命名有四部分
friendly human readable name
culture
version
publicKeyTokenru
Assebly如果有公钥token 就有强命名
创建强命名组件的步骤
1生成一组public-private key pair
2将其通过AssemblyInfo.cs的属性应用到组件中
3重新编译assembly
4重新编译客户端
安装到GAC
组件必须是强命名的
使用.NET"gacutil"命令行工具
Gactil /i BusinessComponent.dll
私钥的安全recompile
保护key文件
[assembly AssemblyDelaySign(false)]
[assembly AssemblyKeyFile("..//..//..//pro.key")]
[assembly AssemblyKeyName("")]
部署组件
config
<configuration>
<appSetting>
<add Key="ConnectionString" value=""/>
</appSetting>
</configuration>
using CFG=System.Configuration.ConfigurationSettings
sConnect=CFG.AppSettings["ConnectionString"].ToString();