Installazione

Aggiungi Doconut al tuo progetto .NET Standard 2.1

Il visualizzatore base Doconut per .NET Standard viene fornito come un unico pacchetto NuGet che si integra in qualsiasi applicazione ASP.NET Core. I plugin opzionali usano pacchetti separati. Questa pagina installa il pacchetto base, verifica che il tuo host possa consumarlo e registra il middleware — il minimo necessario prima del tuo primo rendering.

Verifica prima il framework host

La libreria mira a netstandard2.1. È un contratto più ristretto rispetto al precedente build netstandard2.0, ed è la prima cosa da verificare:

HostSupportato
.NET Core 3.0 o successivo, incluso .NET 5/6/7/8Sì
.NET Framework (qualsiasi versione)No — netstandard2.1 non può essere consumato da .NET Framework

Se l'applicazione gira su .NET Framework, questo non è il pacchetto corretto. Usa Doconut.NETFramework invece; dalla versione 26.9.0 richiede .NET Framework 4.7.2. Le applicazioni di riferimento fornite con questa release mirano a net8.0.

Installa il pacchetto

bash
dotnet add package Doconut.NETStandard

Il comando senza versione installa l'ultima release stabile. Per riprodurre esattamente la release 26.8.0 corrente, passa la versione come opzione separata:

bash
dotnet add package Doconut.NETStandard --version 26.8.0

Doconut.NETStandard è l'ID del pacchetto. Il suffisso .26.8.0 appartiene al nome file scaricato Doconut.NETStandard.26.8.0.nupkg e non fa parte dell'ID.

Il numero di versione è la generazione

Questo è più importante qui del nome del pacchetto. Entrambe le generazioni della libreria .NET Standard pubblicano sotto lo stesso ID di pacchetto, e solo la versione le distingue:

VersioneObiettivoAPI
26.7.0 e precedentinetstandard2.0l'integrazione precedente
26.8.0 e successivenetstandard2.1l'integrazione documentata qui

Non esiste uno shim di compatibilità né un pacchetto side‑by‑side. Incrementare la versione è l'aggiornamento, e il compilatore segnalerà immediatamente le differenze API.

Non scegliere la documentazione basandoti solo sul nome del pacchetto:

  • new Viewer(_cache, _accessor, …), UnSafeMode, OpenDocument(...) sincrono, viewer.InitCache(), UseDoconutWebFarm e gli script del visualizzatore copiati manualmente identificano l'integrazione precedente;
  • AddDoconut(), UseDoconutResources(), un Viewer iniettato e OpenDocumentAsync(...) identificano l'integrazione corrente documentata qui.

Il manuale di configurazione precedente tradotto è ancora disponibile. Usa la guida alla migrazione per cambiare generazione; un aggiornamento del pacchetto non converte automaticamente avvio, durata del visualizzatore o risorse del browser.

Registra Doconut

AddDoconut() è l'unico punto di ingresso per la registrazione — c'è un unico overload, e collega il servizio Viewer, il servizio licenza e l'infrastruttura di rendering al contenitore DI.

Due chiamate middleware completano la configurazione, e il loro ordine è importante: UseDoconutResources() deve essere eseguito prima di UseDoconut(). UseDoconut() è middleware terminale, quindi chiamarlo per primo fa sì che ogni richiesta a una risorsa /doconut-res non raggiunga mai il gestore delle risorse e ritorni 404. È anche necessario il wiring della sessione — la sicurezza predefinita dei documenti Doconut valida ogni richiesta di pagina contro lo stato di sessione ASP.NET.

csharp
builder.Services.AddDoconut(options =>
{
    options.LicensePath = "Doconut.Viewer.lic";
});
builder.Services.AddDistributedMemoryCache(); // lo stato di sessione necessita di una cache (MVC/Razor Pages ne aggiungono già una)
builder.Services.AddSession(); // la sicurezza dei documenti Doconut si basa sullo stato di sessione ASP.NET

app.UseSession();          // chiama UseSession() prima di UseDoconut()
app.UseDoconutResources(); // deve essere registrato prima di UseDoconut()
app.UseDoconut();

Spazi dei nomi

I tipi di configurazione non sono più sparsi in quattro spazi dei nomi. In questa release quasi tutto vive nello spazio dei nomi radice Doconut:

csharp
using Doconut;                       // Viewer, DoconutOptions, DocOptions, tutte le configurazioni di formato
using Doconut.Middleware;            // AddDoconut, UseDoconut, UseDoconutResources
using Doconut.Clouds;                // configurazioni cloud e condivisione file
using Doconut.Configs.Conversion;    // ConversionTarget

I nomi dei tipi stessi non sono cambiati — PdfConfig, WordConfig, ExcelConfig, CssConfig, ScriptConfig e gli altri sono ancora presenti. Se stai spostando un'applicazione esistente, la maggior parte dei file necessita solo di due righe using rimosse; vedi la guida alla migrazione.

Tutte le opzioni

DoconutOptions accetta le seguenti proprietà impostabili. Ognuna è opzionale — i valori predefiniti qui sotto si applicano quando una proprietà rimane non impostata.

ProprietàPredefinitoDescrizione
ShowDoconutInfofalseQuando true, una richiesta senza token restituisce un banner di versione invece di un 404. Utile come verifica rapida; disattivare in produzione.
UnsafeModefalseQuando true, salta il controllo di sicurezza della sessione ASP.NET nelle richieste di pagina. Disattivare in produzione. Nota l'ortografia — la libreria precedente chiamava questa UnSafeMode.
MiddlewarePath"/doconut"Valore di coordinamento per l'endpoint pagina-immagine. Viene validato, ma non monta un ramo da solo; mantienilo allineato con la mappatura reale di UseDoconut() e il BasePath del client.
ResourcesPath"/doconut-res"Da dove vengono servite le risorse JS/CSS/immagine incorporate.
LicensePath"" (stringa vuota)Percorso al file di licenza. Vuoto significa passare alla fonte successiva, poi ricerca automatica.
LicenseContent"" (stringa vuota)Contenuto grezzo della licenza — da una variabile d'ambiente, un gestore di segreti o un database.
LicenseStreamnullLicenza come stream, letta una volta all'avvio.
ResetLicensefalseFlag di compatibilità riservato. La licenza viene letta durante AddDoconut(); riavvia l'app dopo aver sostituito una licenza.

Priorità della licenza quando è impostata più di una fonte: LicenseStream prevale su LicenseContent, che prevale su LicensePath, che prevale sulla ricerca automatica — vedi Configurazione Licenza.

csharp
builder.Services.AddDoconut(options =>
{
    options.LicensePath     = "Doconut.Viewer.lic";
    options.MiddlewarePath  = "/doconut";     // coordinare con la mappatura dell'app e il BasePath del client
    options.ResourcesPath   = "/doconut-res"; // da dove vengono servite le JS/CSS/immagini del visualizzatore
    options.UnsafeMode      = false;          // mantenere attiva la sicurezza della sessione
    options.ShowDoconutInfo = false;
});

Passi successivi

Questa pagina è stata utile?