В чем разница между .NET-компонентами и COM-компонентами, иногда мы используем компоненты .NET для включения в наши проекты, и иногда мы включаем ссылку COM. В чем заключается идея? Спасибо заранее.
В чем разница между компонентами .NET и компонентами COM
Ответ 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-компоненты могут быть созданы на МНОГИХ языках. Спасибо за комментарии людей.
Ответ 4
Дополнительная информация об этой теме