簡體   English   中英

共享用戶控件可以訪問多個網站

[英]Sharing user controls acrros multiple websites

我目前正在開展一個涉及三個不同網站的項目,這些網站具有許多常用功能。 目前,常用功能被放置在充滿用戶控件的不同網站中。

問題是在多個網站上共享用戶控件。 環顧SO和其他網站,唯一的解決方案似乎是使用虛擬目錄。 由於這是一個可行的解決方案(我們現在就是這個),它似乎不是一個“干凈”的解決方案。

在不同站點之間共享通用功能(包括GUI / HTML)存在哪些“最佳實踐”?

(例如)是否可以創建單個Web應用程序項目並將子目錄(每個子目錄都有自己的web.config)部署到不同的生產環境中?

我一直在處理這個問題很長一段時間,並且已經使用了虛擬目錄和“用戶控制庫”方法,並且發現它們都需要。 我很驚訝,微軟沒有解決這個問題來編譯用戶控件,就像服務器控件一樣。

無論如何...

在嘗試用戶控件庫時,我們大多數人都會尋找兩種便利:

  1. 容易發展。 如果我們更改用戶控件,我們希望在一個地方執行此操作。 我們希望能夠在我們正在工作的Web中進行編輯和調試,而無需管理ascx文件的多個副本。
  2. 易於部署。 我們希望能夠在多個網站中抓取並發布ascx文件,而不會有太多麻煩。

不幸的是,虛擬目錄方法僅解決#2,“用戶控制庫”地址#2,而只是#1的一部分。 使用“用戶控件庫”,您可以針對用戶控件庫源進行調試,但是如果您在工作Web中編輯ascx,則下次構建“用戶控件庫”時將覆蓋更改。 這類似於服務器控件的操作方式:必須在別處編輯,必須編譯才能更新。 例外情況是必須復制“用戶控制庫”,而不是僅僅更新.dll引用。

解?

我用來解決#1的是符號鏈接 在存儲庫中創建一個公共控件文件夾,並根據需要將該文件夾符號鏈接到每個Web。 您對符號鏈接文件夾所做的任何更改都將對源公共控件文件夾進行。

要解決#2,我只需將控件復制到適當的位置即可部署完整的網站。 您也可以輕松地執行虛擬目錄,而不是在每個網站中推出符號鏈接文件夾。 由於擔心性能問題(大量網絡,大量流量),我傾向於偏離虛擬目錄以獲取常見的用戶控件托管源。

我希望這有幫助!

有一種通過構建ScottGu描述的用戶控制庫來共享用戶控件的解決方案 在我看來,這個解決方案也不是很干凈,因為你必須復制預編譯的文件才能使這個解決方案有效。

我決定在單獨的類庫中使用自定義Web控件來共享通用UI功能。 但也許Scott的解決方案適合您。

恕我直言,最好使用虛擬目錄解決方案,即使它不干凈。 這可以解決很多問題,因為您可以在多個網站上使用它,而無需在每個網站中部署額外的文件,如果有更改,您只能在一個地方進行更改。

HTH

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM