2009-04-24 60 views
7

有沒有人推薦以可插拔模塊化方式構建ASP.Net MVC應用程序?我的意思是一些博客帖子/教程等,我只讀Hammet's MEF and ASP.NET MVC sample blogpost,但我沒有發現MEF成熟到足以在生產中使用它。我無法谷歌退出任何其他有關職位有關這個主題的...asp.net mvc模塊化應用程序howto /建議

我知道我可以實現模塊化實現自定義ControllerProvider和一些插件檢查機制,但我想更多的辦法研究/最佳實踐之前,我開始重新實現車輪:)


模塊化我的意思是該議題涵蓋只是針對web應用點 - 沒有其他類似的模塊化應用模型/服務等。我想找到最好的方法來分離一個Web應用程序到多個程序集,其中將包含額外的控制器,視圖,資源,JS + CSS文件,圖像等。所以應該有一些主要的Web應用程序項目,它會看起來對於可用的可插入Web應用程序組件,加載它們,發佈其控制器,使其視圖和其他資源可用,並可能爲每個Web應用程序模塊準備一些帶有條目的菜單。

我不想在這裏討論任何模型+服務可插拔體系結構 - 只是ASP.Net M VC部分。

+0

我期待在不久的將來做一些非常相似的事情,到目前爲止,我還沒有發現任何「開箱即用」的東西。但是,手動執行此操作應該相對簡單,只需在bin中迭代程序集並查找某個接口的繼承者即可。我認爲... – roryf 2009-04-24 08:40:24

回答

3

模塊化是一個相當廣泛的概念,我認爲你的問題的答案只是主觀的。你所問的是一個架構決定,沒有一個好的方法可以解決它。根據項目的不同,您可能會有不同的優先級和系統不同部分的重要性。我認爲MVC模式提供了足夠的關注點分離,這實際上是每個模塊化體系結構的目的。

如果您希望能夠在現有應用程序中輕鬆插入新模塊,那麼您如何定義模塊?我認爲你應該縮小這個問題的範圍,以獲得一些非模糊和有意義的答案。

+0

你是對的 - 我試圖編輯帖子以縮小主題。 – Buthrakaur 2009-04-24 08:36:59

0

爲模塊化的基本參數都是一樣的...

  • 可測
  • 可維護性
  • 易於部署的
1

用於部分請求的支持,以使第三部分控制器在MVC完全支持,看看這個帖子:http://blog.codeville.net/2008/10/14/partial-requests-in-aspnet-mvc/

很明顯,MVC中的模塊至少包含一個Controller和一個或多個Views。但也許你想要的僅僅是少數,因此重寫控制器要比傳統的WebForms架構容易得多。

或者您可能想要替換數據源,只需覆蓋Model實體中的方法,然後啓動並運行。它是MVC中的全部核心主體,您分離不同層次的邏輯,並且您被強制執行,與WebForms不同,它仍然允許您在鏈接中直接在視圖中執行SQL。

(即MVC也支持它不是通過設計,而是通過繼承。)

0

作爲一個起點,你可以從這篇文章中抓住一些想法:

Spark View Engine - Modularity

和樣例代碼:

spark/src/Samples/Modules

的代碼是在Spark視圖引擎樹(這是一個非常好的和強大的項目),但與它沒有多大關係。它使用Castle來建立依賴關係和所有這些東西。順便說一下,我一直在搞MEF,但我現在看不到這些好處,我需要做的事情可以用Castle和一些工具來完成(幫助者查詢程序集以及類似的東西)。

1

我發現,解決一些你談論的根本要求的文章。不幸的是,這篇文章使用了ASP.NET MVC 3已經過時了大約一年,所以我重寫了它並測試了方法,使其能夠與ASP.NET MVC 4一起使用。您可以使用read it here

0

我知道這個問題已經回答了。但是,我一直在四處搜尋有關此主題的更多當前答案。正如原始答案所示,我已經看過了Areas,但也遇到了Liviu Ignat的以下鏈接(Part 1Part 2),它從可插拔模塊的角度回答了此問題。