2011-04-01 62 views
1

我想知道什麼是行業標準或建議,你如何做你的最終以下情況。你在哪裏保存多個Silverlight項目的公共參考文件?

我正在創建多個silverlight項目,在不同日期發佈。所有這些項目都使用varios共享代碼(通用dll)。這些共享代碼將用於客戶端或服務器端。我的問題是,如果共享代碼發生變化,那麼只有在您更改使用共享組件的實際代碼時,纔會重新編譯所有受感染的項目併發布或重新編譯?現在,在客戶端,我們在每個silverlight項目中創建一個程序集引用文件夾,並將最新的必需dll放入其中。通過這樣做,它在XAP中擁有所有必需的文件,並且不會與其他項目發生衝突,並且工作正常。採用這種方法,我不會僅僅因爲常見的dll改變而重建任何其他客戶端代碼。如果多個項目需要共同的dll更改,則將所有受影響的項目中的最新副本刪除並構建並分發它們。

另一方面,服務器端(使用EF的域服務),所有服務代碼都位於網站的bin文件夾下。因此,如果我想對普通dll進行更改,那麼不僅需要發佈當前項目的最新通用dll才能正常工作,還要重新編譯所有其他服務以使用新的dll。

想知道您的意見和建議。 感謝

回答

0

有兩種方法可能:

  • 添加通用代碼來解決方案,並有一個項目引用
  • 獲取構建過程從那裏
建立一個文件夾,並參考

我更喜歡第一種選擇。我總是使用最新的代碼進行構建和調試,不必擔心陳舊的引用。 我在過去中使用了第二種方法,它是凌亂並且可能會在調試不存在的錯誤(引用舊版本)後浪費團隊的時間。事實上,我記得Visual Studio有時無法獲得更高版本。

0

您的Silverlight項目的另一種替代方法是包含公共庫的use MEF to dynamically download a XAP file。然後,如果公共庫發生更改,則可以發佈更新的「CommonLibraries.xap」,並且Silverlight客戶端可以獨立於Silverlight應用程序的其餘部分來獲取刷新。

您可以使用與使用這些公用庫的其他項目相同的方法。應用程序可以動態加載公共庫,以便公共庫可以獨立刷新。

如果可能,請考慮通過WCF服務使用「公共庫」代碼。