Dlaczego interop COM jest lepszy niż P / Invoke w .NET?
W naszym projekcie używamy partii kodu Delphi przez COM w naszej aplikacji asp.net.
W ten sposób: legacy delphi dll => delphi COM wrapper => .Net interop => asp.net (mvc)
Mamy pewne problemy dotyczące naruszeń dostępu, rozładowywania bibliotek dll, itd ... Teraz przeportowałem niektóre, aby używać starszej biblioteki dll bezpośrednio przez kod P / Invoke.
Kiedy patrzę na zasoby dotyczące COM i P / Invoke, ludzie prawie zawsze radzą używać COM. Dlaczego? Czy P / Invoke nie ma następujących korzyści:
sprawdzony kod zawsze użyje poprawnych plików dll zamiast ostatniego zarejestrowanego COMWiele wersji może działać równolegle na serwerach (na przykład: DEV, TEST i QA)Nie ma więcej kłopotów z rejestracją COMZnacznie szybciej niż komunikacja COM (artykuły, które czytam, wskazują na 30% wzrost prędkości)