Document Editor with ASP.NET Core and Docker Support with Linux Containers using Visual Studio 2026 and .NET 10
This article shows how to create a Document Editor ASP.NET Core application using Docker with Linux containers in Visual Studio 2026 and .NET 10. We will create a simple web application that allows users to edit documents directly in their web browser using the Document Editor component from Text Control.

Prerequisites
You need to download and install the trial version of TX Text Control .NET Server to host the Document Editor backend:
- Download Trial Version
Setup download and installation required.
Introduction
This tutorial will walk you through the process of building a simple ASP.NET Core web application that hosts the TX Text Control .NET Server backend. This will enable in-browser document rendering and editing with the TX Text Control Document Editor.
Version 34.0 of TX Text Control provides full support for Visual Studio 2026 and .NET 10. This ensures seamless integration and compatibility with the latest tools, as well as a smooth development experience on the newest Microsoft platform.
Container and Linux Distributions
TX Text Control is compatible with all major Linux distributions and can be deployed in virtual machines, Docker containers, and hyperscaler environments, including Azure App Services, AWS Elastic Beanstalk, and Google Cloud Run. This tutorial will demonstrate how to create an ASP.NET Core web application that hosts TX Text Control in a standard Linux container using the default Visual Studio template.
Creating the Application
Make sure that you have installed the latest version of Visual Studio 2026, including the .NET 10 SDK.
-
In Visual Studio 2026, create a new project by choosing Create a new project.
-
Select ASP.NET Core Web App (Model-View-Controller) as the project template and confirm with Next.
-
Enter a project name and choose a location to save the project. Confirm with Next.
-
Choose .NET 10.0 (Long Term Support) as the Framework.
-
Enable the Enable container support checkbox and choose Linux as the Container OS.
-
Choose Dockerfile for the Container build type option and confirm with Create.

Adding the Web Server Backend
-
Create a new class by right-clicking the project in the Solution Explorer and choose Add -> Class.... Name the class TXWebServerProcess.cs and confirm with Add. Replace the complete content with the following code:
using System.Diagnostics; using System.Reflection; public class TXWebServerProcess : IHostedService { private readonly ILogger<TXWebServerProcess> _logger; public TXWebServerProcess(ILogger<TXWebServerProcess> logger) => _logger = logger; public Task StartAsync(CancellationToken cancellationToken) { try { string? path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); string dllPath = Path.Combine(path ?? "", "TXTextControl.Web.Server.Core.dll"); if (string.IsNullOrEmpty(path) || !File.Exists(dllPath)) _logger.LogWarning("TX Web Server process could not be started."); else { Process.Start(new ProcessStartInfo("dotnet", $"\"{dllPath}\" &") { UseShellExecute = true, WorkingDirectory = path }); _logger.LogInformation("TX Web Server process started."); } } catch (Exception ex) { _logger.LogError(ex, "Error starting TX Web Server."); } return Task.CompletedTask; } public Task StopAsync(CancellationToken cancellationToken) { _logger.LogInformation("Stopping TX Web Server process..."); return Task.CompletedTask; } } -
Right-click the project in Solution Explorer, select Add → Existing Item…, and then browse to the TX Text Control .NET Server installation directory.
C:\Program Files\Text Control GmbH\TX Text Control 34.0.NET Server for ASP.NET\Assembly\net8.0
Set the file filter to All Files (*.*) and select the following files:
- TXTextControl.Web.Server.Core.deps.json
- TXTextControl.Web.Server.Core.dll
- TXTextControl.Web.Server.Core.Process.deps.json
- TXTextControl.Web.Server.Core.Process.dll
- TXTextControl.Web.Server.Core.Process.runtimeconfig.json
- TXTextControl.Web.Server.Core.runtimeconfig.json
- TXTextControl.Web.Server.Core.config.json
Confirm with Add.
-
Select the added files in the Solution Explorer and set the Copy to Output Directory property to Copy always.
Adding the NuGet Packages
-
In Solution Explorer, select your project and choose Manage NuGet Packages… from the Project menu. Then set Text Control Offline Packages as the package source.
Install the following packages:
- TXTextControl.Web
- TXTextControl.TextControl.Core.SDK

Configure the Application
-
Open the Program.cs file located in the project's root folder.
After builder.Services.AddControllersWithViews();, add the following code:
builder.Services.AddHostedService<TXWebServerProcess>();At the very top of the file, insert the following code:
using TXTextControl.Web;Add the following code after the entry
app.UseStaticFiles();:// enable Web Sockets app.UseWebSockets(); // attach the Text Control WebSocketHandler middleware app.UseTXWebSocketMiddleware();The overall Program.cs file should look like this:
using TXTextControl.Web; var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddControllersWithViews(); builder.Services.AddHostedService<TXWebServerProcess>(); var app = builder.Build(); // Configure the HTTP request pipeline. if (!app.Environment.IsDevelopment()) { app.UseExceptionHandler("/Home/Error"); // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); // enable Web Sockets app.UseWebSockets(); // attach the Text Control WebSocketHandler middleware app.UseTXWebSocketMiddleware(); app.UseRouting(); app.UseAuthorization(); app.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); app.Run();
Adding the Control to the View
-
Find the Index.cshtml file in the Views -> Home folder. Replace the complete content with the following code to add the document editor to the view:
@using TXTextControl.Web.MVC @{ var sDocument = "<html><body><p>Welcome to <strong>Text Control</strong></p></body></html>"; } @Html.TXTextControl().TextControl(settings => { settings.UserNames = new string[] { "Tim Typer" }; }).LoadText(sDocument, TXTextControl.Web.StringStreamType.HTMLFormat).Render() <input type="button" onclick="insertTable()" value="Insert Table" /> <script> function insertTable() { TXTextControl.tables.add(5, 5, 10, function(e) { if (e === true) { // if added TXTextControl.tables.getItem(function(table) { table.cells.forEach(function(cell) { cell.setText("Cell text"); }); }, null, 10); } }) } </script>
Starting the Application
We will use the Dockerfile as provided and rely on the default Visual Studio template, which targets a Linux container based on the official Docker Hub image.
-
Start the application by pressing F5 or by choosing Debug -> Start Debugging from the main menu.
ASP.NET
Integrate document processing into your applications to create documents such as PDFs and MS Word documents, including client-side document editing, viewing, and electronic signatures.
- Angular
- Blazor
- React
- JavaScript
- ASP.NET MVC, ASP.NET Core, and WebForms
Related Posts
Text Control Sponsors & Exhibits at NDC London 2026
We are pleased to announce that Text Control will be sponsoring and exhibiting at NDC London 2026, one of Europe's leading conferences for professional software developers, once again. Join us…
Preflighting PDF/UA Documents with TX Text Control in .NET C#
Accessibility is an important aspect of document creation. In this article, we will explore how to preflight PDF/UA documents using TX Text Control in .NET C# applications. We will discuss the…
Procurement Comparison: TX Text Control .NET Server vs Aspose (Words + PDF)
A detailed cost comparison between TX Text Control .NET Server and Aspose.Words + Aspose.PDF for document generation and processing in .NET applications. Discover the advantages of using TX Text…
The State of Electronic and Digital Signatures (E-Signatures) in Business…
Electronic signatures are no longer just a "nice-to-have" workflow upgrade. By 2025, they had become infrastructure. A critical component of modern business applications. This article explores the…
Looking Ahead: Our Conference Journey in 2026
We just wrapped up our last conference of 2025 in Cologne. While the year has come to a close, we're already looking ahead to what's next. At Text Control, we start planning for the upcoming…
