Lo que Danielg dijo es bueno. Agregaría:
Si mira los videos sobre System.Addins, están hablando claramente de proyectos muy grandes. Habla de un equipo administrando la aplicación de host, otro equipo administrando cada complemento, y un tercero equipo administrando el contrato y la canalización. Basado en eso, creo que System.Addins es claramente para aplicaciones más grandes. Estoy pensando en aplicaciones como los sistemas ERP como SAP (tal vez no tan grande, pero entiendes la idea). Si vio esos videos, puede decir que la cantidad de trabajo para usar System.Addins es muy grande. Funcionaría bien si tuviera muchas empresas programando complementos de terceros para su sistema y no puede romper ninguno de esos contratos adicionales bajo pena de muerte.
Por otro lado, MEF parece compartir más similitudes con el esquema de complemento de SharpDevelop, la arquitectura del complemento Eclipse o Mono.Addins. Es mucho más fácil de entender que System.Addins y creo que es mucho más flexible. Lo que pierde es que no obtiene el aislamiento de AppDomain ni los contratos de versiones fuertes listos para usar con MEF. Los puntos fuertes de MEF son que puede estructurar toda su aplicación como una composición de partes, por lo que puede enviar su producto en diferentes configuraciones para diferentes clientes, y si el cliente compra una nueva característica, simplemente deja caer la parte para esa característica en su directorio de instalación y la aplicación lo ve y lo ejecuta. También facilita las pruebas. Puede instanciar el objeto que desea probar y alimentarlo con objetos simulados para todas sus dependencias, pero cuando se ejecuta como una aplicación compuesta, el proceso de composición engancha automáticamente todos los objetos reales.
El punto más importante que me gustaría mencionar es que a pesar de que System.Addins ya está en el marco, no veo mucha evidencia de gente usándolo, pero MEF está sentado allí en CodePlex supuestamente para ser incluido en .NET 4, y las personas ya están empezando a construir muchas aplicaciones con él (incluido yo mismo). Creo que eso te dice algo sobre los dos marcos.
una pequeña cosa: recuerde que "dominio de aplicación separado" NO lo ayudará si su complemento se bloquea en una capa nativa, para eso todavía necesitará procesos de trabajo. MAF ayuda un poco con la creación de ellos, pero la recuperación dinámica de ese bloqueo sigue siendo bastante difícil (pero posible) – quetzalcoatl
@Ian: por favor, vuelva a leer mi comentario :) He escrito exactamente eso, y MÁS: MAF realmente lo permite, pero tiene que levántese después del accidente por su cuenta. – quetzalcoatl
@DanielG> tiene un alto precio que pagar para poder acceder a aplicaciones <¿Por qué es esto? ¿Qué tan "pesado"? –