Подтвердить что ты не робот

В чем разница между компонентами .NET и компонентами COM

В чем разница между .NET-компонентами и COM-компонентами, иногда мы используем компоненты .NET для включения в наши проекты, и иногда мы включаем ссылку COM. В чем заключается идея? Спасибо заранее.

4b9b3361

Ответ 1

Компоненты .NET - это управляемый код (удаление памяти выполняется для вас)

COM является стандартом интерфейса для программных компонентов. Компоненты COM - неуправляемый код (удаление памяти выполняется с использованием подсчета ссылок).

Из здесь:

Как связаны COM и .NET?

COM и .NET дополняют друг друга технологии. Общий язык .NET Runtime обеспечивает двунаправленную, прозрачная интеграция с COM. Эта означает, что приложения COM и .NET и компоненты могут использовать функциональность из каждой системы. Это защищает ваши существующие инвестиции в COM приложений, позволяя вам использовать .NET в контролируемых темп. COM и .NET могут Результаты..NET Framework предоставляет разработчики со значительным числом преимуществ, в том числе более надежных, основанная на доказательствах модель безопасности, автоматическое управление памятью и Поддержка веб-сервисов. Для новых Microsoft рекомендует .NET. как предпочтительная технология из-за его мощная управляемая среда исполнения окружающей среды и услуг.

Ответ 2

Компоненты .NET выполняются в среде CLR, тогда как COM-компоненты являются, по существу, родными DLL файлами Windows.

Компоненты .NET также предоставляют намного больше метаданных, чем COM-компоненты. Этот редизайн был частично выполнен, чтобы сделать компоненты более совместимыми. В частности,.NET-компоненты не делают предположений, специфичных для платформы, относительно компоновки данных и вызовов.

Смотрите Don Box.

Ответ 3

Компоненты COM - это неуправляемые компоненты кода С++, предназначенные для повторного использования программного обеспечения на двоичном уровне. Компоненты NET аналогичны: 1) они могут быть созданы на языках CLR, в то время как COM-компоненты могут быть созданы только с С++ 2) Они предназначены для работы под управляемой средой выполнения. Я думаю, что это существенные различия.

ИЗМЕНИТЬ:

С++ - это самый "естественный" язык в COM, но COM-компоненты могут быть созданы на МНОГИХ языках. Спасибо за комментарии людей.