Interop Office (automação do lado do servidor)
Definição
Controlando o Microsoft Office por código para abrir ou converter documentos. Funciona em um desktop e é explicitamente desencorajado em um servidor, tanto pela Microsoft quanto por todos que já o tentaram.
O Office foi criado para um único usuário interativo em um teclado. Em um servidor que lida com solicitações concorrentes, essa suposição falha de maneiras específicas e familiares: processos ficam em deadlock esperando uns pelos outros, diálogos modais aparecem onde ninguém pode descartá-los, e instâncias permanecem vivas além de suas solicitações até que a máquina fique sem memória.
A posição de licenciamento é igualmente complicada. Um servidor que renderiza documentos em nome de muitos usuários precisa de licenças de desktop que nunca foram destinadas a esse uso, o que gera uma conversa com a equipe de compras que raramente termina bem.
A alternativa é a renderização nativa: uma biblioteca que analisa o formato diretamente e produz a saída no próprio processo. Nenhum aplicativo secundário, nenhuma camada de automação, nenhum processo órfão para ser recolhido em uma agenda.
No Doconut
Doconut renderiza nativamente. Não há instalação do Office, nem automação COM e nem assembly de interop em nenhum ponto do pipeline — o que também torna a implantação de contêineres simples.
Termos relacionados
Conversão de documentos
Transformar um arquivo de um formato para outro e produzir um novo arquivo, ao contrário da renderização, que produz uma representação visual temporária e nenhum novo artefato.
Renderização de documento no lado do servidor
Conversão de um documento em imagens de página no servidor, de modo que o navegador exibe páginas renderizadas em vez de analisar o próprio arquivo original.
SDK de visualizador de documentos
Uma biblioteca que você incorpora em sua própria aplicação para que ela possa exibir documentos, ao contrário de um serviço hospedado ao qual você envia documentos. O SDK roda dentro do seu processo; o serviço roda dentro do processo de outra pessoa.