asp:review
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.
Rating:
Web Site: http://www.powertcp.com/dotnet/
Subscription Price: US$1,999