PowerTCP Components for .NET
By Brian Noyes
A common requirement for Web and Windows applications is the need to use Internet protocols to connect and get information and data from other servers on the Internet or intranet. There is some basic network protocol support in the System.Net namespace of the .NET Framework, but for many common protocols, the built-in support is either non-existent or lacking in features or productivity for most real apps.
PowerTCP Components for .NET fill this network protocol void in the .NET Framework very nicely with a set of easy to use components that let you integrate into your applications support for POP, IMAP, SMTP, Telnet, FTP, and socket-based protocols. The components are written in 100% managed code, so you won't run into any hidden performance penalties for interop under the covers, or the related security issues for calling into unmanaged code. This also simplifies the deployment of your app, because the components can all be xcopy deployed to any supported .NET platform. The component suite also includes secure variants of the mail, FTP, and sockets components that work with encryption and authenticated environments. Using PowerTCP Components for .NET will save you a ton of time writing low-level plumbing code and will instead let you focus on your business logic or presentation coding.
I first came across the PowerTCP components while searching for a good mail component for an application. After comparing several other mail components, I found that I liked the PowerTCP Mail for .NET component the best for a number of reasons, all of which apply to the other components in the suite. For starters, the site has good detailed information about the object model and contained components, as well as sample code and tutorials, that let me quickly get a sense of what I would be working with. This saved me from having to download and install a trial product and start writing code to figure out whether I was even interested, which is often required with other vendors' components.
I also liked what I saw when I did start looking at their object model. The components appeared well designed and consistent with .NET Framework classes in the way they exposed their behavior and state through methods, properties, and events, as well as the use of collections and streams where it made sense. They also offer synchronous and asynchronous handling for most things in a way that models the implementation in delegates and readers/writers in the framework. Based on the information available and the clean design I was able to quickly determine that the PowerTCP Components for .NET would give me the best flexibility, but still result in clean, concise, consistent code.
The PowerTCP Mail for .NET components contain capabilities for handling POP3, IMAP, and SMTP protocols for sending and receiving e-mails. They are meant for use on the client side, and are easily integrated into existing Web or windows applications. For example, I found it a quick and easy exercise to create a simple Web interface that showed a listing of e-mails residing on a separate POP server using these components by getting back a collection of header information and using standard .NET data binding to display the results. You could use these to add a Web mail front end on any mail server as part of your site. There is also a great MIME parser in this part of the component suite that could be very useful even outside the e-mail send and receive scenario. The secure variant of this component suite simply layers encryption and authentication capabilities onto the base capabilities for those who need it.
Figure 1. Putting together an app that uses the PowerTCP components is a piece of cake. Shown here is a simple Web mail viewer of my POP inbox, created in less than 10 lines of code. Simply log in, iterate through the Messages collection, and populate a DataSet for data binding to the DataGrid. This literally took me less than 15 minutes to figure out.
The FTP components allow you to quickly add client-side access to FTP servers to your applications. The primary components you use let you connect to the server, and you can get and set files using intuitive methods on the main Dart.PowerTCP.Ftp.Ftp component, or you can execute any of the FTP commands by calling an Invoke method with an enumeration argument for the various supported commands.
Although there is decent socket support in the .NET Framework, it takes a lot of code to implement things right. If you want to speed your socket coding efforts considerably, the PowerTCP Sockets and SSL Sockets for .NET components are worth a look. They provide a rich object wrapper on top of what the framework provides, allowing you to focus on your application logic rather than on plumbing code. Using these components, you can easily make calls using many socket-based network protocols, such as Ping, Trace, UDP, DNS, and others. You can create multithreaded servers and clients to implement secure and high-performance communication channels between your apps and others, potentially on other platforms. Likewise, the PowerTCP Telnet for .NET components let you add Telnet client communications to your apps with minimal code.
The site also mentions some upcoming editions to the suite, including SNMP, a Web server, and Zip compression, but with unspecified release dates. Overall, I have been very pleased with these components. They come with a lot of sample code, good documentation that integrates into the MSDN Help system, and they have good support newsgroups on the http://www.powertcp.com site. The only minor criticism I have concerns the code samples in the individual component method and property documentation pages. There are placeholder comments in most of the samples, as if that is an intended future addition along the lines of what is provided with each .NET Framework class method and property, but for now, most of them do not display sample code at that level of detail.
If you need to add mail, FTP, socket-based network protocol, or Telnet capabilities to your site or application, the PowerTCP Components for .NET are definitely worth a look.
Web Site: http://www.powertcp.com/dotnet/
Subscription Price: US$1,999