2011-08-18 68 views
3

在一個ASP.NET「網站」或「解決方案」中尋找多個web應用程序時的最佳實踐。我有我與玩弄幾個選項:多個asp.net web應用程序的最佳實踐

  1. 把所有的應用程序和網站主到一個解決方案/一個Web應用程序

  2. 我的老闆的老友們擔心有30「應用」是所有這些都在VS的同一個項目下進行,每次我們對一個人進行更改時都必須部署到所有人。所以這使我們想要在相同的解決方案中將每個項目分解成單獨的項目。這使得我們不得不考慮母版頁面解決方案

    • 母版頁需要支持動態菜單結構。這是我可以用一個SiteMaster完成的事情嗎? VirtualProvider是否爲此提供了正確的解決方案?任何人有任何好的教程呢?
  3. 創建爲每個應用程序用戶控件,並在主應用程序

+0

我認爲你在這裏混合兩個問題。一個是如何在一個網站中有多個Web應用程序時構建項目?其次是如何支持基於水印的動態菜單?那是對的嗎? – sajoshi

+0

sajoshi-可能,但我想一個人會指出另一個在正確的方向,因爲有很多方法來動態地製作菜單,所以我會認爲我對應用程序和母版頁結構(主要是母版頁結構0)的最初問題將決定後者 – gcoleman0828

回答

1

1)所以這使得我們想要在相同的解決方案中分解成單獨的項目。

(好主意)

母版頁需要支持動態菜單結構。

作爲一個便箋,你有沒有聽說過MEF
這非常適合您的情況。
使用它,您可以擁有一個完整的可擴展母版頁解決方案,並且可以隨時添加額外的菜單(以及每個功能)!
通過MEF技術,您可以在單一解決方案下擁有單獨的項目。每個(新/更新的)項目可以是

  • 已發佈/重新發布。
  • 有它的內容文件合併到主已經發布的站點(主項目)
  • 複製產生的子項目的DLL到bin文件夾
  • 重新啓動該網站。

這裏有一些紙一下:Microsoft referenceCodeProject basics for Asp.Net
還有一個名爲Portable Area概念。但我不知道它是如何工作的,或者它涵蓋的確切場景,或者它適用於Asp.Net或僅適用於Asp.Mvc。只要有興趣就試試看。

3

引用它,我問了兩個類似的問題在這裏:

Cross-Project Master Page

最好的辦法是在一個單獨的項目單一解決方案,並使用Nuget包來同步常見的工件,包括母版頁。現在,這對我正在開發的22個項目解決方案來說工作得很好。您還可以將Nuget包自身存儲在源代碼管理中。

更新:

你可以使用一個XML文件,您的菜單,並與共享的NuGet出來。可能添加jQuery的滑動效果,等等。

+0

看起來Nuget的設置非常尷尬? – gcoleman0828

+0

並非如此,在下載中還有一個Nuget Explorer工具,您可以儘可能簡單地嘗試它,嘗試使用兩個測試項目的解決方案來開始;您的主要任務將打包通用文件:) – IrishChieftain

+0

CAn您指向我還是給我一個使用它的例子?它看起來像你只在這裏發佈DLL,如果我這樣做不是一個虛擬目錄更容易? – gcoleman0828

相關問題