我正在尝试掌握项目中代码组织的最佳实践。我在互联网上四处寻找好的示例,到目前为止,我已经看到了一个 Web 项目的示例,它具有一个或多个它引用的支持类库,或者一个具有遵循其命名空间约定的子文件夹的 Web 项目的示例。
假设没有正确的答案,这就是我目前对代码组织的看法:
我的项目网
这是我的网站。我在这里引用我的类库。
我的项目.DLL
作为基本命名空间,我将此 DLL 用于通常需要消耗的文件。例如,我的项目中包含所有枚举的类“枚举”就住在那里。与所有异常处理的类 MyProjectException 一样。
我的项目.IO.DLL
这是一组可能处理文件上传和下载的 20 个文件(到目前为止)。
MyProject.Utilities.DLL
我所有的常用类和方法都集中在一个通用的 DLL 中。每个类都遵循“XHelper”约定,例如“SqlHelper、AuthHelper、SerializationHelper 等等……
我的项目.Web.DLL
我使用这个 DLL 作为主客户端接口。现在,这里的大多数类文件是:
1) 属性(例如学校、位置、帐户、帖子) 2) 授权内容(例如自定义成员资格、自定义角色和自定义配置文件提供者)
我的问题很简单——这看起来合乎逻辑吗?
另外,如何避免从一个项目库到下一个项目库交叉引用 DLL?例如,MyProject.Web.DLL 使用来自 MyProject.Utilities.DLL 的代码,而 MyProject.Utilities.DLL 使用来自 MyProject.DLL 的代码。这是否通过单击属性并选择“依赖项”来解决?我试过了,但似乎仍然没有访问我选择的程序集的命名空间。我是否必须为每个类库引用我需要的每个程序集?
感谢您的回复并感谢您的耐心等待。