Asp.net MVC分层架构

时间:2012-05-17 09:24:24

标签: asp.net-mvc n-tier-architecture

我是Asp.net的新手MVC.i已经使用数据源创建了mvc应用程序但是我想要使用n层架构的mvc应用程序。像asp.net应用程序一样,它们通常具有表示层Busineess层和数据层。

我想使用n层架构创建mvc应用程序...遵循mvc n层架构的任何帮助或演示链接..

2 个答案:

答案 0 :(得分:1)

您的ASP.NET MVC控制器可以与您的n层应用程序中的任何类进行对话。

例如,您的ProductsController会调用您的ProductsBusiness图层,该图层会调用您的ProductRepository,而{{1}}会查询数据库。

你的控制器应该是这样的,因此那里的逻辑不应该太多。看待它的一种方法是想象你必须替换整个ASP.NET MVC UI层 - 所以你想要重用的东西应该更低。另一种可视化的方法是想象编写第二个需要重新使用业务层来执行所有相同操作的UI。

因此,MVC应用程序中的控制器是高于其他n层图层的层。

答案 1 :(得分:0)

https://asptemplatestack.com/Templates/GetAll提供了许多针对不同模板的N层应用程序示例

几乎所有模板都具有相似的结构:

enter image description here

数据-数据层

  1. 数据库表的项目包含Db上下文和迁移的配置

  2. 用于数据库上抽象级别的项目-包含数据库上不同抽象级别的实现,例如工作单元和存储库模式

  3. 用于数据库模型的项目-包含所有db模型,包括从Web项目中移出的来自ASP.NET标识的这些数据库模型

服务-逻辑层

  • 包含您的应用程序的业务逻辑

测试

工具

  • 这里可能会创建不同的控制台应用程序,例如Crawlers,Importers等

Web工具-Web应用程序层

    Web应用程序的
  1. 项目-这是经典的MVC项目,该项目除去了Db上下文依赖项以及db模型依赖项。包含依赖注入,自动映射器和其他外部库的配置。该体系结构应该使您所有的控制器动作都保持很小,并在服务中执行所有业务逻辑,这些业务逻辑是由IoC(控制反转)容器注入的。在我们的例子中,这是Autofac

  2. Web应用程序基础结构的
  3. 项目-此项目包含与Web应用程序相关的源代码,但可能可重用,这就是为什么将其与Web App分开的原因。 例如,在这里我们可以放置视图模型,自定义过滤器和注释,html扩展方法和帮助器等。

相关问题