Updated Doconut for .NET 6

Updated Doconut viewer for .NET 6

Keep your .NET 6 target while moving to DI, middleware, async sessions, and optional Distributed deployment.

Doconut document viewer displaying a presentation inside an ASP.NET Core application
The current hosting model with the familiar Doconut viewer experience70+ supported formats
76
verified file extensions
19
format families
1
Windows deployment target
0
external processing services

A current Doconut architecture for .NET 6 apps

The updated package replaces manual viewer construction and copied resources with the DI, middleware, and async model documented today.

Updated .NET 6 integrationDoconut.NET6
builder.Services.AddDoconut(options =>
{
    options.LicensePath = "Doconut.Viewer.lic";
});

app.UseDoconutResources();
app.UseDoconut();

var token = await viewer.OpenDocumentAsync(filePath);

Dependency injection

Register Doconut with AddDoconut() and inject Viewer into the endpoint that opens each document.

Asynchronous document sessions

Replace synchronous opening with OpenDocumentAsync() and return an opaque token to the viewer.

Middleware-owned resources

Stop maintaining copied viewer assets and serve the current bundle through Doconut middleware.

Optional Distributed mode

Adopt shared artifacts and protected tickets when the application needs multiple serving nodes.

70+ formats without changing your target

76 verified file extensions in the updated package.

The current .NET 6 package exposes 76 viewable extensions across 19 families through the same unified browser viewer.

Office and PDF

PDF, DOC, DOCX, RTF, ODT, XLS, XLSX, CSV, PPT, PPTX, ODP

CAD and diagrams

DWG, DXF, DGN, VSD, VSDX, VSSX, VSTX, MPP, MPX

Email and medical

EML, EMLX, MSG, DCM, IMA, XPS, EPUB, MHT, MHTML

Images and web

JPG, PNG, TIFF, SVG, WEBP, AVIF, PSD, HTML, TXT, and more

See all 76 extensions

Classic .NET 6 and updated .NET 6 are different integrations

The package name can be the same. These code signatures show which Doconut generation an application is using.

Hosting

Classic Doconut .NET 6

MapWhen() routes requests through DocImage.axd.

Updated Doconut .NET 6

UseDoconutResources() and UseDoconut() register the current middleware pipeline.

Viewer lifecycle

Classic Doconut .NET 6

Application code constructs Viewer manually with cache, HTTP context, and a license path.

Updated Doconut .NET 6

AddDoconut() registers Viewer and application endpoints receive it through dependency injection.

Document opening

Classic Doconut .NET 6

OpenDocument() performs the classic synchronous call.

Updated Doconut .NET 6

OpenDocumentAsync() creates the current asynchronous document session.

Browser resources

Classic Doconut .NET 6

The application copies and maintains viewer JavaScript files.

Updated Doconut .NET 6

Middleware serves embedded scripts, styles, images, and viewer resources.

Scaling

Classic Doconut .NET 6

The application remains coupled to the original hosting and session model.

Updated Doconut .NET 6

Normal mode stays simple, while Distributed can be enabled for a load-balanced web farm.

Modernize first. Scale when the application needs it.

The updated .NET 6 integration supports the same opt-in Distributed design for shared rendering artifacts and protected viewer requests on Windows.

Distributed mode is optional. It does not add complexity to the default single-instance integration.

No sticky sessions

Approved nodes validate shared tickets instead of depending on one application instance.

Protected access

Tickets can bind document access to the current browser and authenticated user.

Background publishing

Prioritize the first page while optional publishing continues with later document artifacts.

Controlled retention

Use readiness markers, revocation, and retention rules for predictable shared storage.

Migration questions

How do I know whether my application uses classic Doconut .NET 6?

Look for DocImage.axd, MapWhen(), manual new Viewer construction, OpenDocument(), or application-managed viewer JavaScript files.

Does the updated package support the same formats?

Yes. The audited catalog contains 76 viewable file extensions across 19 format families.

Do I need to migrate to Distributed mode?

No. The standard single-instance viewer remains the default. Distributed is an explicit option for load-balanced deployments.

Can existing Doconut .NET 6 applications adopt the updated architecture?

Yes. Use the migration guide to map classic hosting, Viewer construction, document opening, resources, plugins, and scaling to the current integration.

Move your .NET 6 integration to the current Doconut model

Evaluate the updated package, follow the verified migration map, and test your existing document workflows.