Migrace

Přechod na Doconut v .NET 8

Na této stránce jsou dvě migrace: aktualizace verze balíčku v .NET 8 a přesunutí integrace ze staršího frameworku Doconut (.NET 6, .NET Standard 2.0, .NET Framework 4.7) na .NET 8 API.

Aktualizace verze balíčku

  1. Aktualizujte balíček (a všechny plugin balíčky — udržujte verze sladěné):
bash
dotnet add package Doconut.NET8
dotnet add package Doconut.NET8.Dicom
  1. Zkontrolujte okno licence. Licence pokrývá rozsah verzí. Pokud nová verze spadá mimo tento rozsah, otevření je zablokovánoOpenDocumentAsync vyhodí LicenseException (rychlé selhání); nepřepne se na vodoznak a IsVersionValid se nastaví na false. Obnovte, nahraďte soubor .lic a restartujte aplikaci, aby AddDoconut() načetl novou licenci.
  2. Přestavte a nechte NuGet obnovit deklarované verze závislostí — nepřipínajte znovu System.Text.Json ani System.Drawing.Common (viz Řešení problémů pro přesné chyby, které způsobí downgrade).
  3. Proveďte rychlý test (smoke-test) jednoho dokumentu pro každou rodinu formátů, kterou 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í. Mapování:

Oblast.NET 6 / Standard 2.0.NET 8
SetupConstruct Viewer(cache, httpContextAccessor, licensePath)builder.Services.AddDoconut(options => …) + injektujte Viewer
LicenseStatic Viewer.DoconutLicense(path) + SetLicensePlugin(...) per pluginoptions.LicensePath / LicenseContent / LicenseStream — jedna licence, automatické vyhledávání souborů pluginů
Openviewer.OpenDocument(...) (synchrónní)await viewer.OpenDocumentAsync(...)
Closeviewer.CloseDocument() nebo viewer.Dispose()viewer.CloseDocument(token)Viewer není IDisposable
LifetimeViewer implementuje IDisposable, drží otevřený dokumentViewer je bezstavový; relace žijí v cache pod tokeny
Converterviewer.Converter propertyThe Converter plugin (AddPlugin<ConverterPlugin>()) + the DocumentConverter service
Config classesDoconut.Configs.View.* namespacesAll in the Doconut namespace
MiddlewareManual handler wiringapp.UseDoconutResources() + app.UseDoconut()

Typický před/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ích prvků middlewarem + DI službou:

  • Ovládací prvek <doconut:DocViewer runat=server> zmizí — stránka hostuje dvojici widgetů div a váš endpoint vrací token (Quick Start ukazuje vzor).
  • Statické metody licence → zdroje licence DoconutOptions.
  • Synchrónní OpenDocumentawait OpenDocumentAsync.
  • Viewer.ReferenceScripts() / ReferenceCss() existují v obou světech — verze .NET 8 přijímají objekty ScriptConfig/CssConfig a jsou řízeny licencí.
  • Vlastnosti ovládacího prvku (ShowThumbs, PageZoom, FixedZoom, …) → stejné názvy v ViewerConfig / JS možnostech docViewer.
  • Exportní metody vracející byte[] → asynchronní API pro export anotací na Viewer.

Plánujte to jako přepsání hostovací vrstvy kolem nezměněného konceptu: otevřít → token → widget.

Poznámka k pojmenování

Ve všech frameworkech je třída Viewer — pokud najdete DocumentViewer ve starých úryvcích nebo článcích třetích stran, tento typ v SDK nikdy neexistoval.

Kontrolní seznam migrace

  1. Vyměňte balíčky; sladte verze plugin balíčků.
  2. Přesuňte nastavení licence do AddDoconut(); odstraňte statické volání licence.
  3. Učinte volání otevření asynchronními; nahraďte Dispose/CloseDocument bez parametrů voláním CloseDocument(token).
  4. Nahraďte použití viewer.Converter registrací pluginu Converter + DocumentConverter.
  5. Znovu otestujte bezpečnostní cestu: AddSession()/UseSession() jsou nyní vyžadovány s výchozí bezpečností.

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