2011-03-17 221 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

回答