# What's New in DS Server 3.0

> DS Server 3.0 to 3.5: .NET 6 without IIS, Windows service, authentication servers, SVG thumbnails, flattened form fields, vector rendering and footnotes.

- **Product:** DS Server
- **Section:** Documentation
- **Kind:** Topic
- **Path:** DS Server > What's New > What's New in DS Server 3.0
- **2295 words**
- **Web URL:** https://docs.textcontrol.com/ds-server/whats-new/0300/
- **LLMs URL:** https://docs.textcontrol.com/ds-server/whats-new/0300/llms.txt
- **LLMs-Full URL:** https://docs.textcontrol.com/ds-server/whats-new/0300/llms-full.txt

---

Version 3.0 moved DS Server from .NET Core 3.1 to .NET 6, so that it no longer depends on IIS and can run as a Windows service. Its eight updates up to 3.5.0 added distributed OAuth authentication, the vector rendering of the Document Editor, footnotes and new DocumentProcessing options, and followed TX Text Control from version 31.0 to 32.0 SP4. Each area below names the release a change came with.

### Releases

| Release | Date | Based on | .NET |
|---|---|---|---|
| 3.0.0 | October 7, 2022 | TX Text Control 31.0 | .NET 6 |
| 3.0.1 | November 2, 2022 |  | .NET 6 |
| 3.1.0 | November 23, 2022 |  | .NET 6 |
| 3.1.1 | April 12, 2023 | TX Text Control 31.0 SP2 | .NET 6 |
| 3.1.2 | August 25, 2023 | TX Text Control 31.0 SP3 | .NET 6 |
| 3.2.0 | November 8, 2023 | TX Text Control 32.0 | .NET 6 |
| 3.3.0 | February 14, 2024 | TX Text Control 32.0 SP2 | .NET 6 |
| 3.4.0 | June 21, 2024 | TX Text Control 32.0 SP3 | .NET 6 |
| 3.5.0 | September 19, 2024 | TX Text Control 32.0 SP4 | .NET 6 |

The dates are those of the release page on dsserver.io. It doesn't list 3.0.1 and 3.1.0, whose dates come from the change log.

### DS Server

