【发布时间】:2011-03-17 18:19:08
【问题描述】:
我需要编写一个可扩展的 ASP.NET MVC 3 应用程序,而 extension 是具有非常特定目的的.dll(即:论坛扩展、博客扩展、wiki 扩展等)。
虽然扩展不会有任何视图,但这应该会使这个过程更加简单。它应该只有控制器和几个模型。
我一直在考虑用 MVC 区域实现这一点,并像这样加载它们:
// Global.asax
public static void PreApplicationStartMethod()
{
foreach (var file in Directory.GetFiles(
Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Extensions/"), "*.dll"))
{
BuildManager.AddReferencedAssembly(Assembly.LoadFile(file));
}
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
...
}
现在这工作得很好,但是,它似乎仍然是一种非常古老和静态的方式...... .NET 4 具有托管可扩展性框架。 MVC 3 具有依赖注入。
我已阅读有关便携式区域和 SharpArchitecture 的信息。我试图从源代码和文档中理解 Orchard 插件框架。但我仍然不确定我应该使用什么。
为了使我的问题更实用 - 您如何将外部项目中的控制器和模型包含到主 MVC Web 应用程序中?做这个的最好方式是什么?我应该在这里使用依赖注入吗?
谢谢。
【问题讨论】:
-
最近有人告诉我,这个社区不赞成仅链接的答案。不知何故,我觉得这很矛盾。
标签: asp.net-mvc-3 dependency-injection mef autofac