2009-08-25 3 views

답변

7

COM은 로컬 (객체 - 객체)과 원격 (컴퓨터 - 기계, 프로세스 - 프로세스) 통신을 크게 투명하게 제공합니다. 약간의주의 만 기울이면 코드는 인터넷을 통해 동일한 메모리 공간에서 호스팅되는 객체로 행복하게 작업 할 수 있습니다.

이 추상화에는 문제가 있었지만 (서로 다른 경우의 다이나믹이 매우 다름) 상호 운용성에 이의가있는 바이너리 형식의 사용이 효과적이었습니다. 그리고 매우 잘 작동합니다 (Visual Basic을 사용할 수있는 모든 비즈니스 응용 프로그램을 고려하십시오).

+3

좋은 표준이 아니더라도 표준은 좋습니다. –

+0

잘 명시된 (여러분 모두) – Hardryv

6

가장 인기있는 운영 체제 중 하나의 백본 인 제품을 호출하는 것은 어렵고, 응용 프로그램이 유용하지 않은 경우 대다수를 호출하는 것은 어렵습니다.

+1

컴퓨터가 사용자에게 도움이되도록 허용하여 유용했습니다. – Richard

0

COM은 많은 프로젝트에서 .NET으로 대체되었지만 COM은 여전히 ​​낮은 수준의 MFC/ATL C++로 작성 될 수 있으며 사람들은 COM을 사용하여 모든 CPU주기가 카운트되는 고성능 응용 프로그램을 작성합니다. , 하드웨어 인터페이싱 등.

+0

사실이 아닙니다. .NET 런타임 (CLI) *은 COM 구성 요소 *입니다. 컴파일러에서 .exe 어셈블리에 추가하는 기본 시작 코드가 숨기지 만, .NET 자체를 호스팅하려면 COM과 통화해야합니다. – Richard

+0

COM과 CLI가 다른 경우, COM으로 사용하도록 설정 한 경우에만 .net 어셈블리를 COM으로 사용할 수 있습니다. 예 COM과 CLI에는 다리가 있지만 사용자에게 투명하기 때문에 사람들은 동일하다고 생각합니다. COM 자체는 CLI만큼 강력했으며 다중 언어와 호환되었지만 런타임이 C 기반이었고 너무 많은 코딩이 필요했기 때문에 대량 개발에는 도움이되지 않았습니다. –

3

실제로, 수년 이래 널리 사용되고 있습니다. 서로 통합하고 상호 작용하는 많은 응용 프로그램은 COM 기술에 의존합니다. NET 라이브러리도 COM으로 등록한다고 생각합니다.

총 난장판에 관해서는, 나는 여기에서 동의하지 않을 것이다. 그것은 꽤 복잡하지만 엉망이 아닙니다. 자연스럽게, 당신은 OO, 인터페이스, 포인터, 저수준 프로그래밍, 좋은 C++ 프로그래머를 만드는 두뇌 모델을 잘 이해할 필요가 있습니다.

+1

나는 충분히 복잡하다고 생각하는 사람은 혼란스럽고, 이해하지 못하고 그것을 이해하는 데 약간의 시간을 할애하지 않는다. –

+0

Visual Basic과 Delphi를 사용했지만, COM에 대한 컴파일러 지원으로 인해 사용자가 COM 객체를 쉽게 사용할 수 있다고 들었습니다. – ChrisW

0

COM은 여전히 ​​GIS 응용 프로그램에서 널리 사용됩니다. ArcMap (ESRI) 및 Spatial Objects 용 프로그래밍 API와 같은 일부 애플리케이션의 중추입니다.

모든 사람이 말한 것처럼 복잡하지만 몇 가지 핵심 개념을 파악하면 쉽게 개발할 수 있습니다.

.NET은 COM 개체를 지원합니다.

0

COM은 의도적으로 .NET과 기본 코드 (예 : C++)를 연결하는 최선의 방법이되었습니다.

0

COM이라는 이름 또는 실제로 OLE는 항상 내게 비웃었습니다. COM 객체는 상속받을 수 없었습니다. 객체 기술로 보지 않았습니다. 패키징 기술이라고 생각했습니다 ....하지만 M $는 "Object"라는 단어를 사용하여 그 이상으로 보이게합니다.

NeXT의 Portable Distributed Objects와 같이 동시에 사용할 수 있었던 다른 기술은 원시적 인 것처럼 보였습니다.

1

COM에 빛나는 유스 케이스는 무엇입니까?

다른 언어 사이의 상호 운용성 (예를 들어, C++ 및 Visual Basic) 다른 프로세스 사이

상호 운용성 (예를 들어, OLE, Word 문서에 Excel 스프레드 시트를 내장) 서로 다른 공급 업체 사이

상호 운용성 (예를 들어,Windows 탐색기에 플러그 인하는 셸 확장을 작성하려면 탐색기에서 호출 할 확장 프로그램에 대해 COM 인터페이스를 선언하기 때문에 COM을 사용하여 셸 확장을 작성합니다.

+0

+1 관리되지 않는 C++과 .NET 사이의 interop을 잊지 마십시오. 각 측은 원하는 작업에 따라 COM 서버가 될 수 있습니다. – sharptooth

-1

대부분의 문제는 COM을 실제로 이해하지 못하는 개발자가 있기 때문에 발생합니다. 그러나 COM은 Microsoft가 다른 유사한 플랫폼, 즉 .Net을 재 설계해야한다는 것을 이해하기가 어렵습니다.

관련 문제