Недостатки
Серверы обработки обеспечивают преимущество скорости и размера обработчика объектов с возможностью редактирования локального сервера. Поэтому почему вы когда-либо решили реализовать приложение OLE в качестве локального сервера, а не внутрипроцессного сервера? Существует несколько причин:
- Безопасность. Только локальный сервер имеет адресное пространство, изолированное от этого клиента. Сервер внутри процесса разделяет адресное пространство и контекст процесса клиента и, следовательно, может быть менее надежным в случае сбоя или вредоносного программирования.
- Granularity. Локальный сервер может размещать несколько экземпляров своего объекта во многих разных клиентах, совместное использование состояния сервера между объектами в нескольких клиентах таким образом, что было бы трудно или невозможно при реализации как внутрипроцессного сервера, который является просто библиотекой DLL, загруженной в каждый клиент.
- Совместимости. Если вы решили реализовать внутрипроцессный сервер, вы откажите совместимость с OLE 1, которая не поддерживает такие серверы. Это не будет соображением для многих разработчиков, но если это так, то это критически важно.
- Неспособность поддерживать ссылки. Сервер внутрипроцессного процесса не может служить источником ссылок. Так как библиотека DLL сама по себе не может запускаться, она не может создать объект файла, с которым нужно связаться.
Несмотря на эти недостатки, сервер в процессе может быть отличным выбором для его скорости и размера , если он соответствует всем вашим другим требованиям.
См. также