TXTextControl.Web.Server.Core is a lightweight, cross-platform .NET 8 application introduced with TX Text Control 33.0 to serve as the backend for the TX Text Control Document Editor. This new architecture replaces the previous Windows-only synchronization service with a more flexible and modern solution. The key features of TXTextControl.Web.Server.Core include:

  • Cross-platform compatibility: TXTextControl.Web.Server.Core can run on any platform that supports .NET 8 or better, including Windows and Linux.
  • Versatile deployment options: Can be deployed on Azure App Services, virtual machines, containers (such as Docker and Kubernetes), or on bare-metal servers.
  • Flexible execution modes: Capable of running as a standalone application, or a Linux daemon.
  • Lightweight and scalable design: Tailored for modern cloud and containerized environments, ensuring efficient resource utilization and scalability.

Learn More

With the release of TX Text Control 33.0, we are excited to introduce TXTextControl.Web.Server.Core, a major upgrade in the way the document editor works on the backend. This article provides an overview of the new architecture and how to deploy the backend on Linux using Docker.

Introducing TXTextControl.Web.Server.Core: A Cross-Platform Backend for TX Text Control Document Editor

In most Getting Started tutorials, we describe how to deploy the required backend with the actual ASP.NET application that uses the Document Editor. In this case, the backend is launched from within the same application. But what if the consuming application uses a different technology stack, such as Angular or JavaScript, and runs on a completely different server or instance?

In this case, the backend can be hosted on a separate server or in a Docker container. This tutorial shows how to deploy the backend using Docker.

Preparing the Docker Image

As a prerequisite, you must install the TX Text Control .NET Server for ASP.NET setup to access the required files. Follow these steps to prepare the Docker image.

  1. In a folder of your choice, create a new folder called TXTextControl.Web.Server.

  2. TXTextControl.Web.Server.Core Files

    Copy the following files from the TX Text Control installation folder to the new folder.

    C:\Program Files\Text Control GmbH\TX Text Control 33.0.NET Server for ASP.NET\Assembly\net8.0\

    • TXTextControl.Web.Server.Core.dll
    • TXTextControl.Web.Server.Core.Process.dll
    • TXTextControl.Web.Server.Core.config.json
    • TXTextControl.Web.Server.Core.deps.json
    • TXTextControl.Web.Server.Core.Process.deps.json
    • TXTextControl.Web.Server.Core.Process.runtimeconfig.json
    • TXTextControl.Web.Server.Core.runtimeconfig.json
  3. TX Text Control Files

    Copy the following files from the same folder.

    C:\Program Files\Text Control GmbH\TX Text Control 33.0.NET Server for ASP.NET\Assembly\net8.0\

    • TXDocumentServer.Core.dll
    • TXTextControl.Core.dll
    • TXTextControl.Server.Core.dll

    From the Assembly folder, the following files are required:

    C:\Program Files\Text Control GmbH\TX Text Control 33.0.NET Server for ASP.NET\Assembly\

    • TXBarcode.dll
    • TXDrawing.dll
    • TXImageProvider.dll
    • txpdf.dll
    • TXSVGResources.dll
  4. TX Text Control Native Dependencies

    For Linux: Copy the following files from the binunix folder:

    C:\Program Files\Text Control GmbH\TX Text Control 33.0.NET Server for ASP.NET\Assembly\binunix\

    • tx33core.so
    • tx33core_tls.so
    • tx33_css.so
    • tx33_dox.so
    • tx33_htm.so
    • tx33_ic.so
    • tx33_pdf.so
    • tx33_pdfdata.so
    • tx33_xlx.so
    • txdomprs.so
    • txfntmgr.so
    • txsvggen.so
    • txwndmgr.so

    For Windows: Copy the following files from the bincore64 folder:

    C:\Program Files\Text Control GmbH\TX Text Control 33.0.NET Server for ASP.NET\Assembly\bincore64\

    • tx33core.dll
    • tx33core_css.dll
    • tx33core_dox.dll
    • tx33core_htm.dll
    • tx33core_ic.dll
    • tx33core_pdf.dll
    • tx33core_tls.dll
    • tx33core_xlx.dll
    • tx33_pdfdata.dll
    • txfntmgr.dll
    • txwndmgr.dll

    The following files from the bin64 folder are also required:

    C:\Program Files\Text Control GmbH\TX Text Control 33.0.NET Server for ASP.NET\Assembly\bin64\

    • txdomprs.dll
    • txsvggen.dll
  5. TX Text Control Fonts

    Copy the complete fonts folder from the TX Text Control installation folder:

    C:\Program Files\Text Control GmbH\TX Text Control 33.0.NET Server for ASP.NET\Assembly\fonts\

    Be sure to copy the entire folder, not just the files. The fonts are required for rendering documents and must be in the same folder structure as the installation folder.

Creating the Dockerfile

In the same folder, create a new file named Dockerfile (without any file extension). The Dockerfile contains the instructions for building the Docker image. Here is an example of a Dockerfile for TXTextControl.Web.Server.Core:

# Use the official .NET 8.0 runtime image
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
# Set the working directory inside the container
WORKDIR /app
# Copy the TXTextControl.Web.Server folder contents to the container
COPY TXTextControl.Web.Server/ .
# Expose default ASP.NET port (optional, depending on your app config)
EXPOSE 4282
# Start the application
ENTRYPOINT ["dotnet", "TXTextControl.Web.Server.Core.dll"]
view raw Dockefile hosted with ❤ by GitHub

Linux Containers

This description shows how to host the backend on a Linux container. Make sure that Linux containers are enabled on Docker.

In this example, we use the mcr.microsoft.com/dotnet/aspnet:8.0 image as the base image. This image contains the ASP.NET Core runtime and is suitable for running .NET applications.

We copy the required files into the image and set the working directory to /app. The ENTRYPOINT instruction specifies the command to run when the container starts. In this case, we use dotnet TXTextControl.Web.Server.Core.dll to start the TXTextControl.Web.Server.Core application.

Building the Docker Image

To build the Docker image, open a terminal or command prompt and navigate to the folder where you created the Dockerfile. Run the following command:

docker build -t txtextcontrol-webserver .

This command builds the Docker image and tags it as txtextcontrol-webserver. The . at the end specifies the current directory as the build context.

Running the Docker Container

After creating the Docker image, you can run a container based on the image. Use the following command:

docker run -p 4282:4282 txtextcontrol-webserver

This command runs the container and maps port 4282 on the host to port 4282 in the container. You can access the TXTextControl.Web.Server.Core backend endpoints at http://localhost:4282.

Testing the Backend

In your ASP.NET Core application, where you added the TX Text Control WebSocket Middleware, add the container as the host name and port number.

app.UseTXWebSocketMiddleware("localhost", 4282);
view raw test.cs hosted with ❤ by GitHub