Их несколько:
Производительность - это немного быстрее, так как вам не нужно проходить автоматизацию сообщений (маршалинг и демаршаллинг)
Изоляция - если много разных приложений используют библиотеку, то у каждого будет своя копия. Этот момент наиболее важен при работе с различиями между MTA (Многопоточное подразделение) и STA (Однопотоковое подразделение)
IN-PROC Server (который на самом деле находится вне процессов, вне процесса вызывающего) используется всеми вызывающими абонентами (это отличный способ получить дешевый IPC / RPC)
Хорошо, я редактирую, добавив еще несколько определений и еще немного ссылок:
Наконец, в главе 2 обсуждается« Почему библиотечные приложения? », (что отличается от вашего вопроса, почему не просто старый добрый COM?) Его аргументы в основном указывают на те же причины использования COM-объекта, 1. У каждого приложения есть собственный экземпляр. 2. Загрузить в процесс, отличный от DLLhost.exe. 3. Намного меньше накладных расходов. 4. Простое развертывание общих объектов.
Итак, суть в том, что, если вы не распределены и не являетесь транзакционным по своей природе, может не быть реального преимущества использования COM + над COM. Но если вы напишете приложение COM + и развернете его как приложение БИБЛИОТЕКИ, оно будет вести себя немного больше как компонент COM.
Надеюсь, что это поможет.