CommStudio for .NET

Connect to serial ports and transfer files using 100% managed .NET code.

Published by
Distributed by ComponentSource since 2002

Prices from: $ 783.02 Version: Fall 2008 Updated: Oct 9, 2008


Please note that this product is no longer supported by the publisher, so it is no longer eligible for product support or maintenance.

About CommStudio for .NET

Connect to serial ports and transfer files using 100% managed .NET code.

CommStudio for .NET makes it easy to let your application communicate using the serial port and modems. CommStudio for .NET is a comprehensive set of components and visual debugging tools that integrate remote systems and devices with Visual Studio 2005 and Visual Studio 2008. Developing software that integrates with legacy systems and external devices presents significant challenges, including the need for real time communications and the lack of direct control over external systems. Sax CommStudio’s integrated debugging tools extend the power of Visual Studio beyond the desktop to external systems and devices.

CommStudio for .NET

Connect to Serial Ports - Up to four times faster than regular .NET
CommStudio is very fast: Smart design and highly-optimized code make CommStudio up to four times faster than regular .NET SerialPort and SerialStream classes.

Why performance matters
Performance affects more than just the speed of your application. It impacts the overall system load, power usage, and battery life. Higher performance also results in increased scalability. Many CommStudio developers have deployed applications that service hundreds of serial ports on a single system. The entire CommStudio assembly is less than 250K of highly optimized managed C# code, including all serial port, file transfer, and barcode classes.

The experts agree
Scott Hanselman, .NET Guru Extraordinaire, notes in his blog that the regular .NET Framework serial port classes are sometimes four times slower than they should be:

"I noticed the implementation of set_dtrEnable inside of System.IO.Ports.SerialStream was WAY more complicated than it needed to be for my purposes."  - Scott Hanselman, Computer Zen

The equivalent code in CommStudio is very elegant, and very fast.

Dial Modems with TAPI – Plug and Play Modem Dialing
Let the Windows Telephony API (TAPI) do all the hard work for you. With CommStudio, you never have to worry about modem setup again.

In addition to modem device independence, your users will also enjoy automatic handling of dialing rules based on the user's location and area code.

Make your application easier to use
Reduce technical support and increase end user satisfaction by using the settings defined in the the Windows Control Panel.

Modem Information At Your Fingertips
CommStudio provides simple access to the Windows Telephony API (TAPI) though an elegant object model. For example, to show a list of available modems in the system, you can use the following code:

Dim modem As CommStudio.Connections.ModemInfo

For Each modem In CommStudio.Connections.ModemInfo.Modems

Once the user has selected a modem, dialing a number and establishing a connection is very easy:

ModemConnection1.PhoneNumber = "+1 (541) 555-1234"

CommStudio automatically dials the correct number based on the current location defined in the Windows Control Panel. Once the connection is established, you can start sending and receiving data.

Robust File Transfers – File Transfer Protocols
CommStudio includes robust, time-tested implementations of the XModem, YModem, and ZModem file transfer protocols.

Each protocol implementation has been proven to interoperate flawlessly with a very wide variety of systems, ranging from mobile devices to mainframe computers.

ZModem - Optimized for reliability and performance
CommStudio contains the most advanced implementation of ZModem available. You'll enjoy advanced error recovery, automatic streaming, and block size adjustment to get the fastest transfer under even the most difficult bandwidth circumstances.

About ZModem
The ZModem protocol was developed by Chuck Forsberg in 1986 for the Telnet packet switching network. ZModem has several important advantages over XModem and YModem:

  • Variable block size allows the size of blocks to grow or shrink depending on the quality of the connection.
  • Sliding window support allows the protocol to keep sending data without having to wait for an acknowledgment for each block. This results in a significant performance increase.
  • Autostartmakes it possible for applications to recognize the start of a new transfer, making the application easier to use.
  • 32-bit CRC checking further ensures the accuracy of the contents of each file transferred.
  • Auto-resumeallows a failed transfer to pick up where it left off, which significantly helps the transfer of large files over bad connections.

Even though ZModem's name is similar to XModem and YModem, the protocol itself is very different and much more advanced.


About YModem
YModem (also referred to as YModem-Batch) is a variation of the XModem protocol that adds three important enhancements:

  • The filename is transmitted, making it easier for systems to distinguish the different files that are transferred.
  • The file size is transmitted, overcoming XModem's limitation of having to pad the file to the next multiple of the block size.
  • The block size is 128 or 1024 bytes, resulting in less overhead when waiting for an acknowledgement of each block.

YModem-G is a variation that does not wait for an acknowledgment after each block. This enhances speed on perfect connections, but requires the transfer to completely terminate if anything goes wrong.

YModem combines simplicity with an essential feature set. If speed is of great importance, ZModem is a better choice.


About XModem
XModem is a very simple file transfer protocol, invented in 1977 by Ward Christensen. The original version of XModem, also referred to as XModem-Checksum, transmitted a file in 128 byte blocks with a one byte checksum for integrity checking.

There are two common variations of the original XModem protocol:

  • XModem-CRCreplaces the single byte checksum with a two byte (16-bit) Cyclic Redundancy Check, which greatly improves integrity checking.
  • XModem-1Kbuilds upon XModem-CRC by allowing block sizes of both 128 bytes and 1024 bytes. This reduces overhead and time spent waiting for acknowledgments.

YModem further extends XModem-1K by transmitting the filename and file size.

Extensive Device Support
Each release of CommStudio is tested to work flawlessly with a wide variety of communications devices, including third-party hardware and virtual serial ports.

Reduce Support Cost
It’s likely that your application will be used in a wide and unexpected variety of environments.
By choosing a communications component with broad third-party hardware and software support you will save your organization tons of technical support time.

Free Up Processor Resources
If you’re going to handle multiple ports at once, it’s a good idea to use intelligent serial port adapters.
Every version of CommStudio is extensively tested with intelligent multi-port devices such as Digiboards and Edgeport USB to Serial adapters.

User Serial Ports Remotely
CommStudio supports serial connections over Windows Terminal Server and Remote Desktop Connection, right out of the box.

Common UI Elements
CommStudio hides the complexity of device configuration and status reporting. It provides elegant and easy to use dialogs that takes less than a few minutes to integrate in your application.

If you have time on your hands you could write the UI code for choosing and configuring serial ports yourself. For low-level settings you could tell you users to go to the Control Panel, and the high-level settings could handled by dialog boxes you create.

Getting everything working just right takes a surprising amount of effort, though: What happens if the user unplugs a USB cable and the hardware changes from underneath you? How do you handle (and test!) third party devices from different vendors?

Automated Login Scripts

Write automated login scripts with ease.
Using CommStudio you can quickly build a visual front-end for a legacy terminal system.

Customer research found that the large majority of serial communications applications interact step-by-step with devices or remote systems: the application would repeatedly send some data and then read the results back as a predetermined sequence of characters.

Using the built-in .NET Framework SerialPort control this ends up being unnecessarily slow and complicated: you have to read the characters one by one and parse them on the fly.

Because so many developers are building login-style scripts, CommStudio equips you with an entire set of functions that make this task simple and elegant.