Picking the extensibility framework for my needsHi guys/gals,<br/><br/>I've spent the last week immersing myself in WCF, MAF, MEF, and Unity, and frankly, the more I read, the more my head spins.<br/><br/>Here's our situation: We're writing a new system which is composed of a client application and a server application. Both applications need to support plug-ins which add additional functionality to the system; typically, there will be a corresponding client side plug-in (with WPF UI) for each server-side plugin. Communication between client-side and server-side is WCF. We would like to be able to upgrade software on the client independent of the server, and upgrade any plug-in independent of other part of the system. Add-ins will be both by our team and possibly other in-house teams.<br/><br/>I like the thought of using MAF because of the isolation (especially useful on our server app) and versioning support. I like the thought of using MEF because of it's simplicity, and it seems to be MS's preferred direction. I like the thought of using Unity because it easily allows us to use Composite App Guidance.<br/><br/>I don't like MAF because of the complexity, and even though it solves the host/add-in versioning issues, I'll still have to solve the issue for messaging across WCF. I don't like MEF because of the total lack of versioning. <br/><br/>I don't think I need the DI or IoC capabilities of MEF or Unity, but it would provide a way for add-ins to easily use other add-ins' capabilities. However, since the add-ins are already going to be providing WCF services, they could find each other and communicate that way. I also understand that &quot;MEF is about extensibility&quot; but don't know how to evaluate how that statement applies here.<br/><br/>I've read several places talking about how MEF and MAF are complementary and could be used together, but I'm not sure I see how. Kent Boogaart's posting <a href="http://kentb.blogspot.com/2009/02/maf-and-mef.html"> http://kentb.blogspot.com/2009/02/maf-and-mef.html</a> uses MEF inside an add-in. I think what I need is the opposite - MAF wrapped around the interface exported by MEF. (I think I'd also like a MAF-like capability for WCF interfaces, but haven't fleshed out that part yet.)<br/><br/>Is there a decision tree, or other resource to help evaluate the options here? Any suggestions on which approach (or approaches) to pursue?<br/> © 2009 Microsoft Corporation. All rights reserved.Mon, 06 Apr 2009 23:42:41 Z9614e28e-4ae2-4d45-ac41-5aa9bd66c314http://social.msdn.microsoft.com/Forums/en-US/MEFramework/thread/9614e28e-4ae2-4d45-ac41-5aa9bd66c314#9614e28e-4ae2-4d45-ac41-5aa9bd66c314http://social.msdn.microsoft.com/Forums/en-US/MEFramework/thread/9614e28e-4ae2-4d45-ac41-5aa9bd66c314#9614e28e-4ae2-4d45-ac41-5aa9bd66c314ELShttp://social.msdn.microsoft.com/Profile/en-US/?user=ELSPicking the extensibility framework for my needsHi guys/gals,<br/><br/>I've spent the last week immersing myself in WCF, MAF, MEF, and Unity, and frankly, the more I read, the more my head spins.<br/><br/>Here's our situation: We're writing a new system which is composed of a client application and a server application. Both applications need to support plug-ins which add additional functionality to the system; typically, there will be a corresponding client side plug-in (with WPF UI) for each server-side plugin. Communication between client-side and server-side is WCF. We would like to be able to upgrade software on the client independent of the server, and upgrade any plug-in independent of other part of the system. Add-ins will be both by our team and possibly other in-house teams.<br/><br/>I like the thought of using MAF because of the isolation (especially useful on our server app) and versioning support. I like the thought of using MEF because of it's simplicity, and it seems to be MS's preferred direction. I like the thought of using Unity because it easily allows us to use Composite App Guidance.<br/><br/>I don't like MAF because of the complexity, and even though it solves the host/add-in versioning issues, I'll still have to solve the issue for messaging across WCF. I don't like MEF because of the total lack of versioning. <br/><br/>I don't think I need the DI or IoC capabilities of MEF or Unity, but it would provide a way for add-ins to easily use other add-ins' capabilities. However, since the add-ins are already going to be providing WCF services, they could find each other and communicate that way. I also understand that &quot;MEF is about extensibility&quot; but don't know how to evaluate how that statement applies here.<br/><br/>I've read several places talking about how MEF and MAF are complementary and could be used together, but I'm not sure I see how. Kent Boogaart's posting <a href="http://kentb.blogspot.com/2009/02/maf-and-mef.html"> http://kentb.blogspot.com/2009/02/maf-and-mef.html</a> uses MEF inside an add-in. I think what I need is the opposite - MAF wrapped around the interface exported by MEF. (I think I'd also like a MAF-like capability for WCF interfaces, but haven't fleshed out that part yet.)<br/><br/>Is there a decision tree, or other resource to help evaluate the options here? Any suggestions on which approach (or approaches) to pursue?<br/> Mon, 06 Apr 2009 23:41:12 Z2009-04-06T23:42:39Z