【问题标题】:Wordpress-like Plug-in model in ASP.NET MVCASP.NET MVC 中的类 Wordpress 插件模型
【发布时间】:2010-10-06 08:22:04
【问题描述】:

这有点基于this question

我目前正在考虑从头开始重建我们公司的 Intranet(老实说,我们现有的 Intranet 绝对是一团糟),但我希望我们的新 Intranet 的核心“功能”之一是构建整个应用程序的能力(在 MVC 中也可能有 10 次中的 9 次,另一个是标准的 webforms)作为为核心提供附加功能的模块或在核心内创建新应用程序的模块(对于例如,Joomla 是如何做到的)只需将它们插入到核心应用程序中,一旦它们完成就将它们放入目录中,并且在某些时候能够从管理界面启用和禁用它们。

我目前正在研究 MEF 并试图了解它,尽管我也在研究 MvcContrib Portable Areas,并想知道这对于我正在尝试做的事情是否是一个可行的替代方案。

我只是想知道这是否是试图让我到达我想去的地方的最佳选择,还是我打算使用 MEF 作为提供此功能的元素完全错误?

我什至可以在 MVC 中做我想做的事情吗?

【问题讨论】:

    标签: asp.net-mvc plugins .net-4.0 mef modularity


    【解决方案1】:

    我个人的偏好是 Portable Areas,但也可以看看 Codeplex 中的 Orchard 项目。他们有一个非常有效的插件机制,虽然有些复杂。这完全取决于您希望插件作者拥有多少核心应用程序的“知识”。

    【讨论】:

    • 好吧,因为我们也将自己编写插件,所以我们应该了解整个系统......至少我希望我们会! :) 但是我们能够构建一个应用程序的好处,例如将它放到一个目录中,当我们招募新的开发人员时,我们可以让他们立即构建新的应用程序,而不必让他们经历一个漫长的过程最初几天内网是如何构建的,等等
    • 另外,您是否知道这会如何影响路由?例如,我想为它构建一个 IT 帮助台模块,并且我假设创建工单的路线将沿着 http://intranet/IT/Helpdesk/Tickets/Create 或类似的行。如果它是一个模块,是否会导致该路由出现任何问题?
    • 便携式区域和 Orchard 解决方案都具有从“插入”模块注册路线的机制。所以假设路由遵循一些基本规则,那么你应该没问题。如果您熟悉使用 MVC 区域构建解决方案,那么让它们“可移植”是非常简单的。
    • 我可能只是太厚了,但这篇文章lostechies.com/blogs/hex/archive/2009/11/03/… 指出,要将我的便携式区域添加到应用程序中,我需要添加对父应用程序的引用,这是我试图避免的必须这样做才能不需要重新部署父应用程序。虽然我可能完全忽略了一些表明我不需要这样做的东西?
    • 您目前确实需要初始化消息总线,尽管提供的示例可以通过读取一些配置设置来改进。它并不完美,但与其他替代方案相比,它是一种相对直接的机制。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-03
    • 2011-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-30
    • 2011-08-07
    相关资源
    最近更新 更多