-1

我是 Asp.net MVC 的新手。我使用数据源创建了 mvc 应用程序,但我希望使用 n 层架构的 mvc 应用程序..与 asp.net 应用程序一样,它们通常具有表示层业务层和数据层。

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

4

2 回答 2

1

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

例如,您ProductsController将调用您的ProductsBusiness图层,该图层将调用您的图层,ProductRepository进而查询数据库。

你的控制器应该是这样的,所以那里不应该有太多的逻辑。一种看待它的方法是想象你必须替换整个 ASP.NET MVC UI 层 - 所以你想要重用的任何东西都应该降低。另一种可视化的方法是想象编写第二个 UI,它需要重用业务层来完成所有相同的事情。

因此,您的 MVC 应用程序中的控制器是其他 n 层层之上的一层。

于 2012-05-17T10:18:14.970 回答
1

https://templatestack.azurewebsites.net/Templates/GetAll提供了大量不同模板的 N 层应用示例

很快,大多数模板都具有相似的结构:

在此处输入图像描述

数据 - 数据层

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

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

  3. 数据库模型项目 - 包含所有数据库模型,包括从 Web 项目移动的 ASP.NET 标识中的这些模型

服务-逻辑层

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

测试

工具

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

Web 工具 - Web 应用层

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

  2. Web 应用程序基础设施项目 - 该项目包含与 Web 应用程序相关的源代码,但可能是可重用的,这就是它被 Web 应用程序分开的原因。例如,我们可以在这里放置我们的视图模型、自定义过滤器和注释、html 扩展方法和助手等。

于 2018-10-18T11:57:38.473 回答