C#解决方案 - 有多少个项目?

时间:2010-03-29 21:33:52

标签: c# solution multi-project

我用谷歌搜索了一下但找不到好结果。

现在我正在建立一个网站,我试图从设计的角度来看它尽可能正确。

我现在面临的问题是,当决定开始记录时,我需要一个项目来放置这些代码。因为我在我的当前项目中找不到合适的位置,我想:嘿,为什么不是日志记录类库中?

是否有关于应该有多少项目的一般准则?我知道这将是一个相当小的项目,但完全让它脱离我的方式会很好!

任何提示都表示赞赏:)

6 个答案:

答案 0 :(得分:3)

你绝对应该有一个日志库。如果你打算从设计的角度来看这个'正确'并且你的proect不是那么简单,那么你肯定应该有一些项目。问题是,我们不知道你在做什么,除了它是一个网络应用程序。这是商业领域,通常决定了您的解决方案的复杂程度。

答案 1 :(得分:3)

我会为一个小项目寻求三层架构。

这包括:

  1. 应用层
  2. 业务层
  3. 数据层
  4. 但是如果要添加日志记录,最好创建另一个项目。这也可以帮助您,如果您想将日志记录添加到另一个应用程序,您可以只包括日志记录项目。

答案 2 :(得分:1)

如果您担心解决方案中的项目限制,则无论哪种方式都可行。不要。

我自己会把它放在一个单独的项目或实用程序项目中。

答案 3 :(得分:1)

我们有200多个项目的解决方案。缺点是Visual Studio中的加载时间很长。但过去,唯一的问题是确保你有足够的RAM。

此外, MSBuild.exe 内置了对SLN文件的支持,因此如果您正在进行自动构建,请考虑使用它而不是Visual Studio。

答案 4 :(得分:1)

“一起变化的东西应该打包在一起”,我忘记了那个指南来自哪里(代码完成可能?)。

换句话说,你的程序集(项目)应该代表一个连贯的抽象,就像你的类/对象在较低级别所做的那样。

所以是的,一个单独的日志记录项目是正确的方法(虽然在你自己推出之前检查log4net或微软的日志块!)

答案 5 :(得分:1)

将记录放入单独的项目中是完全正常的。但是它实际上取决于项目的范围。我通常会像这样设置我的项目

YourProject.Web(网络项目)

YourProject.Core(所有业务逻辑)

YourProject.Web.Tests(Watin测试)

YourProject.Web.Core.UnitTests(单元测试)

YourProject.Web.Core.IntegrationTests(集成测试)

我建议您从asp.net下载一些开源项目,看看项目是如何组织的。