2009-12-03 122 views
4

我正在嘗試使用Silverlight構建業務線應用程序。我覺得我做得很好,然後有人問了一些問題。馬上,我變得非常困惑。我看到有關Prism,Unity和託管擴展性框架的討論。但是,他們都看起來像是在試圖解決同樣的問題。我瘋了嗎?這三項比較/對比如何?Silverlight - Prism,Unity和託管擴展框架,

謝謝!

回答

5

我建議聽Glenn Block的Herding Code podcast。 (Part 1Part 2)。他進入這個主題,比我們在這裏可以回答的更詳細。

話雖這麼說 -

MEF和團結是有相當多的重疊的兩件事情。 Prism以其默認形式使用Unity進行依賴注入。相反,如果你喜歡,你可以在MEF上使用棱鏡。

棱鏡設計更多用於建築複合材料應用。另一方面,MEF是關於可擴展性的。這裏的目標確實有一些重疊,但基本的驅動因素是不同的。

  • 在棱鏡的情況下,這是關於組織已知的代碼。
  • 另一方面,MEF是關於發現新代碼並適當注入的。

我見過的最新指導意見,這是我用完全同意,只是posted on Glenn Block's blog:「如果你開始的新鮮,你可以使用MEF的模塊化和您的複合應用在適當的地方,你可以拉的一般問題。在棱鏡位。「

0

雖然存在重疊,但與30,000視圖的本質區別是

Unity是IOC容器。使用它可以讓你的應用更加鬆散耦合

棱鏡是讓你的UI更加鬆散耦合的齒輪。正如裏德提到的那樣,它使用Unity來幫助做到這一點。

MEF旨在使您的代碼可擴展。當需要與其他人編寫的代碼進行互操作時,這非常有用。一個例子是如果你的應用程序將支持插件。