The Elements of C# Style - Packaging
1.文件
1.1在单个文件中放在命名空间作用域内的每个元素
用其容纳的元素名为文件命名,大小写也要一致
1.2 用元素名作为文件名
2.命名空间
2.1 不要污染框架命名空间
不要在System命名空间下创建类型。
2.2 为每个命名空间创建单独的目录
2.3 将常被共同使用、修改和发布或互相依赖的类型放到同一个命名空间下
共同重用原则
包由一起重用的类组成。如果使用包中的一个类,则也使用了其他类。
共同封闭原则
包中的类对同一种修改关闭。对包中的修改影响到包中所有类。
将可能为了同样原因同时修改的类放到同一个包中。如果两个类太过相关,对其中一个的修改会影响另一个,则将它们放到一个包中。
重用发布等价原则
重用单元就是版本发布单元。有效的重用需要跟踪来自变更控制系统的版本发布。该包是重用和版本发布的有效单元。
无环依赖原则
包之间的依赖结构必须是一个有向无环图,依赖结构中不能有环。
2.4 在分开的程序集中隔离不稳定的类
避免将不稳定的类和稳定的类放到一个包中。
2.5 最大化抽象以最大化稳定性
稳定抽象原则
包呈现的稳定性与其抽象级别直接相称。包越抽象就越倾向稳定。包越具体就越倾向不稳定。
2.6 将高级设计和框架捕获为稳定抽象,组织到稳定命名空间中
3. 程序集
3.1 让程序集和命名空间的名字保持一致
3.2 避免让难以修改的程序集依赖易于修改的程序集
稳定依赖原则
包之间的依赖关系应导向稳定性增加。包只应依赖于比自身稳定的包。
3.3 手工证件程序集的版本号
手工添加AssemblyVersionAttribute,而不要依赖默认的版本号方案。
3.4 只把单个类暴露给COM,不暴露整个程序集
在程序集层次设定ComVisible特性为false,暴露单个类。
3.5 将有不安全代码的类放到单独程序集中
3.6 静态链接本地代码