2011-03-17 162 views
4

我需要编写一个可扩展的ASP.NET MVC 3应用程序,而扩展是一个.dll具有非常具体的目的(即:论坛扩展,博客扩展,维基扩展等)。ASP.NET MVC 3应用程序的扩展?

虽然扩展名不会有任何意见,但应该使这个过程更简单。它应该只有控制器和几个型号

我一直在思考与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具有依赖注入。

我读过关于Portable Areas和SharpArchitecture。我试图从源代码和文档中了解Orchard插件框架。但我仍然不确定我应该使用什么。

为了让我的问题更实际一点 - 如何将外部项目中的控制器和模型包含到主MVC Web应用程序中?做这个的最好方式是什么?我应该在这里使用依赖注入吗?

谢谢。

+0

最近有人告诉我,链接只有答案在这个社区中不满。不知何故,我发现这足够矛盾。 – 2012-03-23 10:32:06

回答