2011-02-22 15 views
1

我的一些客戶離開了我們的內部網絡,我將要向互聯網公佈一些報告。這意味着我將擁有2個獨立的站點,其中一個具有管理功能並在我們的Intranet上進行報告,另一個則只有暴露於互聯網的報告。ASP.Net網站,我公開外部功能如何限制重複代碼?

我將複製的頁面非常簡單。 Asp圖表控件與其他幾個字段用於選擇時間跨度,報表大小,相關過濾器等。

什麼是一些方法來減少2個幾乎相同的ASP .Net網站中的重複代碼量?

將UserControls編譯爲庫?資源文件中的CSS文件?把app_code放在別的地方? 如果可能的話,我會怎麼做?

我的網站將位於完全不同的網絡服務器上,並將共享相同的SQL Server 2005數據庫。

+0

如果您要創建兩個單獨的網站,爲什麼還要限制代碼重複?您沒有將這兩個站點從代碼的同一副本上運行,對嗎? – Oded 2011-02-22 22:16:57

+0

你可以使用相同的代碼庫並安裝兩次嗎? – Greg 2011-02-22 22:17:27

+0

@Oded將有共享功能,對一個報告的更改必須鏡像到另一個。我從維護的角度來看待這個問題。 – 2011-02-22 22:20:06

回答

0

我想你已經回答了你的問題。將一些共享邏輯移入單獨的類庫,您可以在多個站點上重新使用它們。儘可能避免App_Code,它是ASP.NET的一個特殊功能,它可以將特定文件夾動態編譯到其自己的程序集中。如果您共享App_Code,則意味着網站之間的代碼重複。

擁有共享代碼庫極大地提高了可維護性和可測試性。

0

假設你想刪除整個頁面,而不是頁面的一部分,你可能可以把它作爲一個web.config問題處理,只需要兩次安裝。

舉例來說,如果你有一個管理員文件夾,並放置在管理文件夾內的web.config文件,如:

<?xml version="1.0" encoding="utf-8"?> 

<configuration> 
    <system.web> 
     <authorization> 
      <deny users="*" /> 
     </authorization> 
    </system.web> 
</configuration> 

它會否認管理員文件夾中獲得的一切所有用戶(我認爲)。你可以在你的主web.config中使用<location>元素,但這有些乏味。

相關問題