一千萬個為什麽

搜索

您是如何使用托管擴展性框架的?

我和MEF一起工作了大約2周。我開始考慮MEF的用途,研究如何使用MEF,最後實現3個模塊的主機。合同證明易於掌握,模塊易於管理。 Although MEF has a very practical use, I am wondering to what extent? I mean, is everyone going to be rewriting existing applications for extensibility? 是的,這聽起來很奇怪,而且非常不切實際。修辭說:

MEF如何影響當前 編程趨勢?

你有沒有開始尋找 使用MEF的機會?

你有沒有開始計劃專業? 重寫可能的現有應用程序 從可擴展性中受益?

That said, my questions are: how do I know when I should plan a new project with extensibility? how will I know if an existing project needs to be re-written for extensibility? Is anyone using MEF?

最佳答案

有人使用MEF嗎?

我正在使用MVVM模式處理Silverlight項目。我們首先根據需要通過接口和手動依賴註入(根據需要構造函數或屬性註入)將所有VM連接在一起。它開始變得痛苦,我們開始使用MEF作為基本上依賴註入框架來導出跨視圖模型使用的某些服務,並將它們導入到需要它們的視圖模型中。完美的工作和很少的代碼。

是的,有一些純粹主義者會說MEF不是用於依賴註入,而真正的依賴註入框架會做得更好。然而,MEF正好融入.NET,這是一個很大的優勢,它足以滿足我們的需求。 我怎麽知道什麽時候應該計劃一個具有可擴展性的新項目? 我如何知道現有項目是否需要重新編寫以實現可擴展性?

IMO,您應該始終適當地分離關註點並使用接口來允許不同的模塊獨立地進行更改。如果你這樣做,那麽當你發現需要的可擴展性時,MEF應該很容易添加。但是我不會啟動一個沒有可擴展性要求的項目並且放置MEF以防萬一。我會等待有需要。對於現有項目,如果需要,我會評估將項目重新布線以使用MEF與替代解決方案而不做任何事情的努力,並查看哪些獲勝。

轉載註明原文: 您是如何使用托管擴展性框架的?