我正在嘗試使用Silverlight構建業務線應用程序。我覺得我做得很好,然後有人問了一些問題。馬上,我變得非常困惑。我看到有關Prism,Unity和託管擴展性框架的討論。但是,他們都看起來像是在試圖解決同樣的問題。我瘋了嗎?這三項比較/對比如何?Silverlight - Prism,Unity和託管擴展框架,
謝謝!
我正在嘗試使用Silverlight構建業務線應用程序。我覺得我做得很好,然後有人問了一些問題。馬上,我變得非常困惑。我看到有關Prism,Unity和託管擴展性框架的討論。但是,他們都看起來像是在試圖解決同樣的問題。我瘋了嗎?這三項比較/對比如何?Silverlight - Prism,Unity和託管擴展框架,
謝謝!
我建議聽Glenn Block的Herding Code podcast。 (Part 1和Part 2)。他進入這個主題,比我們在這裏可以回答的更詳細。
話雖這麼說 -
MEF和團結是有相當多的重疊的兩件事情。 Prism以其默認形式使用Unity進行依賴注入。相反,如果你喜歡,你可以在MEF上使用棱鏡。
棱鏡設計更多用於建築複合材料應用。另一方面,MEF是關於可擴展性的。這裏的目標確實有一些重疊,但基本的驅動因素是不同的。
我見過的最新指導意見,這是我用完全同意,只是posted on Glenn Block's blog:「如果你開始的新鮮,你可以使用MEF的模塊化和您的複合應用在適當的地方,你可以拉的一般問題。在棱鏡位。「
http://blogs.msdn.com/gblock/archive/2009/12/02/mef-and-prism-to-be-or-not-to-be.aspx
有今天的討論兩種情況下以MEF和棱鏡攜手合作,提供解決方案,這個帖子。每個場景都利用了每個場景中未找到的功能,其中80/20規則適用於他們共享的功能。
雖然存在重疊,但與30,000視圖的本質區別是
Unity是IOC容器。使用它可以讓你的應用更加鬆散耦合
棱鏡是讓你的UI更加鬆散耦合的齒輪。正如裏德提到的那樣,它使用Unity來幫助做到這一點。
MEF旨在使您的代碼可擴展。當需要與其他人編寫的代碼進行互操作時,這非常有用。一個例子是如果你的應用程序將支持插件。