[ПРИМЕЧАНИЕ: я работаю над MonoDevelop, который использует Mono.Addins, но на прошлой неделе я подробно обсуждал различия между MEF и Mono.Addins с Гленном Блоком из команды MEF]
MEF основан на составлении кода, хотя лежащие в его основе абстракции очень гибкие. Напротив, Mono.Addins основан на дереве метаданных, где вы можете вставлять данные/метаданные/код в обширную схему вашего определения, поэтому расширения могут добавлять данные/метаданные, а также код.
Mono.Addins предоставляет вам готовую систему управления/упаковки/репозитория/обновления надстроек. Для MEF на этом этапе вам придется создать свой собственный.
У MEF немного более низкий барьер для входа, и гораздо больше работы по дизайну было потрачено на его удобство использования и лежащие в его основе абстракции. Кроме того, он является частью .NET 4, поэтому у него будет гораздо большее сообщество пользователей, разрабатывающих с ним или для него.
На данный момент, если вам нужно подключить данные/метаданные, а также код, и вам нужна готовая система упаковки, я бы рекомендовал Mono.Addins, в противном случае я бы рекомендовал MEF. В будущем функции Mono.Addins, вероятно, будут реализованы в MEF, поэтому, вероятно, будет путь перехода к MEF.
person
Mikayla Hutchinson
schedule
02.11.2009