MEF pozwala zaprojektować system, który można rozszerzyć.
Z mojego doświadczenia można projektować interfejsy, tworzyć biblioteki, które mają implementacje tych interfejsów, i ładować je dynamicznie w środowisku wykonawczym. Można również określić sposób ładowania tych rozszerzeń - w tej samej domenie aplikacji lub w nowym jeden, itp. Możesz wskazać go w katalogu i powiedzieć, aby uzyskać wszystkie implementacje określonego interfejsu i załadować te, które będą używane w aplikacji.
Tak więc, ponieważ twoja aplikacja nie musi wiedzieć wszystkie jego funkcje z góry i można je ładować dynamicznie, można powiedzieć, że jest "rozszerzalny".
Alternatywnie istnieje również MAF, Managed Add-In Framework lub System.AddIn przestrzeń nazw w .NET. Ma to pewne pokrywanie się, ale jest bardziej ukierunkowane na model Add-In lub Plug-in. Posiada funkcje zarządzania wersjami i obsługi zgodności wstecznej między hostami i dodatkami, z których każdy ma różne wersje interfejsu.
Aby rozpocząć korzystanie z MEF, myślę, że najlepszym miejscem jest chyba tutaj: http://www.codeplex.com/MEF
Jest tam wiele informacji na temat rozpoczynania pracy, dokumentacji, a nawet forum ...
AFAIK zawsze działa w MEF obecna domena aplikacji i nie zapewnia izolacji domeny aplikacji. Tylko MAF to robi. –