寻找有关Microsoft Visual Studio解决方案和项目命名约定的建议

Rod*_*ley 7 projects-and-solutions naming-conventions visual-studio

似乎没有任何经过验证的真实最佳实践指导您如何设置解决方案,项目及其输出的程序集.微软似乎已经在VS.net时代试过了,但他们已经退出了这个内容.对于我读到的每一种方法,我都读到了另一种声称相反更好的方法,或者只关注"如果只有微软会..."的帖子,但实际上并没有提供任何解决方案.

似乎有很多方法可以做到这一点,所有这些似乎都适用于他们的情况下的各种团体,因此我想我会问你在你的情况下使用什么约定以及为什么它们适合你.

我希望这将为不同情况,小型开发团体和项目提供几个良好的公约,以适应不同地点的大型开发团队和项目.

你用什么约定......

  • 说出你的解决方案,为什么?
  • 为您的项目命名,为什么?
  • 命名你的程序集,为什么?
  • 知道何时创建新项目或添加到现有项目,为什么?
  • 知道何时将解决方案分解为更小的解决方案,为什么?
  • 知道何时将项目分解为多个项目,为什么?

需要明确的是,WHY与这些答案中的HOW一样重要.关于这里和其他地方的发布方式有很多答案,很少有人说为什么他们使用一种约定而不是另一种约定.

Tim*_*ora 3

这是一个非常广泛的问题,但却是一个很好的问题。我将从用于 ASP.Net Web 项目的简单结构开始(MVC 看起来完全不同)。

解决方案命名对我来说不是什么大问题。我倾向于为特定目的创建解决方案,并将现有项目添加到解决方案中。如果您的解决方案超过 15 个项目(只是粗略数字),请考虑添加其中一些项目作为参考。大多数人不需要同时处理超过 15 个项目。

项目命名对我来说很重要。

// class library that supports the site itself and abstracts
// more complicated UI logic into a separate place
Company.ProductName.Web;

// website
Company.ProductName.Web.UI;

// main business object library for product
//
// of course, you can have as many of these as needed.
Company.ProductName;
Run Code Online (Sandbox Code Playgroud)

我尝试在项目中使用足够的文件夹,以便可以轻松查看文件夹中的所有文件,而无需滚动解决方案资源管理器。

我的典型网络项目看起来像这样。请注意表示命名空间/可编译资源与非命名空间/可编译资源的大小写不同。

  • 客户端(CSS、JavaScript)
  • 配置(私有的、自定义的配置文件,如果有的话)
  • 内容(母版页、ASPX 和 ASCX,分为逻辑文件夹)
  • 处理程序(ASHX 等)
  • 图片
  • MSBuild(构建脚本)
  • WebServices(这些应该只是与相关站点直接相关的小型服务。否则,请将它们分成一个单独的项目)。

我开始越来越多地使用部分类来创建综合类,这些类可以做很多事情而不会让代码变得混乱。例如,我最近创建了一个 Web 服务,其唯一目的是将 JSON 返回给客户端,但逻辑分布在近十几个部分类中,以便更好地组织它。

希望这能让你开始。