3层架构MVC 4项目

时间:2015-02-03 09:15:39

标签: entity-framework asp.net-mvc-4 3-tier

我正在使用ASP.Net MVC 4 3层体系结构开发Web应用程序,我陷入了某些困难。我知道这里存在类似的线程,但没有一个足够清楚。我已经创建了所需的层,这些层是UI(MVC4项目),BLL-业务逻辑层(库类),BOL-业务对象层(包含ADO.net的库类)和DAL-数据访问层(库类)。 层依赖关系如下:

  • UI取决于BOL和BLL
  • BLL取决于BOL和DAL
  • DAL取决于BOL

如果以下我错了,我希望你纠正我。 BOL是主参考层,它将原始dB记录与DAL交换,然后将它们发送到BLL,BLL负责任何逻辑计算,然后获取更新的记录并将它们发送到UI中的控制器。

了解以上内容,

  1. 我们应该在哪里放置CRUD功能?
  2. 我们应该在哪里以及为什么要创建一个用于声明(加上set和get)有用数据库字段的类?
  3. 我们究竟应该在ViewModel文件夹中添加什么内容;换句话说,既然我们已经在上一步和实体中定义了变量,那么它是否会添加任何值来保存Model文件夹?
  4. 提前谢谢。

1 个答案:

答案 0 :(得分:0)

无法明确纠正这些问题的答案,因此任何答案都应仅作为意见进行评估。以下是我的答案:

  1. 我们应该在哪里放置CRUD函数? CRUD是不同级别的频繁模式。高级存储库提供类似的方法,如低级表网关

  2. 我们应该在哪里以及为什么要创建一个用于声明(加上set和get)有用数据库字段的类?这些类通常是简单的数据传输对象( DTO)或稍微复杂的 Active Records 。根据{{​​3}},这些类的接口应提供业务逻辑层,并且实现应提供数据访问层。由于DTO是非常简单的类,因此可以“按原样”提供它们,而无需接口/实现分离。

  3. 我们究竟应该在ViewModel文件夹中添加什么内容;换句话说,既然我们已经在上一步和实体中定义了变量,那么它是否会添加任何值来保存Model文件夹?理论上,实体应该是我们的模型;但实际上并非如此。 F.E.在ASP.NET MVC模型中,不仅应提供下拉字段的值,还应提供所有可能的值;所以它需要单独的模型类。

  4. 结果可能是您在应用程序的不同级别有三个或四个非常相似的类。当然,它不是很好,因此在这种情况下可能会应用 Aspect Programming

相关问题