WinFX 3270 Library News Feed 
Wednesday, August 23, 2006  |  From WinFX 3270 Library

At last, after much debate I've decided to release the code under the LGPL on Microsoft's code sharing site Codeplex.

The project is available at http://www.codeplex.com/Wiki/View.aspx?ProjectName... (or just go to www.codeplex.com and search for 3270.

If anyone wants to help I'd really appreciate it - please drop me an email.

Tuesday, February 28, 2006  |  From WinFX 3270 Library

I'm really interested in feedback from users of the TN3270 library. If you've downloaded the library and decided to use it, please do tell me why, and just as importantly if you decide not to, I'd really appreciate knowing why. If you're happy to share, please post in the forum, otherwise direct to me at winfxdeveloper@gmail.com Thanks, Mike

Wednesday, February 22, 2006  |  From WinFX 3270 Library

The WinFXDeveloper 3270 library is shipped as a single DLL file that contains all the functionality that you need to access TN3270 and TN3270E systems from your application. As a 100% pure .NET component, you are guaranteed that it will run securely in both WinForms and ASP.NET applications without change.

Some key points about the library:

  • Uses overlapped I/O and asynchronous events rather than multi-threading for maximum performance and support for TN3270 environments
  • High level API isolates the user from all the detail of the 3270 connection
  • Tried and tested 3270 data engine supports (amongst others)
    • TN3270
    • TN3270E
    • Multiple LUs
    • Formatted and unformatted screens
    • Telnet style screens in between 3270 data
    • Screens that build up over multiple 3270 data sets
  • Alpha support is included for other features – please contact us for more information if you might want to use them:
    • Multiple languages
    • APL

We also provide a high level screen based API that supports screen recognition, navigation and data mapping of data off a screen into a .NET data structures. This API will be described in a later article, and includes:

  • 3270 Screen recognition engine
  • Intelligent navigation engine to allow direct point to point navigation between screens on your host
  • Data mapping API to allow intelligent data mapping of data from a 3270 screen into .NET data structures
  • Multiple 3270 connection pools to allow server side applications to easily maintain pools of connected 3270 screens for optimum performance

 

Quick start demonstration of low level API

The low level API is extremely easy to use even if you have no knowledge of 3270 systems. This tutorial describes how the low level sample application works.

  1. Include the using attribute:

 

using WinFXDeveloper.TN3270.LowLevel;

 

  1. Instantiate a TNEmulator object and connect to the host. In this case, we’re going to connect to the US Library of congress system, a publicly available TN3270 mainframe. The default TN3270 port is port 23, the same as Telnet.

 

TNEmulator emulator = new TNEmulator(null, null);

emulator.Connect("locis.loc.gov", 23, null);

 

  1. Firstly, we need to wait for the mainframe to return the first application screen, since the first actual screen it returns is blank. With the low level API, we do this using WaitForText:

if (!emulator.WaitForText(22,0,"LIBRARY OF CONGRESS", 20000))

{

Console.WriteLine("Failed to identify screen”);

Return;

}

  1. We then have a number of options. First, for the demo, we’ll print out what the current screen looks like:

Console.WriteLine(emulator.CurrentScreenXML.Dump());

  1. However, we could have got some text directly off this screen:

String text = emulator.CurrentScreenXML.GetText(22,0,40).Trim();

  1. The application requires that we press 1 and ENTER to start the copyright search, to do this:

emulator.SendText(“1”);

emulator.SendKeyFromText(“enter”);

  1. Finally, to close the connection, we should call Close. You can leave it to the .NET garbage collector to do this, but then you will risk leaving many TCP/IP connections open and possibly running out of available connections to the host before the GC runs.

emulator.Close();

 

 

Wednesday, February 22, 2006  |  From WinFX 3270 Library

The WinFXDeveloper TN3270 library provides a high level API to connect to mainframe 3270 sessions from a Microsoft .NET application.

Key features include

  • Support for TN3270 and TN3270E from all Microsoft .NET applications (VB.NET and C#)
  • Support for formatted and unformatted screens
  • Support for multiple LUs and connections that require a specific LU to be specified
  • Support for unlimited TN3270 connections from a single application
  • Support for ASP.NET and WinForms applications

100% Managed Microsoft .NET 3270 emulation

Coded entirely in C#, with overlapped I/O replacing the frequently used multi-threaded server approach to 3270 connectivity, this library is extremely efficient and lightweight, suitable both for WinForms applications as well as ASP.NET server applications  

Complete support for 3270 protocol

  The library provides a full TN3270 library based around the functionality provided by the X3270 UNIX library. This includes support for multiple LUs, formatted and unformatted screens and most 3270 "bugs".  

Extremely cost effective library

The WinFX Developer TN3270 library is free for internal corporate use.  If you want to distribute systems using the library, or if you want the source code, please get in touch with me and we can discuss the available licensing options.

 WinFX 3270 Library News Feed 

Last edited Dec 7, 2006 at 11:16 PM by codeplexadmin, version 1

Comments

prakashgajera Jun 11, 2009 at 11:43 AM 
i have tried it sample app with clemson.clemson.edu host at port 23 but after connect its not showing any data onscreen it just shows numbers like this
01234567890123456789012345678901234567890123456789
1
2
3
4
5
6
...
24

actualy it shd show screen of host like asking for userid and password to login on host

plz reply me on prakash.gajera@tethyssolution.com so that i can go ahead with this library.

prakashgajera Jun 9, 2009 at 5:38 AM 
hi can i use this library in my vb application