First Looks
IP*Works: Simplify Internet Development
Take advantage of /n software's IP*Works to simplify a variety of Internet-related tasks, from working with SOAP, to handling tasks related to HTTP, DNS, and FTP seamlessly.
IP*Works! .NET Edition Version 6.1 from /n software is a suite of components for building and connecting applications that use Internet protocols.
As of this review, /n software ships 42 components in its ever-expanding TCP/IP offering. All of the controls integrate with Visual Studio 2002, 2003, and 2005. This review focuses on the VS 2005 build.
Implementing Internet protocols is a specialist's area. Microsoft has simplified Internet client development in the .NET Framework 2.0 with the versatile SmtpClient and WebClient classes, not to mention basic HTTP, FTP, and DNS functionality in the System.Net namespace. But IP*Works! takes you further, with more and richer classes. For example, I needed an FTP utility to transfer pages from my workstation to my Web site. Creating it was a breeze with the suite's FTP component. The Login() method handles the connection and authentication with little coding effort, and the PITrail event allows extensive debugging and logging because it reports commands and responses as they happen (see Figure 1).
The SOAP component also illustrates how a control can simplify development tasks. This component implements the SOAP 1.1 specification for you. You provide the parameters, and the component assembles the packet and parses the result. I ran into a syntax problem accessing my Web service and submitted the issue through the Web. The support department at /n software responded quickly, fully, and politely with the solution.
I've often thought it would be useful to have one lightweight client that could handle all kinds of messaging and content reading. This is quite doable with this suite because all of the protocols are here, ranging from POP3 and SMTP, to NNTP and RSS. There are samples for each protocol in both C# and Visual Basic. The RSS component exposes many properties that map directly to fields within the RSS file, such as ChannelTitle, ItemPubDate, and ImageURL. This makes it easy to select the content you want to include in your application. Simply point the GetFeed() method to the address of the feed and let the control handle the XML parsing. The RSS component lets you store syndicated content using the AddItem() and WriteFile() methods.
Several components support rich e-mail handling within Windows applications. For example, you can use the MX component asynchronously to check the mail exchange (MX) records of a domain name server (DNS), read mail using POP3 and respond using the SMTP component. The MIME component takes care of formatting the non-text content of a message.
Applications often use the HTTP protocol to post debug information or feedback unobtrusively (even surreptitiously) to a Web server page or script. The WebForm component handles the plumbing to pass through your authentication, and the AddFormVar() method accepts name/value pairs for your virtual Web Form to submit. You can configure the content of the HTTP User-Agent header to a custom value for easy server-side recognition of the client.
Several IP*Works! controls, such as SysLog and UDP (datagram), might be obscure to the average .NET developer. For example, I've never used cellular text messaging, so the Short Message Peer-to-Peer protocol (SMPP) was new to me. Of course, it's when you're in over your head that you appreciate third-party components the most. The day the boss asks whether you can generate cellphone alerts is the day that one component makes the whole suite worth the cost.
The main DLL for IP*Works! .NET Edition weighs in at 1.27 MB. However, you don't need to install all of the components on the client's machine. You can pick and choose individual managed DLLs such as nsoftware.IPWorks.Rss.dll, which is the largest single file at 192 KB. Also, the control that fetches the time from an Internet time server is only 64 KB.
The included samples make great starting points because they illustrate the basic functionality of these capable components without overwhelming you. The documentation is adequate, but I'd like to see beginner tutorials, more code snippets, and integration of the content with Visual Studio's help collections. Distribution is royalty-free, but there's no documentation on what licenses and support files (if any) you need to include in your end-user setup kit. Overall, however, this is a valuable suite for anyone who doesn't want to struggle with Internet protocol development.
IP*Works! V6 .NET Edition
/n software inc.
Web: www.nsoftware.com
Phone: 919-544-7070
Price: $499.00 per developer
Quick Facts: Suite of 42 programmable components for Internet-based TCP/IP applications using the major protocols and standards.
Pros: Easy to use; good standards support; valuable code samples; royalty-free runtimes.
Cons: No "getting started" tutorials; no documentation on licenses and support files.
About the Author
Ken Cox is a Canadian .NET programming writer and the author of "ASP.NET 3.5 for Dummies" (Wiley).