我正在使用 ASP.NET Web 表单 C# 从头开始创建一个解决方案。
我担心模型对象,因为我不想在每一层中创建重复的模型对象集。在 3 层架构中使用模型对象的最佳实践是什么Web Forms
?
我想到的结构如下:
- 用户界面
- BLL
- 达尔
- 模型
模型将包含可在层的每个部分中使用的所有模型类。我认为这会很有用,因为每一层都需要访问模型对象。例如:
- UI 调用 BLL 中的一个方法,传入一个填充了数据的模型对象。
- BLL 通过保存在数据库等中的对象调用 DAL 中的方法。
谢谢
我正在使用 ASP.NET Web 表单 C# 从头开始创建一个解决方案。
我担心模型对象,因为我不想在每一层中创建重复的模型对象集。在 3 层架构中使用模型对象的最佳实践是什么Web Forms
?
我想到的结构如下:
模型将包含可在层的每个部分中使用的所有模型类。我认为这会很有用,因为每一层都需要访问模型对象。例如:
谢谢
在一个相对较小的应用程序中,您可以Domain Entities
一直共享您的内容,Presentation layer
但要注意这引入的耦合。
如果在您的数据绑定中,您除了一个类型的实体,Customer
其属性Address
具有一个StreetLine1
和StreetLine2
属性,那么您的所有层都紧密耦合在一起,并且一层中的更改可能会导致其他层的更改。
所以你的决定应该基于你的项目规模和你可以拥有的耦合量。
如果您选择低耦合设计,那么您BLL
将使用您的DAL
来检索实体并使用这些实体来执行行为。然后BLL
将Data Transfer Objects
用于传递给您Presentation layer
,因此您presentation layer
和您的Domain Model
.
在这里查看我的答案:https ://stackoverflow.com/a/7474357/559144 这是我做事的常用方式,而且效果很好,不仅适用于 MVC 和实体框架......事实上,在 MVC 中,模型可能是一个实体类型,它只包含在较低层中定义的真实业务实体所包含的一些字段,这取决于您是否真的绝对需要 UI 级别中的所有字段,或者只需要一些字段来进行一些数据渲染和输入......
作为一个相关主题,请参阅我最近发布的关于在跨平台客户端/服务器系统中避免代码重复和正确架构的相关答案。
我已经 +1 了这个帖子中的其他海报,因为这不是一个完整的答案,只是与问题相关的有用信息。
此致,