题
我正在尝试提出有关项目目录结构的最佳实践。
我最新的想法是项目的根目录中不应该有任何类。所有类必须位于以下目录之一下
- 用户界面
- 业务对象
- 商业逻辑
- 数据存取
我想听听其他人的想法是否有将事物放在根级别的用例或找到不适合的类
解决方案
如果您谈论的是 C#,那么我会将您的 DAL、BLL、GUI 分离到不同的项目而不是一个项目。并且有一个解决方案。这将强制每个代码文件位于其中一个项目内。
我添加了一个例子:
- 解决方案:项目名
- 项目:DAL(命名空间:项目名称.DAL)
- 文件夹:存储库(命名空间:项目名称.DAL.存储库)
- 文件夹:合约(命名空间:项目名称.DAL.合同)
- 文件:您的实体映射配置
- 项目:BLL(命名空间:项目名称.BLL)
- 文件夹:服务(命名空间:项目.BLL.服务)
- 文件夹:实体(命名空间:项目.BLL.实体)
- 文件:IoC配置类/通用业务逻辑
- 项目:共享(命名空间:项目名称.共享)
- 文件:整个应用程序的通用共享逻辑(例如 InvalidIdentifier 常量)
- 该项目不应引用解决方案中的其他项目。
- 项目:网站(命名空间:项目名称.网站)
- 您的 ASP.NET 网站 UI
- 项目:Winforms(命名空间:项目名称.Winforms)
- 你的 winforms 用户界面
- 项目:DAL(命名空间:项目名称.DAL)
如果可能的话,您应该为网站和 winforms 项目指定一个与您的应用程序相关的名称。
其他提示
这 博客 尽管你只有三岁,但应该为你提供一些有趣的读物。除了目录结构之外,它还可能为您提供一些想法。
我放入根文件夹的唯一文件是 程序.cs 和 程序.ico (如果它是可执行应用程序)。
我不这样做,但它与目录结构无关(对我来说)。我希望所有代码都位于有意义的命名空间中。
我总是将项目异常的基类放在根目录中。
不隶属于 StackOverflow