Instalace

Přidejte Doconut do svého projektu .NET Standard 2.1

Základní prohlížeč Doconut pro .NET Standard je distribuován jako jediný NuGet balíček, který se připojí k libovolné aplikaci ASP.NET Core. Volitelné pluginy používají samostatné balíčky. Tato stránka nainstaluje základní balíček, ověří, že váš hostitel jej může použít, a zaregistruje middleware – minimální požadavek před vaším prvním vykreslením.

Zkontrolujte nejprve hostitelský framework

Knihovna cílí na netstandard2.1. To je užší kontrakt než předchozí netstandard2.0 build, a je to první věc, kterou je třeba ověřit:

HostitelPodporováno
.NET Core 3.0 nebo novější, včetně .NET 5/6/7/8Ano
.NET Framework (jakákoli verze)Ne — netstandard2.1 nelze spotřebovat v .NET Framework

Pokud aplikace běží na .NET Framework, nejde o správný balíček. Použijte Doconut.NETFramework místo toho; od verze 26.9.0 vyžaduje .NET Framework 4.7.2. Referenční aplikace dodávané s tímto vydáním cílí na net8.0.

Instalace balíčku

bash
dotnet add package Doconut.NETStandard

Příkaz bez specifikace verze nainstaluje nejnovější stabilní vydání. Pro přesnou reprodukci aktuálního vydání 26.8.0 předávejte verzi jako samostatnou volbu:

bash
dotnet add package Doconut.NETStandard --version 26.8.0

Doconut.NETStandard je ID balíčku. Přípona .26.8.0 patří ke staženému souboru Doconut.NETStandard.26.8.0.nupkg a není součástí ID.

Číslo verze představuje generaci

Tohle je zde důležitější než název balíčku. Obě generace knihovny .NET Standard jsou publikovány pod stejným ID balíčku, a jen verze je od sebe odlišuje:

VerzeCílAPI
26.7.0 a nižšínetstandard2.0předchozí integrace
26.8.0 a vyššínetstandard2.1integrace zdokumentovaná zde

Neexistuje žádná kompatibilní vrstva ani balíček vedle sebe. Zvýšení verze je aktualizací a kompilátor okamžitě nahlásí rozdíly v API.

Nespoléhejte se při výběru dokumentace jen na název balíčku:

  • new Viewer(_cache, _accessor, …), UnSafeMode, synchronní OpenDocument(...), viewer.InitCache(), UseDoconutWebFarm a ručně zkopírované skripty prohlížeče identifikují předchozí integraci;
  • AddDoconut(), UseDoconutResources(), injektovaný Viewer a OpenDocumentAsync(...) identifikují aktuální integraci zdokumentovanou zde.

Přeložená předchozí příručka nastavení je stále k dispozici. Použijte průvodce migrací k přechodu mezi generacemi; aktualizace balíčku automaticky nepřevádí spouštění, životnost prohlížeče ani zdroje prohlížeče.

Zaregistrujte Doconut

AddDoconut() je jediný vstupní bod registrace – existuje jediný přetížení a propojuje službu Viewer, licenční službu a renderovací infrastrukturu do kontejneru DI.

Dvě volání middleware dokončují nastavení a jejich pořadí je důležité: UseDoconutResources() musí běžet před UseDoconut(). UseDoconut() je terminální middleware, takže pokud jej zavoláte jako první, každá žádost o prostředek /doconut-res nedojde k obsluze zdrojů a vrátí 404. Propojení se session je také vyžadováno – výchozí zabezpečení dokumentů Doconut ověřuje každou žádost o stránku proti ASP.NET session stavu.

csharp
builder.Services.AddDoconut(options =>
{
    options.LicensePath = "Doconut.Viewer.lic";
});
builder.Services.AddDistributedMemoryCache(); // stav session potřebuje cache (MVC/Razor Pages ji již přidávají)
builder.Services.AddSession(); // zabezpečení dokumentů Doconut využívá ASP.NET session stav

app.UseSession();          // zavolejte UseSession() před UseDoconut()
app.UseDoconutResources(); // musí být registrováno před UseDoconut()
app.UseDoconut();

Jmenné prostory

Konfigurační typy již nejsou rozprostřeny napříč čtyřmi jmennými prostory. V tomto vydání téměř vše žije v kořenovém jmenném prostoru Doconut:

csharp
using Doconut;                       // Viewer, DoconutOptions, DocOptions, všechny konfigurace formátů
using Doconut.Middleware;            // AddDoconut, UseDoconut, UseDoconutResources
using Doconut.Clouds;                // konfigurace cloudu a sdílení souborů
using Doconut.Configs.Conversion;    // ConversionTarget

Názvy typů se samy nezměnily — PdfConfig, WordConfig, ExcelConfig, CssConfig, ScriptConfig a ostatní jsou stále k dispozici. Pokud přesouváte existující aplikaci, většina souborů potřebuje jen dvě odstraněné řádky using; viz průvodce migrací.

Všechny možnosti

DoconutOptions přijímá následující nastavitelná vlastnosti. Každá je volitelná — výchozí hodnoty níže platí, pokud je vlastnost ponechána nenastavená.

VlastnostVýchozíPopis
ShowDoconutInfofalseKdyž je true, požadavek bez token vrátí banner s verzí místo 404. Užitečné jako rychlá kontrola; v produkci vypněte.
UnsafeModefalseKdyž je true, přeskočí kontrolu zabezpečení ASP.NET session u požadavků na stránky. V produkci vypněte. Všimněte si pravopisu – předchozí knihovna to nazývala UnSafeMode.
MiddlewarePath"/doconut"Koordinační hodnota pro koncový bod stránky-obrázku. Je validována, ale sama o sobě nevytváří větev; udržujte ji v souladu se skutečným mapováním UseDoconut() a BasePath klienta.
ResourcesPath"/doconut-res"Odkud jsou poskytovány vložené zdroje JS/CSS/obrázky.
LicensePath"" (prázdný řetězec)Cesta k licenčnímu souboru. Prázdná hodnota znamená přechod na další zdroj, poté automatické hledání.
LicenseContent"" (prázdný řetězec)Surový obsah licence – z proměnné prostředí, správce tajemství nebo databáze.
LicenseStreamnullLicence jako stream, načtená jednou při spuštění.
ResetLicensefalseRezervovaný příznak kompatibility. Licence je načtena během AddDoconut(); po výměně licence restartujte aplikaci.

Priorita licence, když je nastaveno více zdrojů: LicenseStream má přednost před LicenseContent, který má přednost před LicensePath, který má přednost před automatickým hledáním – viz Nastavení licence.

csharp
builder.Services.AddDoconut(options =>
{
    options.LicensePath     = "Doconut.Viewer.lic";
    options.MiddlewarePath  = "/doconut";     // koordinujte s mapováním aplikace a BasePath klienta
    options.ResourcesPath   = "/doconut-res"; // odkud jsou poskytovány JS/CSS/obrázky prohlížeče
    options.UnsafeMode      = false;          // zachovejte zabezpečení session
    options.ShowDoconutInfo = false;
});

Další kroky

Byla tato stránka užitečná?