# Components

> ServerTextControl, MailMerge, the Document Editor and the Document Viewer compared: what each one does, where it runs, its NuGet packages and how they combine.

- **Product:** TX Text Control .NET Server
- **Section:** Documentation
- **Kind:** Topic
- **Path:** TX Text Control .NET Server > Overview > Components
- **1183 words**
- **Web URL:** https://docs.textcontrol.com/tx-text-control-dotnet-server/overview/components/
- **LLMs URL:** https://docs.textcontrol.com/tx-text-control-dotnet-server/overview/components/llms.txt
- **LLMs-Full URL:** https://docs.textcontrol.com/tx-text-control-dotnet-server/overview/components/llms-full.txt

---

Four main components make up TX Text Control .NET Server, and all of them share one document engine. Each component has a page of its own that describes what it is, what you and your users do with it, which packages it needs and where its tutorials and API reference are. Consult them when you plan an application and want to know which parts you need.

Two of the components work in your .NET code and have no user interface: `ServerTextControl` and `MailMerge`. The other two, the Document Editor and the Document Viewer, are user interfaces that run in the browser. They need an ASP.NET Core backend that runs TX Text Control, because the documents are processed on the server.

### The Components at a Glance

| Component | What it does | Where it runs | Main NuGet packages |
|---|---|---|---|
| [ServerTextControl](https://docs.textcontrol.com/tx-text-control-dotnet-server/overview/components/servertextcontrol/llms-full.txt) | Creates, loads, changes and saves documents in code, for example as DOCX or PDF | In your .NET code, for example in an ASP.NET Core application, a Web API, a console application or a service | `TXTextControl.TextControl.Core.SDK` (Core) or `TXTextControl.TextControl.ASP.SDK` (Classic) |
| [MailMerge](https://docs.textcontrol.com/tx-text-control-dotnet-server/overview/components/mailmerge/llms-full.txt) | Merges JSON data, business objects and other data into templates | In your .NET code, together with a `ServerTextControl` instance | The same packages as `ServerTextControl` |
| [Document Editor](https://docs.textcontrol.com/tx-text-control-dotnet-server/overview/components/document-editor/llms-full.txt) | A word processor with a ribbon interface, used to edit documents and design templates | In the browser, connected to your ASP.NET Core backend over a WebSocket | `TXTextControl.Web`, `TXTextControl.Web.DocumentEditor.Backend` and `TXTextControl.TextControl.Core.SDK` |
| [Document Viewer](https://docs.textcontrol.com/tx-text-control-dotnet-server/overview/components/document-viewer/llms-full.txt) | Displays documents read-only; users annotate them, fill out form fields and sign them | In the browser, connected to your ASP.NET Core backend over HTTP | `TXTextControl.Web.DocumentViewer` and `TXTextControl.TextControl.Core.SDK` |

For Angular and React, the Document Editor and the Document Viewer are also available as npm packages, and for Blazor as NuGet packages on nuget.org. Each component page lists the packages for every frontend.

### How the Components Work Together

All components use the same document engine, so a document created in one part of your application can be used in any other. A template designed in the Document Editor looks the same when your backend merges it and exports it as PDF or DOCX.

A typical application combines the components like this:

- A business user designs an invoice or contract template with merge fields in the **Document Editor**, and your application stores it.
- Your backend loads the template into a **ServerTextControl**, merges data from your database into it with **MailMerge**, and saves the result as PDF or in another format.
- A customer opens the document in the **Document Viewer**, fills out its form fields and signs it. The viewer sends the signed document to your backend, where `ServerTextControl` can save it as a digitally signed PDF.

Text Control's e-signing reference implementation is built this way. The blog article [E-Signing Reference Implementation in .NET C#: An Overview](https://www.textcontrol.com/blog/2024/11/14/e-signing-reference-implementation-in-net-c-an-overview/) describes it, and its C# sources are available on [GitHub](https://github.com/TextControl/TextControl.Web.MVC.ESign).

### Core and Classic

TX Text Control .NET Server ships with two document processing engines: **Core** runs on Windows and Linux and is recommended for new projects, and **Classic** runs on Windows only. The engine affects the components as follows:

- `ServerTextControl` and `MailMerge` are part of both engine packages, and your code is the same for both.
- The Document Editor backend package `TXTextControl.Web.DocumentEditor.Backend` requires the Core package.
- The Document Viewer has a package for each engine: `TXTextControl.Web.DocumentViewer` for Core and `TXTextControl.Web.DocumentViewer.Classic` for Classic.

[Product Architecture](https://docs.textcontrol.com/tx-text-control-dotnet-server/overview/architecture/llms-full.txt) explains the engines and how the components are connected.

### Choose a Component

| If you want to | Read | Then start with |
|---|---|---|
| Create, convert or change documents in code, without a user interface | [ServerTextControl](https://docs.textcontrol.com/tx-text-control-dotnet-server/overview/components/servertextcontrol/llms-full.txt) | [Getting Started: Document Processing](https://docs.textcontrol.com/tx-text-control-dotnet-server/getting-started/document-processing/llms-full.txt) |
| Generate invoices, letters, contracts or reports from templates and data | [MailMerge](https://docs.textcontrol.com/tx-text-control-dotnet-server/overview/components/mailmerge/llms-full.txt) | [Getting Started: Mail Merge](https://docs.textcontrol.com/tx-text-control-dotnet-server/getting-started/mail-merge/llms-full.txt) |
| Let users edit documents or design templates in the browser | [Document Editor](https://docs.textcontrol.com/tx-text-control-dotnet-server/overview/components/document-editor/llms-full.txt) | [Getting Started: Document Editor](https://docs.textcontrol.com/tx-text-control-dotnet-server/getting-started/document-editor/llms-full.txt) |
| Let users view, annotate, fill out or sign documents in the browser | [Document Viewer](https://docs.textcontrol.com/tx-text-control-dotnet-server/overview/components/document-viewer/llms-full.txt) | [Getting Started: Document Viewer](https://docs.textcontrol.com/tx-text-control-dotnet-server/getting-started/document-viewer/llms-full.txt) |

If you are new to TX Text Control, read the [ServerTextControl](https://docs.textcontrol.com/tx-text-control-dotnet-server/overview/components/servertextcontrol/llms-full.txt) page first. Every other component builds on the document engine it introduces.

---

## In This Section

- [Document Editor](https://docs.textcontrol.com/tx-text-control-dotnet-server/overview/components/document-editor/llms-full.txt): Embed a Word-compatible WYSIWYG editor in ASP.NET Core, Angular, React, JavaScript or Blazor: user features, WebSocket backend, packages and JavaScript API.
- [Document Viewer](https://docs.textcontrol.com/tx-text-control-dotnet-server/overview/components/document-viewer/llms-full.txt): View, annotate, fill out and sign DOCX and PDF documents in the browser with the Document Viewer: features, ASP.NET Core backend, frontends and JavaScript API.
- [MailMerge](https://docs.textcontrol.com/tx-text-control-dotnet-server/overview/components/mailmerge/llms-full.txt): Generate invoices, letters and reports from DOCX templates and JSON or business objects with MailMerge: merge fields, merge blocks, data sources and settings.
- [ServerTextControl](https://docs.textcontrol.com/tx-text-control-dotnet-server/overview/components/servertextcontrol/llms-full.txt): Create, convert and edit DOCX and PDF documents in .NET code with ServerTextControl: Core or Classic package, Create, Load and Save, StreamType and key members.

---

## Nearby

- **Previous:** [Product Architecture](https://docs.textcontrol.com/tx-text-control-dotnet-server/overview/architecture/llms-full.txt)
- **Next:** [Document Editor](https://docs.textcontrol.com/tx-text-control-dotnet-server/overview/components/document-editor/llms-full.txt)
