【问题标题】:How to do ASP.NET Core controllers avaiable using Screaming Architecture Conventions?如何使用 Screaming Architecture Conventions 提供 ASP.NET Core 控制器?
【发布时间】:2019-11-08 19:10:37
【问题描述】:

我正在尝试了解如何使 Asp.Net Core 应用程序 (3.0) 看起来像 Screaming Architecture 文件夹和文件约定。

我读过它,但从一个空项目开始。文件夹是:

  • 控制器
  • 观看次数
  • 型号

我想让 Web 应用程序像这样运行

  • 客户/控制器
  • 客户/浏览量
  • 客户/型号

有可能吗? 提前致谢。

【问题讨论】:

    标签: c# asp.net-core architecture asp.net-core-webapi clean-architecture


    【解决方案1】:

    控制器和模型都由命名空间引用,因此它们的物理文件位置与任何内容无关。无论控制器在项目中的哪个位置,或者即使它们根本在项目中,控制器都会被动态加载(即,将自动加载来自引用库的控制器)。模型完全基于代码,您只需在模型的命名空间中添加 using 语句即可在任何其他代码段中访问它们。

    然而,视图在很大程度上基于文件系统,并且直接在项目根目录中从 ViewsPages 更改它们所在的主文件夹将导致基于约定的视图加载完全失败。您可以随时添加额外的视图搜索位置,使其在 /Foo/Views/Bar/Views 等中查找,但确实不建议这样做。

    尽管如此,有一个区域的概念,您可以以这种方式分解您的控制器、模型、视图。你只需要:

    • 区域/客户/控制器
    • 区域/客户/视图
    • 领域/客户/型号

    换句话说,Areas 前缀是强制性的。

    【讨论】:

    • 感谢克里斯的评论!我已经知道区域概念,但我认为这不是我想要达到的目的。你读过尖叫建筑吗?我了解约定的东西,但我真的想在 asp.net mvc 项目中尝试它。我的主要目标实际上是在其结构上应用这种文件夹和文件名模式。无论如何感谢您的帮助
    • 遵循约定,要么保留主要的 Views 文件夹,要么使用 Areas “尖叫架构”,从这个意义上说,任何熟悉 ASP.NET Core 的人都知道这究竟是什么,它做了什么,以及在哪里寻找东西。具有讽刺意味的是,四处移动以创建“尖叫架构”会破坏目的,因为任何 ASP.NET Core 开发人员都会在试图寻找视图时迷失方向。
    猜你喜欢
    • 2020-10-12
    • 1970-01-01
    • 1970-01-01
    • 2020-01-13
    • 1970-01-01
    • 2020-01-16
    • 2018-03-04
    • 2011-09-05
    • 1970-01-01
    相关资源
    最近更新 更多