First Looks

Ease Network Coding

IP*Works! V6 .NET Edition from /n software provides a suite of components that implement well-known and emerging Internet protocols without degrading application performance.

Suppose a .NET application you're writing requires you to implement a network protocol, such as Simple Mail Transfer Protocol (SMTP), domain name system (DNS), or Web Distributed Authoring and Versioning (WebDAV). You're familiar with the Requests for Comments (RFCs) that describe the protocol, but you don't have time to write the implementation from scratch. IP*Works! V6 .NET Edition from /n software gives you the shortcut you need.

IP*Works! is a suite of components that implement all the well-known Internet protocols and some emerging ones, such as Rich Site Summary (RSS) and WebDAV (see Figure 1). It also provides components for doing your own custom protocols. It has an additional layer of abstraction for sockets programming, which is especially useful for beginners.

Installation of IP*Works! is relatively easy, but you need Internet access to download keys and activate the license. The well-organized documentation describes each component's methods and properties well. (It's nice to see the error codes available for each component, too.) You can also take advantage of online tutorials. However, a quick-start guide, and source-code snippets for each component, would be helpful. The online knowledge base could be improved by allowing more-complex searches.

I created several small Internet-based applications by dragging one IP*Works! component at a time from the toolbox to a Windows form. IP*Works! added the appropriate references automatically, and I could begin using them immediately. When I created one large application using several components, they worked together with no problems. Some of the components, such as the RSS component, support different versions of the same protocol—a useful feature if your application requires that you support multiple versions. You should be aware that some of the client components, such as the NetClock component, use default server properties.

Some third-party protocol packages can be significantly slower than regular socket calls. Their code works, but it's not necessarily efficient. I didn't see any performance degradation at all with IP*Works!. However, I did experience one problem: VS.NET appeared to hang when I dragged the IPInfo component to the form for my application; an "out of memory" exception appeared after a minute, even though my machine had 512 MB of RAM. I was unable to figure out what caused the error. None of the other components caused any problems.

IP*Works! is a great suite to have if you write a lot of network-based protocols. Developers at all levels will find it useful, with junior engineers probably benefiting the most. In addition to the .NET edition, /n software offers IP*Works! suites for almost any platform, including Java and the .NET Compact Framework. This extensive components suite can save you significant coding and debugging time.

IP*Works! V6 .NET Edition
/n software
Web:
http://nsoftware.com
Phone: 800-225-4190; 919-402-0590
Price: $279
Quick Facts: Components for all the well-known network protocols and newer ones, such as RSS and WebDAV.
Pros: Saves coding time; accurate implementation of protocol RFCs.
Cons: Lacks a quick-start guide.

David Mack is a technical lead for the National Intelligence Division of Titan Systems and an independent consultant. He has more than 10 years of experience in object-oriented programming. Reach him at [email protected].


Deliver Interactive Charting

ProEssentials 5 is a set of charting components for Windows and Web applications. The suite includes regular, scientific, and 3-D graphing objects and charts in polar and pie configurations (see Figure 1).

Helping users make sense of their data is a programming challenge, because most developers aren't subject-matter experts in the users' domain. You can fetch data and make it available in many formats, but it's hard to predict how the end user will want to view, assimilate, interpret, and massage the mass of information. Users often don't know what they want their data to look like until they see it, so they come back frequently for tweaks. A strength of ProEssentials is the fine control it enables over graphs and charts at run time. End users can zoom, pan, group, and format the material at will. For example, a right-click on the WinForms version brings up an extensive context menu with options to display data as a graph, table, or both. The user can set the numeric precision, data points, fonts, border styles, and shadowing. The tabbed Customization page shows more settings. An option to export the chart or graph to popular image formats, to a metafile, or as text/data only is also only a right-click away.

You'll find interactivity in many of the objects: Double-clicking on the label for a pie-chart slice detaches the slice; the 3-D scientific graph autorotates to display data from all angles; and drag and zoom lets you drill down on portions of a chart.

GigaSoft admits in the readme.htm file that its first-generation .NET product is lacking in design-time capabilities, a weakness the company promises to address. For this release, you can accept the default styles or write code to change a chart's appearance. The package includes adequate "quick" styles, but more attention to translucents, highlights, and color schemes would increase the eye-candy quotient.

Although ProEssentials supports Web pages, Web Forms developers are at a disadvantage: The royalty-free runtime policy doesn't apply on the server side, and browser-based charts don't allow the same interactivity as a rich client. Embedding ActiveX versions of charts into Web pages is an alternative if you can handle the code signing, licensing, compiling, and security issues that come with ActiveX technology.

ProEssentials' HTML help documentation includes enough overview and tutorial content to get beginners up to speed, despite the dark colors and folksy appearance of its topics. The PE Demo application provides an excellent overview of the suite's graphing capabilities and the coding effort.

This is a solid charting application that emphasizes performance and user customization in WinForms over design-time goodies for developers, superficial "wow" factors, and Web functionality.

ProEssentials 5
GigaSoft
Web:
www.gigasoft.com
Phone: 817-431-8470
Price: $149 Lite; $399 Standard; $1,299 Pro
Quick Facts: Comprehensive set of charting components for Windows and Web Forms applications, including scientific and 3-D graphing objects.
Pros: Performs well; runtime customization for end users; exports images and data.
Cons: Minimal design-time support; royalty-free distribution doesn't apply to Web servers.

About the Author

David Mack is a technical lead and consultant for the National Intelligence Division at Titan Systems. He has more than 10 years of experience in management and software engineering. Reach him at [email protected].

comments powered by Disqus

Featured

  • Compare New GitHub Copilot Free Plan for Visual Studio/VS Code to Paid Plans

    The free plan restricts the number of completions, chat requests and access to AI models, being suitable for occasional users and small projects.

  • Diving Deep into .NET MAUI

    Ever since someone figured out that fiddling bits results in source code, developers have sought one codebase for all types of apps on all platforms, with Microsoft's latest attempt to further that effort being .NET MAUI.

  • Copilot AI Boosts Abound in New VS Code v1.96

    Microsoft improved on its new "Copilot Edit" functionality in the latest release of Visual Studio Code, v1.96, its open-source based code editor that has become the most popular in the world according to many surveys.

  • AdaBoost Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the AdaBoost.R2 algorithm for regression problems (where the goal is to predict a single numeric value). The implementation follows the original source research paper closely, so you can use it as a guide for customization for specific scenarios.

  • Versioning and Documenting ASP.NET Core Services

    Building an API with ASP.NET Core is only half the job. If your API is going to live more than one release cycle, you're going to need to version it. If you have other people building clients for it, you're going to need to document it.

Subscribe on YouTube