W jakim stopniu, jeśli w ogóle, MEF jest zamiennikiem PRISM?MEF: zamiennik PRISM?
Odpowiedz
Edytuj: Nie czytaj tej odpowiedzi. To jest żenująco źle. Nie udaje mi się. Przeczytaj Glenn Block poniżej.
To nie jest oczywiste, ale to samo pytanie: Managed Extensibility Framework (MEF) vs. Composite UI Application Block (CAB)
konsensus w duplikatu postu jest to, że MEF i Prism zapewnić ten sam podstawowy zestaw funkcjonalności w różny sposób, chyba że Prism zapewnia Event Aggregator, który jest środkiem pub-sub komunikacji pomiędzy komponentami aplikacji. Możesz jednak użyć tego z MEF. To naprawdę zależy od preferencji.
Spójrz na to Sparkling Client podcast na MEF i pryzmat.
Dzisiaj powiedziałbym, że Pryzmat i MEF wzajemnie się uzupełniają. Podobnie jak Pryzmat i jedność. Prism wprowadza zestaw określonych usług, takich jak RegionManager, DelegateCommand i EventAggregator, które pomagają w tworzeniu złożonych aplikacji. Z drugiej strony MEF jest bardziej ogólnym mechanizmem składu dla rozszerzalności aplikacji i frameworków, niezależnie od tego, czy są to kompozyty, czy nie. Kluczem odróżniającym MEF jest jego wykrywalność, co oznacza, że może on dynamicznie wychodzić i odkrywać wszystkie dostępne części.
Być może zainteresuje Cię sprawdzenie projektu MEF contrib (mefcontrib.codeplex.com), który zawiera warstwę integracyjną dla Unity i MEF. Z tym rozszerzeniem Unity zarządza MEF za kulisami, więc nie walczysz z dwoma contianerami. Zaletą jest to, że pozwala używać Unity dla ogólnych Pocos i MEF do odkrywania rozszerzeń. W związku z tym, że Prism jest obecnie zbudowany na Unity, możesz go użyć do wzmocnienia MEF. Aby użyć projektu contrib, będziesz musiał wprowadzić drobne zmiany w swoim Unity Bootstrapper, ale powinno to być dość trywialne.
Istnieje na pewno pewne pokrywanie się. Miejsce, w którym jest najbardziej widoczne, dotyczy modułów. Pryzmat wykorzystuje moduł w celu odkrycia. W MEF każdy komponent może być częścią i może być dynamicznie wykrywany. Oznacza to, że przy MEF masz modułowość od góry do dołu, a w przypadku Pryzmata moduły są bardziej ziarnistymi jednostkami. Aplikacje złożone to zdecydowanie obszar, którym zajmujemy się w czasie MEF. Z czasem jest całkiem prawdopodobne, że coraz więcej osób będzie wspierać tworzenie takich aplikacji w samym programie MEF. Pracujemy z p & p, aby upewnić się, że tak się stanie, jest płynne przejście.
Należy jednak pamiętać, że [wsparcie dla MEF w Prism dobiega końca] (https://github.com/PrismLibrary/Prism): "MEF jest obsługiwany przez WPF w celu zapewnienia zgodności z poprzednimi wersjami. Nie zostanie dodany do Windows 10 UWP ani Xamarin Forms. " – Informagic
MEF nigdy nie zastąpi pryzmat
MEF jest to manager.its wtrysku zależność nie pojemnik wtrysk zależność.
MEF umożliwia przypisywanie eksportu i importu w sposób niedokładnie przy użyciu atrybutów.
Prism z MEF daje możliwość automatycznego wykrywania bibliotek dll oraz możliwość dodawania i usuwania wtyczek poprzez dodawanie lub usuwanie bibliotek dll. Gdzie jako pryzmat daje agregator zdarzeń, menedżer regionu, lokalizator usług.
Można użyć pryzmatu bez MEF. Istnieje wiele innych opcji, takich jak ninject, jedność i inne kontenery DI.
Możesz użyć MEF z pryzmatem do budowania rozszerzalnych aplikacji opartych na wtyczkach.
- 1. Modułowa aplikacja używająca MVVM, Prism, WPF i MEF - Przykłady/Poradniki
- 2. PRISM + MEF + MVVM - Nie wiesz, od czego zacząć?
- 3. Co powinienem użyć w Prism-MEF lub Unity?
- 4. Czy można użyć MEF RegistrationBuilder do utworzenia modułu PRISM ModuleExport?
- 5. Migrate Prism 4 do 6 Prism - CompositePresentationEvent
- 6. Element menu dla każdego modułu, z dynamicznie ładowaną treścią modułu przy pomocy Prism lub MEF
- 7. MEF vs. PRISM. Jaka jest różnica? Co będzie obsługiwane w przyszłości?
- 8. Prism/MVVM (MEF/WPF): Ekspozycja nawigacji [menu na przykład] z modułów
- 9. Czy istnieje zamiennik dla MEF w .NET Core (lub ASP.NET 5)?
- 10. Notepad ++ zamiennik
- 11. MEF: DirectoryPartCatalog
- 12. Prism: Udostępnianie danych między ViewModels załadowanymi do regionu?
- 13. Czy istnieje zamiennik C++ 11 (lub boost) zamiennik dla InterlockedExchangePointer?
- 14. Czy jest zamiennik mdbtools?
- 15. Zamiennik przypadku w Vim
- 16. zamiennik php dla safe_mode
- 17. C++ zamiennik std :: array
- 18. Uniwersalny zamiennik createPopup()?
- 19. Zamiennik przestarzałego DefaultHttpClient
- 20. Zamiennik dla przestarzałego `WrappingNeoServerBootstrapper`
- 21. przechwytywania ciąg zamiennik regex
- 22. Continuum jako zamiennik Jenkins?
- 23. Python 3 zamiennik PyFile_AsFile
- 24. Zamiennik dla SimpleCursorAdapter?
- 25. Zamiennik mostu JDBC-ODBC
- 26. Korzystanie z Prism z Ninject
- 27. WPF i Prism Zobacz Nakładka
- 28. Prism 4 ILoggerFacade dla Log4Net?
- 29. Podstawowa funkcja programu Prism (.NET)
- 30. Co zawiera MEF 2?
Ugh ... Wiem, że to było rok temu i wiele się nauczyłem, ale ta odpowiedź jest naprawdę zła. Posta Glenn Block jest bardziej precyzyjna.Widać to najwyraźniej w tym, że Prism V4 ma opcję * użycia * MEF dla różnych form IoC i kompozycji. Nie mogę usunąć ani nawet opublikować mojego posta. –
To dziwne czytanie i powiedzenie "kto jest tym głupcem? ... oh" –
+1 za czystą uczciwość. Chociaż twoja odpowiedź nie jest "najbardziej poprawna", daje wgląd w przeciwieństwie do odpowiedzi Glenna. Linie odpowiedzialności/funkcjonalności pomiędzy MEF/Prism/Unity/MAF są dość nieostre (i nie zasługujesz na awans). – Doug