Architecture 如何构建三层解决方案?
我在解决方案中使用FluentNHibernate。fluentnhibernate文档中推荐的文件夹结构如下: Entities文件夹,其中包含业务模型的POCO类。 Mappings文件夹,其中包含到数据模型的映射 我假设这两个文件夹将进入一个名为“BusinessModel”的业务层项目?见下文:Architecture 如何构建三层解决方案?,architecture,3-tier,Architecture,3 Tier,我在解决方案中使用FluentNHibernate。fluentnhibernate文档中推荐的文件夹结构如下: Entities文件夹,其中包含业务模型的POCO类。 Mappings文件夹,其中包含到数据模型的映射 我假设这两个文件夹将进入一个名为“BusinessModel”的业务层项目?见下文: BuessinessModel |_ Entities |- Student.cs |- Course.cs |- Facul
BuessinessModel
|_ Entities
|- Student.cs
|- Course.cs
|- Faculty.cs
|_ Mappings
|- Mappings.cs
也许可以创建另一个名为“DataAccess”的项目,它引用数据访问层的BusinessModel项目来执行CRUD
最佳做法是什么?有建筑师吗?谢谢
AK:我在上读了你的帖子 让我引用你的话 以“人”为例:思考不同的数据 与个人相关的操作(获取单个用户的所有数据) 个人,许多人的浅层数据集合,CRUD 操作、搜索等)-然后按照逻辑顺序设计接口 分组 我正在努力理解这一点。那么,你是这么说的
盲目地将相同的体系结构应用于每个解决方案/项目是危险的;我的标准/默认方法如下: 高级别
- 我们的目标是3层,我们假设它们是:UI、BL(业务逻辑)、DA(数据访问)
- 这将(可能)由以下4个组件的逻辑块(想想名称空间)组成:Common、UI、BL、DA。请记住,这4个块中的每一个都可能有多个代码级项目
- 常见的是,我们将粘贴其他3个需要共享的东西,例如POCO
- 将BusinessModel(可能作为一个独立的项目)放在Common中
- 我猜映射依赖于物理数据源,因此这应该进入具体的DA实现
- 最佳/常见的做法是松散地耦合我们的主要块(特别是BL和DA);通常使用依赖注入李>
- 这将通过定义Inferfaces来实现,这些接口将/可以使用POCO或您的业务模型实体-从通用接口
|-CourseRepository.cs谢谢,这很有帮助。我是在所有层中定义接口还是仅在DA层中定义接口?有什么好文章吗?我知道我可以用谷歌搜索,但我肯定我会找出一大堆,不知道哪一个对我帮助最大。谢谢,妈妈。这很好。我有点明白了。假设我有一个小的解决方案,每个层只有一个项目,那么在业务模型中,我有POCO和存储库接口。那么,在DAL中,具体的存储库类实际上实现了在业务层中定义的存储库接口?你能确认一下吗?我认为这将帮助我在正确的方向上组织我的解决方案结构。再次感谢您。是的,您完全正确,在业务模型中有POCOs和存储库接口,在dal项目中有具体的存储库具体类来实现该接口。您还可以找到许多实现此体系结构的DDD示例。。看看我一直在开发的这个解决方案,它有点复杂,但它会给你一个想法