Migrace
Aktualizace na Doconut v .NET 8
Na této stránce najdete dva typy migrací: aktualizaci verze balíčku v .NET 8 a přesun integrace ze staršího frameworku Doconut (.NET 6, .NET Standard 2.0, .NET Framework 4.7) na API .NET 8.
Aktualizace verze balíčku
- Aktualizujte balíček (a všechny plugin balíčky — udržujte verze v souladu):
bash
dotnet add package Doconut.NET8
dotnet add package Doconut.NET8.Dicom- Zkontrolujte okno licence. Licence pokrývá rozsah verzí. Pokud nová verze spadá mimo tento rozsah, otevření je zablokováno —
OpenDocumentAsyncvyhodíLicenseException(fail‑fast); nepřepne se na vodoznak aIsVersionValidvrátífalse. Obnovte licenci, nahraďte soubor.lica restartujte aplikaci, abyAddDoconut()načetla novou licenci. - Překompilujte a nechte NuGet obnovit deklarované verze závislostí — nepřipínajte znovu
System.Text.JsonaniSystem.Drawing.Common(viz Troubleshooting pro konkrétní chyby, které způsobí downgrade). - Proveďte rychlý test jednoho dokumentu z každé rodiny formátů, které používáte.
Migrace z .NET 6 / .NET Standard 2.0
.NET 8 API je přepracováno kolem DI a asynchronního programování. Přehled mapování:
| Oblast | .NET 6 / Standard 2.0 | .NET 8 |
|---|---|---|
| Nastavení | Construct Viewer(cache, httpContextAccessor, licensePath) | builder.Services.AddDoconut(options => …) + inject Viewer |
| Licence | Static Viewer.DoconutLicense(path) + SetLicensePlugin(...) per plugin | options.LicensePath / LicenseContent / LicenseStream — jedna licence, automatické vyhledání souborů pluginů |
| Otevření | viewer.OpenDocument(...) (synchronní) | await viewer.OpenDocumentAsync(...) |
| Zavření | viewer.CloseDocument() nebo viewer.Dispose() | viewer.CloseDocument(token) — Viewer není IDisposable |
| Životní cyklus | Viewer implementuje IDisposable, drží otevřený dokument | Viewer je bezstavový; relace žijí v cache pod tokeny |
| Konvertor | viewer.Converter property | Plugin Konvertoru (AddPlugin<ConverterPlugin>()) + služba DocumentConverter |
| Konfigurační třídy | Doconut.Configs.View.* namespaces | Vše v namespace Doconut |
| Middleware | Manuální zapojení handleru | app.UseDoconutResources() + app.UseDoconut() |
Typický příklad před a po:
text
// .NET 6 (old API, shown for contrast — not valid on .NET 8)
using var viewer = new Viewer(cache, httpContextAccessor, "wwwroot/Doconut.Viewer.lic");
var token = viewer.OpenDocument(path, new PdfConfig { AllowSearch = true }, new DocOptions());csharp
// .NET 8 — Viewer injected, license configured once in AddDoconut()
var token = await viewer.OpenDocumentAsync(path, new PdfConfig { AllowSearch = true });Migrace z .NET Framework 4.7 (Web Forms)
Viewer ve verzi 4.7 je WebControl; .NET 8 nahrazuje model ovládacího prvku middlewarem + DI službou:
- Ovládací prvek
<doconut:DocViewer runat=server>zmizí — stránka hostuje dvojicidivwidgetu a váš endpoint vrací token (Quick Start ukazuje vzor). - Statické metody licence → zdroje licence v
DoconutOptions. - Synchronous
OpenDocument→await OpenDocumentAsync. Viewer.ReferenceScripts()/ReferenceCss()existují v obou světech — verze pro .NET 8 přijímají objektyScriptConfig/CssConfiga jsou podmíněny licencí.- Vlastnosti ovládacího prvku (
ShowThumbs,PageZoom,FixedZoom, …) → stejné názvy vViewerConfig/ JS možnostechdocViewer. - Exportní metody vracející
byte[]→ asynchronní export‑anotace API naViewer.
Plánujte tuto část jako přepis vrstvy hostování kolem nezměněného konceptu: otevřít → token → widget.
Poznámka k pojmenování
Ve všech frameworkech je třída Viewer — pokud narazíte na DocumentViewer ve starých úryvcích nebo článcích třetích stran, tento typ v SDK nikdy neexistoval.
Kontrolní seznam migrace
- Vyměňte balíčky; zarovnejte verze plugin balíčků.
- Přesuňte nastavení licence do
AddDoconut(); odstraňte statické volání licence. - Přepište volání otevření na asynchronní; nahraďte
Dispose/parametrem‑bezCloseDocumentmetodouCloseDocument(token). - Nahraďte používání
viewer.Converterregistrací pluginu Konvertoru +DocumentConverter. - Znovu otestujte bezpečnostní cestu:
AddSession()/UseSession()jsou nyní povinné s výchozí bezpečností.
Byla tato stránka užitečná?