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
- 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- Zkontrolujte okno licence. Licence pokrývá rozsah verzí. Pokud nová verze spadá mimo tento rozsah, otevření je zablokováno —
OpenDocumentAsyncvyhodíLicenseException(rychlé selhání); nepřepne se na vodoznak aIsVersionValidse nastaví nafalse. Obnovte, nahraďte soubor.lica restartujte aplikaci, abyAddDoconut()načetl novou licenci. - Přestavte a nechte NuGet obnovit deklarované verze závislostí — nepřipínajte znovu
System.Text.JsonaniSystem.Drawing.Common(viz Řešení problémů pro přesné chyby, které způsobí downgrade). - 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 |
|---|---|---|
| Setup | Construct Viewer(cache, httpContextAccessor, licensePath) | builder.Services.AddDoconut(options => …) + injektujte Viewer |
| License | Static Viewer.DoconutLicense(path) + SetLicensePlugin(...) per plugin | options.LicensePath / LicenseContent / LicenseStream — jedna licence, automatické vyhledávání souborů pluginů |
| Open | viewer.OpenDocument(...) (synchrónní) | await viewer.OpenDocumentAsync(...) |
| Close | viewer.CloseDocument() nebo viewer.Dispose() | viewer.CloseDocument(token) — Viewer není IDisposable |
| Lifetime | Viewer implementuje IDisposable, drží otevřený dokument | Viewer je bezstavový; relace žijí v cache pod tokeny |
| Converter | viewer.Converter property | The Converter plugin (AddPlugin<ConverterPlugin>()) + the DocumentConverter service |
| Config classes | Doconut.Configs.View.* namespaces | All in the Doconut namespace |
| Middleware | Manual handler wiring | app.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ůdiva váš endpoint vrací token (Quick Start ukazuje vzor). - Statické metody licence → zdroje licence
DoconutOptions. - Synchrónní
OpenDocument→await OpenDocumentAsync. Viewer.ReferenceScripts()/ReferenceCss()existují v obou světech — verze .NET 8 přijímají objektyScriptConfig/CssConfiga jsou řízeny licencí.- Vlastnosti ovládacího prvku (
ShowThumbs,PageZoom,FixedZoom, …) → stejné názvy vViewerConfig/ JS možnostechdocViewer. - Exportní metody vracející
byte[]→ asynchronní API pro export anotací naViewer.
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
- Vyměňte balíčky; sladte verze plugin balíčků.
- Přesuňte nastavení licence do
AddDoconut(); odstraňte statické volání licence. - Učinte volání otevření asynchronními; nahraďte
Dispose/CloseDocumentbez parametrů volánímCloseDocument(token). - Nahraďte použití
viewer.Converterregistrací pluginu Converter +DocumentConverter. - Znovu otestujte bezpečnostní cestu:
AddSession()/UseSession()jsou nyní vyžadovány s výchozí bezpečností.
Byla tato stránka užitečná?