COM больше не популярен или устарел?И если так, то почему? - PullRequest
0 голосов
/ 01 октября 2018

Я изучаю COM и после прочтения Essential COM я нахожу эту идею блестящей и все еще применимой к широкому спектру сценариев, где важна совместимость между поставщиками и обратная совместимость. Однако я не могу найти много ресурсов в Интернетео COM, и многие люди до сих пор не говорят об этом.

Является ли эта технология COM устаревшей?И если да, то какие из решений более модные, чем COM, решают проблемы совместимости компиляции и обратной совместимости между поставщиками на двоичном уровне?

1 Ответ

0 голосов
/ 01 октября 2018

COM не так популярен в .NET, потому что Global Assembly Cache (GAC) и внутренние манифесты, встроенные в сборки .net, решают ту же задачу, что и регистрация COM.

Вот полезная статья , которая может помочь объяснить это, вот фрагмент из нее

.NET предоставляет совершенно новый подход к созданию и развертыванию компонентов, которые также известны каксборок.При использовании COM разработчик должен зарегистрировать компонент на сервере, то есть его информация должна была быть обновлена ​​в системном реестре.Цель состоит в том, чтобы хранить информацию о компонентах в центральном месте, чтобы COM + мог найти соответствующий компонент.

В сборках .NET файл сборки содержит все метаданные, необходимые в специальных разделах, называемых манифестами.[...] Поскольку информация о компоненте хранится в манифестах, разработчику не нужно регистрировать компонент на сервере, и несколько версий одного и того же компонента могут безопасно сосуществовать вместе на одном компьютере.

В статье на самом деле не упоминается GAC, но любое взаимодействие между поставщиками или двоичная обратная совместимость, которую вы бы сделали с COM, может быть обработано в .NET производителем, зарегистрировавшим сборку в GAC и вашей программе, использующей это.сборка.

Единственный случай, когда .NET использует COM, - это взаимодействие с неуправляемым кодом, который изначально был написан для COM.

Однако многие поставщики сегодня даже не используют GAC, что онидля этого нужно отправить сборку, которую программист может добавить в проект и развернуть с помощью exe, обычно используя NuGet для ее распространения.

...