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.
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.
-
In a folder of your choice, create a new folder called TXTextControl.Web.Server.
-
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
-
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
-
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
-
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"] |
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); |