2010-10-05 130 views
6

我有一個WPF棱鏡桌面應用程序與幾個模塊。在過去,我已將所有本地化資源放在基礎架構程序集中的公共資源文件中,並在所有模塊中引用它。最佳實踐WPF棱鏡資源

但最近我一直在想,如果從維護的角度來看這確實是正確的做法。從本質上講,它也是一種休息模塊化。從長遠來看,模塊本身具有模塊特定的資源文件是一種更好的方法嗎?

所有的想法都表示讚賞。

+0

@NVM:您對本地化關注哪些特定類型的資源?語言文字或佈局呢? – 2010-10-05 12:19:03

+0

@HiTech Magic。主要是我關心語言文字,但同樣適用於圖像/圖標等。 – NVM 2010-10-05 14:24:23

+0

我不明白你的意思是佈局。我不給任何控件的任何固定大小,即他們總是在自動和WPF負責佈局,還從左到右/從右到左佈局等... – NVM 2010-10-05 14:40:21

回答

5

就棱鏡的主要目標之一是模塊化而言,將您的資源僅限於適當的組裝中似乎是顯而易見的。通過一個集中式裝配共享資源與模塊化相反。 這樣做的集中方式會讓你在添加更多(可選)模塊時遇到另一種類型的DLL地獄。您將不得不更新常用程序集,而不知道使用程序集的模塊。而確定出現的模塊又違反了模塊本身。另一種方法是始終將常用程序集更新到最新版本。 無論您做什麼,遵循集中式方法都會強制您構建向後兼容的所有模塊。

這是我目前的觀點。但就我現在與Prism的合作而言,只有幾個星期的時間,我不太確定我的陳述是否應該如何實現。

+0

謝謝PVitt。這確實回答我的問題!乾杯 – NVM 2010-10-05 15:38:25

1

使用Prism時,我從來沒有在各個模塊之間引用(除非一個模塊確實是另一個模塊的增強)。我傾向於將共享資源,接口等放在由所有模塊和包含shell的程序集引用的'common'-assembly中。然後通過IoC容器檢索實現接口的東西,並將實現放置在它所屬的模塊中。

正如你所寫 - 讓他們在基礎設施模塊中打破了Prism背後的想法之一。

+1

那麼,你也有他們在基礎設施模塊,只是你的名字不是那樣。您的裝配體與基礎結構裝配體相比還有什麼其他特徵? – PVitt 2010-10-05 11:42:15

+0

@Goblin,PVitt說,你和我的設置一樣。您的「常用」程序集是我的「基礎結構」程序集。 – NVM 2010-10-05 14:26:04

+0

不 - 我的基礎設施本身就是一個模塊。 '普通'程序集與此不同。 – Goblin 2010-10-05 18:36:40