我是 Asp.net MVC 的新手。我使用数据源创建了 mvc 应用程序,但我希望使用 n 层架构的 mvc 应用程序..与 asp.net 应用程序一样,它们通常具有表示层业务层和数据层。
我想使用 n 层架构创建 mvc 应用程序...任何遵循 mvc n 层架构的帮助或演示链接..
我是 Asp.net MVC 的新手。我使用数据源创建了 mvc 应用程序,但我希望使用 n 层架构的 mvc 应用程序..与 asp.net 应用程序一样,它们通常具有表示层业务层和数据层。
我想使用 n 层架构创建 mvc 应用程序...任何遵循 mvc n 层架构的帮助或演示链接..
您的 ASP.NET MVC 控制器可以与您在 n 层应用程序中的任何类进行通信。
例如,您ProductsController
将调用您的ProductsBusiness
图层,该图层将调用您的图层,ProductRepository
进而查询数据库。
你的控制器应该是这样的,所以那里不应该有太多的逻辑。一种看待它的方法是想象你必须替换整个 ASP.NET MVC UI 层 - 所以你想要重用的任何东西都应该降低。另一种可视化的方法是想象编写第二个 UI,它需要重用业务层来完成所有相同的事情。
因此,您的 MVC 应用程序中的控制器是其他 n 层层之上的一层。
https://templatestack.azurewebsites.net/Templates/GetAll提供了大量不同模板的 N 层应用示例
很快,大多数模板都具有相似的结构:
数据 - 数据层
数据库表的项目包含 Db 上下文和迁移的配置
数据库抽象级别的项目 - 包含数据库上不同抽象级别的实现,例如工作单元和存储库模式
数据库模型项目 - 包含所有数据库模型,包括从 Web 项目移动的 ASP.NET 标识中的这些模型
服务-逻辑层
测试
工具
Web 工具 - Web 应用层
Web 应用程序的项目 - 这是经典的 MVC 项目,它去除了 Db 上下文依赖项以及 db 模型依赖项。包含依赖注入、Automapper 和其他外部库的配置。该架构应该使您的所有控制器操作非常小,并在服务中执行您的所有业务逻辑,这些服务由您的 IoC(控制反转)容器注入。在我们的例子中,这是 Autofac
Web 应用程序基础设施项目 - 该项目包含与 Web 应用程序相关的源代码,但可能是可重用的,这就是它被 Web 应用程序分开的原因。例如,我们可以在这里放置我们的视图模型、自定义过滤器和注释、html 扩展方法和助手等。