第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MEF和MAF(System.AddIn)之間的選擇

MEF和MAF(System.AddIn)之間的選擇

慕沐林林 2019-07-06 13:35:20
MEF和MAF(System.AddIn)之間的選擇托管擴展框架(MEF)和托管Addin框架(MAF,又名System.AddIn)似乎完成了非常類似的任務(wù)。根據(jù)堆棧溢出問題,MEF是System.Addin的替代品嗎?,甚至可以同時使用。你什么時候會選擇使用其中一種來對抗另一種呢?在什么情況下,你會選擇將兩者結(jié)合使用?
查看完整描述

3 回答

?
有只小跳蛙

TA貢獻1824條經(jīng)驗 獲得超8個贊

我一直在評估這些選擇,下面是我得出的結(jié)論。

MAF是一個真正的adon框架。您可以完全分離您的加載項,甚至在一個單獨的應(yīng)用程序域中運行它們,這樣如果一個插件崩潰,它就不會破壞您的應(yīng)用程序。它還提供了一種非常完整的方法來將這些加載項與依賴于您給它們的契約之外的任何東西分離開來。實際上,您可以在升級主應(yīng)用程序時,對您的合同適配器進行版本化,以向后兼容舊的加載項。雖然這聽起來很棒,但為了跨越應(yīng)用程序域,您必須付出沉重的代價。你付出這個代價的速度和靈活性的類型,你可以來回發(fā)送。

MEF更像是依賴注入,有一些額外的好處,例如可發(fā)現(xiàn)性和.(在這張圖上畫一個空白)。MEF中不存在MAF的隔離度。它們是兩種不同事物的不同框架。


查看完整回答
反對 回復(fù) 2019-07-06
?
慕絲7291255

TA貢獻1859條經(jīng)驗 獲得超6個贊

如果您看了關(guān)于System.Addins的視頻,他們顯然是在談?wù)摲浅4蟮捻椖?。他說起一個團隊管理主機應(yīng)用程序,另一個團隊管理每個Addin,以及第三個團隊管理合同和管道。基于此,我認為System.Addins顯然適用于更大的應(yīng)用程序。我在考慮像SAP這樣的ERP系統(tǒng)(也許沒那么大,但你懂)。如果您觀看了這些視頻,您可以知道使用System.Addins的工作量非常大。如果你有很多公司為你的系統(tǒng)設(shè)計第三方插件,而且你不能違反任何死刑附加合同,這會很好。

另一方面,MEF似乎與SharpDe信封的外接程序、Eclipse插件架構(gòu)或Mono.Addins有更多相似之處。它比System.Addins容易得多,而且我相信它要靈活得多。您所失去的是,您沒有得到AppDomain隔離或強大的版本控制合同的框外與MEF。MEF的優(yōu)點是,您可以將整個應(yīng)用程序構(gòu)建為一個部件組合,這樣您就可以為不同的客戶以不同的配置交付產(chǎn)品,如果客戶購買了一個新功能,您只需將該功能的部分放到他們的安裝目錄中,應(yīng)用程序就會看到并運行它。它還有助于測試。您可以實例化要測試的對象,并為其所有依賴項提供模擬對象,但當它作為組合應(yīng)用程序運行時,組合過程會自動將所有實際對象連接在一起。

我想提到的最重要的一點是,盡管System.Addins已經(jīng)在框架中,但我沒有看到很多人使用它的證據(jù),但是MEF只是坐在CodePlex上,據(jù)說它包含在.NET 4中,而且人們已經(jīng)開始用它構(gòu)建許多應(yīng)用程序(包括我自己)。我認為這說明了這兩個框架的一些情況。


查看完整回答
反對 回復(fù) 2019-07-06
?
收到一只叮咚

TA貢獻1821條經(jīng)驗 獲得超5個贊

已經(jīng)開發(fā)并交付了MAF應(yīng)用程序。我對MAF的看法有點令人厭煩。

MAF在最壞的情況下是“去耦合”系統(tǒng)或“松散耦合”系統(tǒng)。MEF充其量是“耦合”系統(tǒng)或“松散耦合”系統(tǒng)。

我們通過使用MAF實現(xiàn)的MAF好處是:

  1. 在應(yīng)用程序運行時安裝新組件或更新現(xiàn)有組件。在應(yīng)用程序運行時,可以更新Addin,用戶可以無縫地看到更新。你得找阿普曼人才行。

  2. 根據(jù)購買的部件發(fā)放許可證。我們可以控制哪個Addin是由用戶的角色和權(quán)限加載的,以及Addin是否被授權(quán)使用。

  3. 快速發(fā)展(更快的上市時間)。Addin開發(fā)非常適合敏捷方法,開發(fā)團隊一次開發(fā)一個Addin,而不必與應(yīng)用程序的其他部分開發(fā)集成部分。

  4. 改進的QA(一次只有QA一個組件)。然后,QA可以測試并發(fā)布一段功能的缺陷。測試用例更易于開發(fā)和實現(xiàn)。

  5. 部署(在開發(fā)和發(fā)布組件時添加組件,它們“正常工作”)。部署只是制作一個Addin和安裝文件的問題。沒有其他的考慮是必要的!

  6. 新組件與舊組件一起工作。早期開發(fā)的Addin繼續(xù)工作。與應(yīng)用程序無縫匹配的新加載項


查看完整回答
反對 回復(fù) 2019-07-06
  • 3 回答
  • 0 關(guān)注
  • 1011 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號