gpt4 book ai didi

asp.net-mvc - ASP.NET MVC 的插件架构

转载 作者:行者123 更新时间:2023-12-03 05:25:44 24 4
gpt4 key购买 nike

我花了一些时间查看 Phil Haack 关于 Grouping Controllers 的文章非常有趣的东西。

目前,我正在尝试弄清楚是否可以使用相同的想法为我正在从事的项目创建插件/模块化架构。

所以我的问题是:是否可以将 Phil 文章中的领域拆分到多个项目中?

我可以看到 namespace 会自行解决,但我担心 View 最终会出现在正确的位置。这是可以通过构建规则来解决的问题吗?

假设上述情况可以在单个解决方案中使用多个项目,那么是否有人对通过单独的解决方案和对一组预定义接口(interface)进行编码使其成为可能的最佳方法有任何想法?从区域转移到插件。

我在插件架构方面有一些经验,但没有大量经验,因此该领域的任何指导都会很有用。

最佳答案

几周前我做了一个概念验证,我将完整的组件堆栈:模型类、 Controller 类及其关联的 View 放入 DLL 中,添加/调整 one of the examples检索 View 的 VirtualPathProvider 类,以便它们能够适本地处理 DLL 中的 View 。

最后,我只是将 DLL 放入适当配置的 MVC 应用程序中,它的工作方式就像它从一开始就是 MVC 应用程序的一部分一样。我进一步插入它,它与 5 个小型迷你 MVC 插件一起工作得很好。显然,当你四处打乱它时,你必须注意你的引用和配置依赖项,但它确实有效。

该练习的目的是为我为客户构建的基于 MVC 的平台提供插件功能。站点的每个实例中都有一组核心 Controller 和 View ,并通过更多可选 Controller 和 View 进行了增强。我们将把这些可选位放入这些模块化 DLL 插件中。到目前为止一切顺利。

我写了我的原型(prototype)的概述和 sample solution for ASP.NET MVC plugins在我的网站上。

编辑:4 年过去了,我已经使用插件制作了很多 ASP.NET MVC 应用程序,并且不再使用我上面描述的方法。此时,我通过 MEF 运行所有插件,并且根本不将 Controller 放入插件中。相反,我制作通用 Controller ,使用路由信息来选择 MEF 插件并将工作交给插件等。只是想我会添加,因为这个答案受到了相当多的关注。

关于asp.net-mvc - ASP.NET MVC 的插件架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/340183/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com