Instalação

Adicione Doconut ao seu projeto .NET 8

O visualizador base Doconut para .NET 8 é distribuído como um único pacote NuGet que se integra a qualquer aplicação ASP.NET Core. Plugins opcionais usam pacotes separados. Esta página instala o pacote base e registra o middleware — o mínimo necessário antes da sua primeira renderização.

Instalar o pacote

bash
dotnet add package Doconut.NET8

O comando sem versão instala a versão estável mais recente. Para reproduzir exatamente a versão atual 26.7.0, passe a versão como uma opção separada:

bash
dotnet add package Doconut.NET8 --version 26.7.0

Doconut.NET8 é o ID do pacote. O sufixo .26.7.0 pertence ao nome do arquivo baixado Doconut.NET8.26.7.0.nupkg e não faz parte do ID.

Registrar Doconut

AddDoconut() é o único ponto de entrada de registro — há uma única sobrecarga, e ele conecta o serviço Viewer, o serviço de licença e a infraestrutura de renderização ao contêiner DI.

Duas chamadas de middleware completam a configuração, e sua ordem importa: UseDoconutResources() deve ser executado antes de UseDoconut(). UseDoconut() é middleware terminal, portanto chamá‑lo primeiro faz com que toda requisição a um recurso /doconut-res nunca alcance o manipulador de recursos e resulte em 404. A conexão da sessão também é necessária — a segurança padrão de documentos Doconut valida cada requisição de página contra o estado de sessão ASP.NET.

csharp
builder.Services.AddDoconut(options =>
{
    options.LicensePath = "Doconut.Viewer.lic";
});
builder.Services.AddDistributedMemoryCache(); // estado de sessão precisa de um cache (MVC/Razor Pages já adiciona um)
builder.Services.AddSession(); // a segurança de documentos Doconut depende do estado de sessão ASP.NET

app.UseSession();          // chame UseSession() antes de UseDoconut()
app.UseDoconutResources(); // deve ser registrado antes de UseDoconut()
app.UseDoconut();

Todas as opções

DoconutOptions aceita as seguintes propriedades configuráveis. Cada uma é opcional — os valores padrão abaixo se aplicam quando a propriedade não é definida.

PropriedadePadrãoDescrição
ShowDoconutInfofalseQuando true, uma requisição sem token retorna um banner de versão ao invés de um 404. Útil como verificação rápida; desative em produção.
UnsafeModefalseQuando true, ignora a verificação de segurança da sessão ASP.NET nas requisições de página. Desative em produção.
MiddlewarePath"/doconut"Valor de coordenação para o endpoint de página‑imagem. É validado, mas não monta um ramo por si só; mantenha alinhado com o mapeamento real de UseDoconut() e o BasePath do cliente.
ResourcesPath"/doconut-res"Onde os recursos JS/CSS/imagens incorporados são servidos.
LicensePath"" (string vazia)Caminho para o arquivo de licença. Vazio significa passar para a próxima fonte, então busca automática.
LicenseContent"" (string vazia)Conteúdo bruto da licença — de uma variável de ambiente, de um gerenciador de segredos ou de um banco de dados.
LicenseStreamnullLicença como stream, lida uma vez na inicialização.
ResetLicensefalseBandeira de compatibilidade reservada. Os serviços .NET 8 atuais leem a licença durante AddDoconut(); reinicie a aplicação após substituir uma licença.

A precedência de licenças quando mais de uma fonte está definida: LicenseStream supera LicenseContent, que supera LicensePath, que supera a busca automática — veja Configuração de Licença.

csharp
builder.Services.AddDoconut(options =>
{
    options.LicensePath     = "Doconut.Viewer.lic";
    options.MiddlewarePath  = "/doconut";     // coordene com o mapeamento da aplicação e o BasePath do cliente
    options.ResourcesPath   = "/doconut-res"; // onde os JS/CSS/imagens do visualizador são servidos
    options.UnsafeMode      = false;          // mantenha a segurança da sessão ativada
    options.ShowDoconutInfo = false;
});

Próximos passos

Esta página foi útil?