Instalacja

Dodaj Doconut do swojego projektu .NET Standard 2.1

Podstawowy przegląd Doconut dla .NET Standard jest dostarczany jako pojedynczy pakiet NuGet, który można podłączyć do dowolnej aplikacji ASP.NET Core. Opcjonalne wtyczki korzystają z oddzielnych pakietów. Ta strona instaluję podstawowy pakiet, potwierdza, że Twój host może go używać, i rejestruje middleware — minimalny wymóg przed pierwszym renderowaniem.

Sprawdź najpierw framework hosta

Biblioteka celuje w netstandard2.1. To jest węższy kontrakt niż poprzednia wersja netstandard2.0 i jest to pierwsza rzecz do zweryfikowania:

HostObsługiwane
.NET Core 3.0 lub nowszy, w tym .NET 5/6/7/8Tak
.NET Framework (dowolna wersja)Nie — netstandard2.1 nie może być używany przez .NET Framework

Jeśli aplikacja działa na .NET Framework, to nie jest właściwy pakiet. Użyj zamiast tego Doconut.NETFramework; od wersji 26.9.0 wymaga .NET Framework 4.7.2. Aplikacje referencyjne dostarczane z tym wydaniem celują w net8.0.

Zainstaluj pakiet

bash
dotnet add package Doconut.NETStandard

Polecenie bez wersji instaluję najnowsze stabilne wydanie. Aby dokładnie odtworzyć bieżące wydanie 26.8.0, przekaż wersję jako oddzielną opcję:

bash
dotnet add package Doconut.NETStandard --version 26.8.0

Doconut.NETStandard jest identyfikatorem pakietu. Przyrostek .26.8.0 należy do pobranego pliku Doconut.NETStandard.26.8.0.nupkg i nie jest częścią ID.

Numer wersji określa generację

Ma to tutaj większe znaczenie niż nazwa pakietu. Obie generacje biblioteki .NET Standard publikowane są pod tym samym ID pakietu, a jedynie wersja je odróżnia:

WersjaDocelowyAPI
26.7.0 i niższenetstandard2.0poprzednia integracja
26.8.0 i wyższenetstandard2.1integracja opisana tutaj

Nie istnieje shim kompatybilności ani pakiet równoległy. Zwiększenie wersji jest aktualizacją, a kompilator natychmiast zgłosi różnice w API.

Nie wybieraj dokumentacji wyłącznie na podstawie nazwy pakietu:

  • new Viewer(_cache, _accessor, …), UnSafeMode, synchroniczne OpenDocument(...), viewer.InitCache(), UseDoconutWebFarm oraz ręcznie skopiowane skrypty przeglądarki identyfikują poprzednią integrację;
  • AddDoconut(), UseDoconutResources(), wstrzyknięty Viewer i OpenDocumentAsync(...) identyfikują obecną integrację opisaną tutaj.

Przetłumaczony poprzedni podręcznik konfiguracji nadal jest dostępny. Użyj przewodnika migracji, aby zmienić generacje; aktualizacja pakietu nie konwertuje automatycznie startu, czasu życia przeglądarki ani zasobów przeglądarki.

Zarejestruj Doconut

AddDoconut() jest jedynym punktem wejścia rejestracji — istnieje tylko jedna przeciążona metoda i ona podłącza usługę Viewer, usługę licencji oraz infrastrukturę renderowania do kontenera DI.

Dwa wywołania middleware kończą konfigurację i ich kolejność ma znaczenie: UseDoconutResources() musi być wywołane przed UseDoconut(). UseDoconut() jest middleware terminalnym, więc wywołanie go jako pierwszego powoduje, że każde żądanie zasobu /doconut-res nie dociera do obsługi zasobów i kończy się 404. Połączenie sesji jest również wymagane — domyślne zabezpieczenie dokumentów Doconut weryfikuje każde żądanie strony względem stanu sesji ASP.NET.

