Сделал ли .NET необработанное программирование COM и DCOM избыточным? - PullRequest
4 голосов
/ 29 августа 2008

Сделало ли внедрение .net framework необработанным программированием в COM и DCOM?

(За исключением использования некоторых служб COM +, например, для управления транзакциями через пространство имен System.EnterpriseServices)

Ответы [ 5 ]

10 голосов
/ 29 августа 2008

Пока нет, потому что ОС все еще неуправляема.

Если MS наконец сделает то, о чем их лаборатории говорили в течение многих лет, и создаст полностью управляемую ОС, то это будет.

Эта ОС не будет обратно совместимой. Сначала им придется создавать управляемые версии Office, IE и т. Д. Им нужно будет создать виртуальную машину для запуска неуправляемых приложений.

Боль будет чем-то похожим на переход с Mac OS9 на OSX.

5 голосов
/ 29 августа 2008

COM была последней крупной технологией, которую MS фактически соблазнила. MS продолжает создавать новые API, которые зависят от COM; например, новый Media Foundation в Vista (своего рода преемник DirectShow, который также был основан на COM) - это COM API. Так же, как Direct3D10 (и я бы предположил, D3D11). Я не думаю, что он скоро исчезнет, ​​и для многих задач по программированию Windows это вовсе не избыточно.

2 голосов
/ 29 августа 2008

Пока нет, но я бы сказал, что в долгосрочной перспективе это нацелено на. Очевидно, что для более низких уровней всегда найдется место, но из того, что я понимаю в стратегии Microsoft, шаг к тому, чтобы заменить как можно больше на управляемый код.

1 голос
/ 15 сентября 2008

Полагаю, это зависит от того, что вы подразумеваете под «сырым». Я до сих пор нахожу необходимость выставлять COM API из библиотек классов .Net. Упрощает процесс перехода с определенных платформ на .Net, поскольку я могу заменить небольшие части через COM.

0 голосов
/ 29 августа 2008

.NET специально разработан для замены COM (и, следовательно, DLL Hell), поэтому, хотя приложения .NET по-прежнему могут получать доступ к компонентам COM, всем новым разработчикам рекомендуется перейти на .NET, за исключением случаев, когда у вас есть очень веские причины придерживаться COM.

...