我不直接尋找代碼,但對於一些想法如何最好地解決我的問題。Asp.net MVC - 如何實現跨項目使用的靈活模塊?
這是我正在開發的這個asp.net mvc應用程序。它應該是「高度模塊化」的,許多部分必須在不同的項目中重複使用。
我們當前的方法是使用託管擴展框架在運行時導入程序集。這些通常包括工作所需的一切;模型,視圖和控制器。導入時會註冊路線和導航/主菜單按鈕。 迄今爲止,例如,我可以簡單地將「news-column」程序集複製到任何其他項目中,包括MEF的東西,並且「神奇地」新項目提供可在/ News/List中訪問的新聞功能。
但是,問題是,雖然在大多數情況下在組件中提供了默認視圖,但我有時會希望導入的控制器顯示不同的視圖,並在自定義佈局中顯示其他字段。我目前的做法是使模塊中的操作方法變爲虛擬。如果另一個項目需要使用自定義視圖呈現列表,我只需重寫list方法,調用基本方法來填充ViewData,然後調用任何我想要的視圖。然而,這不知何故感覺骯髒,如果有人知道更好的解決方案,我會非常感激。
我面對的另一個問題是我可能想要一個導入的模型與不同的表一起工作。我們將使用Fluent NHibernate,在ClassMap - Table(「News」)中定義目標表。 映射是進口這樣的:
foreach(Assembly assembly in assemblies)
configuration.Mappings(m => m.FluentMappings.AddFromAssembly(assembly));
我無法弄清楚如何改變導入的映射表,但我想有一個簡單的方法是什麼?
感謝至少閱讀本:)
小挑逗:MEF代表託管擴展框架,而不是Microsoft Extensibility Framework – 2010-01-22 01:44:35
絕對正確,對不起,我一直都在犯這個錯誤 – Steffen 2010-01-22 10:24:23