일반적으로 구성 요소 공급 업체는 COM 인터페이스를 선호합니다. 그 이유는 더 많은 런타임 환경에서 제품을 사용할 수 있기 때문입니다. C++, Delphi 또는 스크립팅 언어와 같은 언어를 포함합니다. 그리고 C#, .NET 프레임 워크는 COM interop에 대한 지원이 매우 뛰어났습니다. 은 기본 C# 인터페이스처럼처럼 보입니다. COM을 아직 사용하지 않고 그냥 모르는 지 확인하십시오. 배포 지침에서 힌트를 얻을 수 있습니다. 일반적으로 COM 구성 요소에는 매니페스트 나 설치 관리자가 필요합니다.
COM은 종종 오랜 시간, 10 년 이상 된 제품에 대한 광고 인터페이스입니다. 일반적인 "그리드 솔버 (grid solver)"유형의 제품 일 가능성이 있습니다. 10 년 동안 새로운 종과 호각이 추가되지 않아 안정적인 제품입니다. 이것은주의해야 할 사항이며, 일반적으로 공급 업체가 프로그래머가 제품을 더 이상 사용하지 않기 때문에 그러한 제품에 대한 지원을 얻는 데 어려움이 있습니다. 제품 지원에 의존하는 핵심 라이브러리를 교체 할 때 올바른 지원을받는 것이 항상 중요합니다.
perf 문제가있을 때 지원이 특히 중요합니다. 문제를 해결하기 위해 스스로 할 수있는 일이별로 없으며, 벤더와 협력하여 문제를 해결할 수 있기를 정말로 원합니다.
COM은 원본이 API 계층 오버 헤드 인 경우 perf 문제에 대한 확실한 해결책이 아닙니다. 어떤 은 일 수 있습니다. 솔버가 별도의 프로세스 인 경우 이러한 interop는 비용이 많이 듭니다. Taskmgr.exe, Processes 탭에서 쉽게 볼 수있는 것, 앱을 실행할 때 또 다른 EXE 팝업이 나타납니다.그럼에도 불구하고 COM에는 필연적으로 관리되는 코드에서 관리되지 않는 코드로 이동하는 썽크가 포함됩니다. 일반적으로 매우 빠르지 만 API 호출이 매우 세분화되어 있으면 더할 수 있습니다.
전반적인 COM 성능은 최고입니다. 성능이 과도한 호출, 프로세스 간 통신 왕복 등과 같은 잘못된 디자인 요소를 숨기거나 수정하는 데 충분하지만 그 의미는 아닙니다. –