惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Jina AI
Jina AI
云风的 BLOG
云风的 BLOG
人人都是产品经理
人人都是产品经理
T
The Blog of Author Tim Ferriss
阮一峰的网络日志
阮一峰的网络日志
罗磊的独立博客
J
Java Code Geeks
博客园 - 聂微东
B
Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
WordPress大学
WordPress大学
腾讯CDC
L
LangChain Blog
Apple Machine Learning Research
Apple Machine Learning Research
Microsoft Azure Blog
Microsoft Azure Blog
D
DataBreaches.Net
The GitHub Blog
The GitHub Blog
美团技术团队
博客园 - Franky
Google DeepMind News
Google DeepMind News
V
V2EX
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
月光博客
月光博客
The Cloudflare Blog

博客园 - chelsea

Performance Tuning Technique: Ultra-Fast ASP.Net 书摘 ASP.Net 备忘 On Extension Method: 扩展方法该如何使用 REST on ASP.Net MVC (and Future) IoC 问题域 Log 问题域 Validation 问题域 代码的物理组织 C#泛型: 消除Visitor模式的循环依赖, 以及无聊的Accept方法 ORM问题域 Web开发问题域 向 Spring.Net 提交的建议被采纳并实现了 开源.Net中文分词组件 [导入]C# 备忘录 The C# Programming Language Notes II [导入]C++/CLI:被忽视的集成技术 DNN4 (DotNetNuke) 备忘录 持续集成 .Net手册 The Programming Language Idioms
C#代码组织: project over folder
chelsea · 2010-06-16 · via 博客园 - chelsea

Posted on 2010-06-16 23:39  chelsea  阅读(654)  评论(0)    收藏  举报

在.Net/C#项目中采用project(*.csproj)来组织代码比用同一个project不同的文件夹来组织有几个好处:

  1. 从客户代码的角度, 我依赖你很少一点东西, 可以就只依赖这点东西(做成单独的project), 不需要依赖其它无关的代码
  2. 从访问控制, Visibility 的角度, C#的internal关键字是针对物理模块的, 即dll的, 而不是名称空间或文件夹
  3. 从避免双向依赖的角度, Visual Studio会阻止两个project之间的双向依赖, 却不会阻止同一个project内不同文件夹或名称空间之间的依赖
  4. 从部署的角度, 部署的单位是dll, 如果有分开部署, 灵活部署的需求, dll应该是单一内聚的功能模块,文件夹或者名称空间没有编译后物理的对应物


有别的考虑吗? 怎么感觉.Net/C#在代码设计时和部署时的支持少了点什么, 是啥子呢?

刷新页面返回顶部