csharp
builder.Services.AddDoconut(options =>
{
    options.LicensePath = "Doconut.Viewer.lic";
});
builder.Services.AddDistributedMemoryCache(); // stan sesji wymaga pamięci podręcznej (MVC/Razor Pages już dodają jedną)
builder.Services.AddSession(); // zabezpieczenie dokumentów Doconut opiera się na stanie sesji ASP.NET

app.UseSession();          // wywołaj UseSession() przed UseDoconut()
app.UseDoconutResources(); // musi być zarejestrowane przed UseDoconut()
app.UseDoconut();

Przestrzenie nazw

Typy konfiguracyjne nie są już rozproszone po czterech przestrzeniach nazw. W tym wydaniu prawie wszystko znajduje się w głównej przestrzeni nazw Doconut:

csharp
using Doconut;                       // Viewer, DoconutOptions, DocOptions, all format configs
using Doconut.Middleware;            // AddDoconut, UseDoconut, UseDoconutResources
using Doconut.Clouds;                // cloud and file-share configs
using Doconut.Configs.Conversion;    // ConversionTarget

Same nazwy typów się nie zmieniły — PdfConfig, WordConfig, ExcelConfig, CssConfig, ScriptConfig i pozostałe nadal istnieją. Jeśli przenosisz istniejącą aplikację, większość plików wymaga jedynie usunięcia dwóch linii using; zobacz przewodnik migracji.

Wszystkie opcje

DoconutOptions przyjmuje następujące konfigurowalne właściwości. Każda z nich jest opcjonalna — poniższe wartości domyślne mają zastosowanie, gdy właściwość nie zostanie ustawiona.

WłaściwośćDomyślnaOpis
ShowDoconutInfofalseGdy true, żądanie bez token zwraca baner wersji zamiast 404. Przydatne jako szybka kontrola; wyłącz w środowisku produkcyjnym.
UnsafeModefalseGdy true, pomija sprawdzenie bezpieczeństwa sesji ASP.NET przy żądaniach stron. Wyłącz w produkcji. Zwróć uwagę na pisownię — poprzednia biblioteka nazywała to UnSafeMode.
MiddlewarePath"/doconut"Wartość koordynująca punkt końcowy obrazu strony. Jest walidowana, ale nie montuje własnej gałęzi; utrzymaj ją zgodną z rzeczywistym mapowaniem UseDoconut() i BasePath klienta.
ResourcesPath"/doconut-res"Miejsce, z którego serwowane są osadzone zasoby JS/CSS/obrazy.
LicensePath"" (pusty ciąg)Ścieżka do pliku licencji. Pusty ciąg oznacza przejście do kolejnego źródła, a następnie automatyczne wyszukiwanie.
LicenseContent"" (pusty ciąg)Surowa zawartość licencji — z zmiennej środowiskowej, menedżera sekretów lub bazy danych.
LicenseStreamnullLicencja jako strumień, odczytywana raz przy starcie.
ResetLicensefalseZarezerwowany znacznik kompatybilności. Licencja jest odczytywana podczas AddDoconut(); po wymianie licencji uruchom aplikację ponownie.

Priorytet licencji, gdy ustawiono więcej niż jedno źródło: LicenseStream ma pierwszeństwo przed LicenseContent, które ma przed LicensePath, a to przed automatycznym wyszukiwaniem — zobacz Ustawienia licencji.

csharp
builder.Services.AddDoconut(options =>
{
    options.LicensePath     = "Doconut.Viewer.lic";
    options.MiddlewarePath  = "/doconut";     // koordynuj z mapowaniem aplikacji i BasePath klienta
    options.ResourcesPath   = "/doconut-res"; // skąd serwowane są JS/CSS/obrazy przeglądarki
    options.UnsafeMode      = false;          // utrzymaj zabezpieczenie sesji
    options.ShowDoconutInfo = false;
});

Kolejne kroki

Czy ta strona była pomocna?