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

3
我在谷歌上搜索了一下,但没有找到好的结果。
现在我正在建立一个网站,并尽可能从设计角度让它尽可能正确。但我现在面临的问题是,在决定开始记录日志时,我需要一个项目来放置这个代码。由于我在当前项目中找不到合适的位置,所以我想:嘿,为什么不创建一个日志类库呢?
是否有关于应该拥有多少项目的一般准则?我知道这将是一个相当小的项目,但完全搞定它会很好!
欢迎提供任何提示 :)

可能是重复问题:https://dev59.com/5HVC5IYBdhLWcg3wdw65是否有关于Visual Studio项目解决方案结构的最佳实践? - JamesEggers
请参考类似问题:一个解决方案中有太多项目会有什么问题? - Michael Freidgeim
6个回答

3

毫无疑问,你应该拥有一个日志记录库。如果你想从设计的角度尽可能地做到正确,并且你的项目不止是琐碎的小事,那么你一定要有一些项目。问题是,我们不知道你正在处理什么,除了这是一个Web应用程序之外。业务领域通常决定您的解决方案需要多复杂。


最好使用第三方日志库而不是自己创建。 - Michael Freidgeim

2

对于小型项目,我建议采用三层架构。

这包括:

  1. 应用层
  2. 业务逻辑层
  3. 数据访问层

但如果您想添加日志记录,最好创建另一个项目。这也有助于您,以便如果您想要将日志记录添加到另一个应用程序中,只需包含日志记录项目即可。


1

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

我个人会将其放在单独的项目或实用程序项目中。


1

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

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


1
“变化应该一起打包”,我忘记这个准则来自哪里(也许是《代码大全》?)。
换句话说,您的程序集(项目)应该像较低级别的类/对象一样代表一个连贯的抽象。
因此,是的,单独的日志记录项目是正确的选择(尽管在自己动手之前,请查看log4net或Microsoft的日志记录块!)。

我已经在使用log4net,但是我想将其抽象化,以防我想要更改它 ;) - Oskar Kjellin

1
将日志记录放入单独的项目中是完全可以的。但这真的取决于您的项目范围。通常我会像这样设置我的项目:
YourProject.Web(Web项目)
YourProject.Core(所有业务逻辑)
YourProject.Web.Tests(Watin测试)
YourProject.Web.Core.UnitTests(单元测试)
YourProject.Web.Core.IntegrationTests(集成测试)
我建议您从asp.net下载一些开源项目,看看项目是如何组织的。

我参与的大多数项目都是小到中等规模的。为数据访问单独创建一个项目有点过度设计。我只在核心项目中使用存储库设计模式进行数据访问。然而,我确实认为为数据访问创建一个单独的项目是良好的实践。 - Ybbest

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接