2010-03-19 103 views
0

Visual Studio 2010 RC - > Silverlight應用程序如何在需要它們的項目中處理30k文件?

我們有一個我們需要訪問的圖像庫。它們是從供應商(通過安裝程序)提供給我們的,它們不在數據庫中,它們是文件夾中的文件(文件夾中的一個非常大的怪物)。我們無法控制圖像何時更改,因此供應商需要能夠單獨覆蓋它們。我們經常從這家供應商那裏獲得更新,說明這些圖片「隨機」變化,沒有我們(程序員)的知識。

問題:我不想SVN中的30K圖像。哎呀,我甚至不想在我的解決方案中想象它們。但是,我們的應用程序需要它們才能正常運行。所以,我們的構建/登臺服務器需要訪問這些映像(我們有兩個構建服務器)。

問題:如果您的應用程序無法訪問每個30k圖像並且無法控制這些圖像何時更改,您將如何處理該應用程序?

我不想擁有一個瘋狂的大型SVN存儲庫。因爲我不知道這些圖像何時發生變化,所以我真的不希望他們在我的解決方案中(絕對不希望有大型解決方案)。每次這些圖像改變時,我也不希望大量的手動步驟。

到目前爲止,我們的口號一直都是,任何開發者都可以從SVN下載,編譯並運行我們的應用程序。這些圖像將會殺死那個咒語。

我很想做一個WCF服務,如果它們存在,將返回圖像,如果它們不存在,將返回一個虛擬圖像。通過這種方式,所有的開發工具箱都會返回一個虛擬圖像,而我們的構建/分段/生產框將返回真實的圖像(實際上已經安裝了供應商的圖像安裝程序的圖像)。

這必須是一個解決的問題。

其他人做了什麼來處理這些類型的問題?

我願意接受建議。

回答

3

通常情況下,大量的圖片,尤其是高達30k的圖片,您將需要專門用於圖片的內容交付網絡。它不應該僅僅是設置一個簡單的HttpHandler來處理請求,而這些請求又可以將這些照片返回給你的應用。

0

過去,我在IIS中創建了一個虛擬目錄,其唯一目的是爲圖像提供服務。

1

我強烈建議不要在源代碼控制中存儲圖像,特別是如果它們要頻繁更改。此外,將這些圖像添加到項目/解決方案中可能會導致VS性能下降。

我認爲爲開發人員提供虛擬圖像的想法很好。作爲部署過程的一部分,您可以在構建腳本中添加一些內容,將圖像複製到正確的位置。

0

如果這些圖片在您的源代碼管理中不可用,則它們不在您的構建中,也未隨您的部署包一起提供。

因此,您的應用程序應該可以使用和不使用圖像文件。如果圖像丟失,返回假人可能是一個安全的解決方案。

0

我想像合併分支之間的圖像將是百年難遇的一場噩夢,所以我同意,你應該從CVS/SVN讓他們離開

你要問自己的問題是,是影像不可或缺的開發人員級別的項目?虛擬圖像的想法將是一個合適的答案。

0

我肯定會建議不要在源代碼控制中保留這些圖像。

我不知道你的應用程序訪問文件的方式。

如果是通過文件系統,如何將一個硬鏈接到中央圖像目錄到存儲庫?這樣,您的開發人員就可以檢出應用程序,並從一開始就擁有正確的工作版本(前提是可以檢查Windows硬盤鏈接進出存儲庫,否則可能需要一些腳本。)

相關問題