TN3270Sharp a .net library to write applications/servers with C# that use TN3270 clients
This library was heavily inspired by racingmars/go3270 which has a similar goal, except it is designed to use golang instead of C#. After watching a demo video of go3270, I decided that I needed to have the same functionality for my favorite developer ecosystem.
This project is still very early in development and is not suitable for use any project beyond experimentation. There is most certainly bugs and missing features. The API will also likely change many times before it is declared ready for any realworld use.
THIS CODE IS UNSTABLE. USE AT YOUR OWN RISK.
TN3270Sharp is licensed under the MIT License which permits commercial use; modification; distribution, and private use.
This should run on any machine support by Microsoft .NET 6. This includes:
- Linux (x64, ARM32, ARM64) - This also includes Raspberry Pi 3 & 4.
- macOS (x64, Apple Silicon)
- Microsoft Windows (x86, x64)
- Install .NET 6, the latest LTS version.
- Clone the repo
- Type the following in the shell
cd TN3270Sharp.Example.App
dotnet run
- launch your TN3270 emulator and connect to 127.0.0.1 port 3270
Pull requests and bug reports are welcome.
Below is a rough roadmap to show upcoming goals.
- [] nuget package
- [] documentation (Wiki?)
- [] code clean up, including better code comments
- [] Wrapper for higher level abstraction (maybe a new project) to simplify create of common elments, i.e., Menus; headers; F-Key footers; etc.
- [] Better error checking.
- [] Rework the demo app. Current demo was just for testing during initial development.
I have borrowed / adapted some code from racingmars/go3270 and Open3270/Open3270, both of which are also released under the MIT License.
I want to thank bencz for major contribution, including a new implementation of the TN3270 Connection Handler.
I also wish to thank M4xAmmo for contributions including: changable cursor position; factory methods to create fields; checking the terminals responses on negotiation instead of ignoring them; and some general code cleanup.