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 before the entry
app.UseRouting();:// 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(); // enable Web Sockets app.UseWebSockets(); // attach the Text Control WebSocketHandler middleware app.UseTXWebSocketMiddleware(); app.UseRouting(); app.UseAuthorization(); app.MapStaticAssets(); app.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}") .WithStaticAssets(); 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
WeAreDevelopers World Congress Europe 2026 Wrap Up: Record Breaking Days in…
WeAreDevelopers World Congress Europe 2026 was a record-breaking event in Berlin, bringing together over 15,000 developers and tech enthusiasts from around the world. The conference featured…
C# Document Generation: A Developer's Guide for .NET
Document generation refers to the automatic creation of documents from application data. The success or complexity of a document generation workflow often depends on a single early architectural…
ASP.NETAccessibilityASP.NET Core
Validating PDF/UA Documents in .NET C#: A Practical Guide
This article explains how to validate PDF/UA documents in .NET C# using the TXTextControl.PDF.Validation NuGet package. It shows how to inspect validation status, generate JSON reports, handle…
ASP.NETASP.NET CoreConferences
See Text Control at WeAreDevelopers World Congress Europe 2026 in Berlin
WeAreDevelopers World Congress Europe 2026 is the largest developer conference in Europe. Text Control will be there to showcase our latest products and features. Join us in Berlin from July 9-10,…
ASP.NETASP.NET CoreConferences
DWX 2026 Wrap-Up: Four Days of Innovation, Conversations, and Enterprise…
DWX 2026 was a great success for Text Control. We had the opportunity to meet with many developers, discuss document processing solutions, and showcase our latest innovations in document…