- **.NET 6 (3.0.0).** DS Server is built with .NET 6 instead of .NET Core 3.1. It no longer needs IIS: you can start it as a .NET application, for example in a Docker container.
- **Windows service (3.0.0).** DS Server can be registered as a Windows service. The new file *hostsettings.json* sets the urls and ports it listens on, by default `http://*:5000` and `https://*:5001`. See [Manual Installation](https://docs.textcontrol.com/ds-server/installation/manual/llms-full.txt) and [Configuration](https://docs.textcontrol.com/ds-server/installation/configuration/llms-full.txt).
- **Distributed OAuth authentication (3.1.0).** A DS Server instance can register other DS Server instances as authentication servers and ask them whether an access token is valid. Several instances behind a load balancer then no longer need copies of all security profiles, and a token issued by one instance is accepted by the others. The admin portal has a new **Authentication** view to register and remove authentication servers. See [Authentication Servers](https://docs.textcontrol.com/ds-server/administration/authentication-servers/llms-full.txt) and [Multiple Servers with Load Balancing](https://docs.textcontrol.com/ds-server/installation/load-balancing/llms-full.txt).
- **New OAuth endpoints (3.1.0).** [POST oauth/validatetoken](https://docs.textcontrol.com/ds-server/reference/web-api/oauth/validatetoken/post/llms-full.txt) validates a token passed in the body, and [GET oauth/test](https://docs.textcontrol.com/ds-server/reference/web-api/oauth/test/get/llms-full.txt) tests whether a token from the authorization header or a cookie grants access. [POST authenticationserver/token](https://docs.textcontrol.com/ds-server/reference/web-api/authenticationserver/token/post/llms-full.txt) and [GET authenticationserver/authorize](https://docs.textcontrol.com/ds-server/reference/web-api/authenticationserver/authorize/get/llms-full.txt) request tokens without forwarding failed requests. The admin Web API manages the registered servers with [GET](https://docs.textcontrol.com/ds-server/reference/web-api/administration/authenticationservers/get/llms-full.txt) and [POST admin/authenticationservers](https://docs.textcontrol.com/ds-server/reference/web-api/administration/authenticationservers/post/llms-full.txt), [GET](https://docs.textcontrol.com/ds-server/reference/web-api/administration/authenticationservers-id/get/llms-full.txt) and [DELETE admin/authenticationservers/{id}](https://docs.textcontrol.com/ds-server/reference/web-api/administration/authenticationservers-id/delete/llms-full.txt) and [PATCH admin/authenticationservers/{id}/serverurl](https://docs.textcontrol.com/ds-server/reference/web-api/administration/authenticationservers-id-serverurl/patch/llms-full.txt).
- **Forwarded authorization (3.1.0).** When [POST oauth/token](https://docs.textcontrol.com/ds-server/reference/web-api/oauth/token/post/llms-full.txt) or [GET oauth/authorize](https://docs.textcontrol.com/ds-server/reference/web-api/oauth/authorize/get/llms-full.txt) cannot authorize a request, DS Server forwards it to the registered authentication servers.

### Document Processing

- **Thumbnails as SVG (3.2.0).** The [thumbnails endpoint](https://docs.textcontrol.com/ds-server/reference/web-api/documentprocessing/document-thumbnails/post/llms-full.txt) can return page images in SVG format. See [Thumbnails](https://docs.textcontrol.com/ds-server/document-processing/thumbnails/llms-full.txt).
- **Installed printers (3.3.0).** [GET documentprocessing/document/installedprinters](https://docs.textcontrol.com/ds-server/reference/web-api/documentprocessing/document-installedprinters/get/llms-full.txt) returns the printers installed on the server. The `formattingPrinter` property of the merge settings passed to [POST documentprocessing/document/merge](https://docs.textcontrol.com/ds-server/reference/web-api/documentprocessing/document-merge/post/llms-full.txt) names the printer whose text dimensions are used to format the document.
- **Flattened form fields (3.4.0).** The `flattenFormFields` query parameter of [POST documentprocessing/document/convert](https://docs.textcontrol.com/ds-server/reference/web-api/documentprocessing/document-convert/post/llms-full.txt) replaces form fields with their current content. See [Converting Documents](https://docs.textcontrol.com/ds-server/document-processing/converting/llms-full.txt).
- **Merge data as JSON (3.4.0).** The `MergeDataJson` property of `MergeBody` in the NuGet package [TXTextControl.DocumentServices.DocumentProcessing](https://docs.textcontrol.com/ds-server/reference/dotnet-api/txtextcontrol-documentservices-documentprocessing/llms-full.txt) takes the merge data as a JSON string instead of a collection of objects. See [Merging Templates](https://docs.textcontrol.com/ds-server/document-processing/mail-merge/llms-full.txt).
- **Fixes.** An invalid document could block the DocumentProcessing worker process (3.0.1), and [POST documentprocessing/document/merge](https://docs.textcontrol.com/ds-server/reference/web-api/documentprocessing/document-merge/post/llms-full.txt) could fail with the internal error `01-0307` in rare cases (3.4.0).

### Document Editor

- **Signature fields and form fields (3.0.0).** With TX Text Control 31.0, the editor inserts signature fields that Adobe Acrobat Reader recognizes, and it has dialog boxes for text form fields, check boxes, drop-down fields and date picker fields. The context menu can be customized.
- **Resource Kit (3.0.0).** The archive contains a Resource Kit for localizing the texts of the editor.
- **Form field events and validation (3.0.0).** The [JavaScript API](https://docs.textcontrol.com/ds-server/reference/javascript/llms-full.txt) has events for form fields and a property that turns form field validation on and off. Since 3.0.1, [addEventListener](https://docs.textcontrol.com/ds-server/reference/javascript/txtextcontrol/addeventlistener-method/llms-full.txt) accepts async event handler functions.
- **JavaScript API completed (3.1.2).** [Section.headersAndFooters](https://docs.textcontrol.com/ds-server/reference/javascript/section/headersandfooters-property/llms-full.txt), the `DocumentAccessPermissions` and `PageContent` enumerations and the `commentCreated` and `commentDeleted` events were added, and the comment input bubble can be opened from code.
- **Vector rendering (3.2.0).** Besides bitmaps, the text area can be rendered as SVG vector data, which speeds up the display over slow connections or with high latency.
- **HTML dialog boxes (3.2.0).** [showHtmlDialog](https://docs.textcontrol.com/ds-server/reference/javascript/txtextcontrol/showhtmldialog-method/llms-full.txt) opens the built-in dialog boxes from code.
- **Footnotes (3.2.0).** Footnotes can be inserted, edited and removed from the ribbon and from the JavaScript API.
- **Accessibility (3.2.0).** The ribbon has ARIA attributes and roles, so screen readers can announce its elements.
- **Faster start (3.2.0).** The ribbon loads over a second WebSocket connection, so the text area is ready sooner.
- **Fixes.** Printing ignored the formatting printer, and pasting changed font and size (3.0.0). A WebSocket connection failed when the application and DS Server used different protocols, HTTP and HTTPS, during local development; reconnecting after a lost connection failed in some cases, and the reconnect timeout could not be set (3.3.0). The editor loaded its JavaScript twice in React and Blazor strict mode, and scrolling and editing failed on some touch screens (3.4.0). Fast scrolling could drop the connection, and the ribbon changed formatting in the `ReadAndSelect` edit mode (3.5.0).

### Document Viewer

- **Changed types (3.0.0).** In the ASP.NET Core package, `SignatureSettings.SignatureBoxes` is of the interface type `ISignatureBoxCollection`, and `DocumentViewer.FrameBoxes` is an `IEnumerable<FrameBox>`. The classes `SignatureBox`, `SignatureBoxCollection` and `FrameBox` are new.
- **Asynchronous loading (3.0.0).** [loadDocument](https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/loaddocument-method/llms-full.txt) updates the content of the viewer instead of initializing it again, and returns a promise. The new `documentLoaded` event, handled with [addEventListener](https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/addeventlistener-method/llms-full.txt), reports when a document is loaded.
- **Formatting printer (3.0.0).** A property of the ASP.NET Core component and of the JavaScript API sets the formatting printer of the viewer.
- **Signatures (3.0.0).** The image of a signature is embedded in the signed document as SVG instead of PNG.
- **Comments and form fields (3.0.0).** The comments sidebar has a close button, and date form fields show a hint when the pointer rests on them.
- **Signature date (3.5.0).** The date shown in the signature box can be customized.
- **Fixes.** Signed signatures were missing from documents merged on submit (3.1.2). Signature boxes, initials and annotations were placed or scaled wrongly, form fields were not loaded, and zooming to the page width failed (3.3.0). Storing a signature overwrote metadata such as the signer name, some requests lost custom query parameters, and resource strings of the comments sidebar were missing (3.5.0).

### Upgrading

- **Install .NET 6.** Version 3.0 needs the .NET 6 runtimes instead of .NET Core 3.1.
- **Choose how to host DS Server.** You can keep IIS, start DS Server with `dotnet`, register it as a Windows service or run it in a container. Outside IIS, *hostsettings.json* sets its ports.
- **Update Document Viewer code.** Code that assigns `SignatureBoxes` or `FrameBoxes` in the ASP.NET Core package, or that expects `loadDocument` to reinitialize the viewer, needs changes.
- **Update the client packages.** Use the version 3.x NuGet and npm client packages, which support .NET 6 since 3.0.0.

[Upgrading](https://docs.textcontrol.com/ds-server/installation/upgrading/llms-full.txt) describes the steps of an upgrade.

### Related Pages

- [What's New in DS Server 3.0](https://www.dsserver.io/release/0300/): the release page on dsserver.io, covering 3.0 to 3.5.0.
- [DS Server 3.0 Released](https://www.textcontrol.com/blog/2022/10/07/ds-server-3-0-released/): the release article of 3.0.
- [DS Server: Announcing Distributed OAuth Authentication for Scalable Applications](https://www.textcontrol.com/blog/2022/11/28/ds-server-announcing-distributed-oauth-authentication-for-scalable-applications/): how authentication servers share the work.
- [DS Server 3.0: Deploying DS Server without IIS using Docker](https://www.textcontrol.com/blog/2022/10/08/ds-server-30-deploying-ds-server-without-iis-using-docker/): a Windows container built from the 3.0 archive.
- [Version 4.0](https://docs.textcontrol.com/ds-server/whats-new/0400/llms-full.txt): the next major version.
- [Version 2.0](https://docs.textcontrol.com/ds-server/whats-new/0200/llms-full.txt): the previous major version.

---

## Nearby

- **Previous:** [What's New in DS Server 4.0](https://docs.textcontrol.com/ds-server/whats-new/0400/llms-full.txt)
- **Next:** [What's New in DS Server 2.0](https://docs.textcontrol.com/ds-server/whats-new/0200/llms-full.txt)
