The SocketTools .NET Edition is designed to be flexible enough
to address the needs of developers who have very basic needs, as
well as those who have more complex requirements. As a result, the
properties and methods for a control can be broken down into two
general categories: a high level interface to perform common tasks,
and a lower level interface which provides more control at the
expense of being somewhat more complicated and requiring more
coding. For example, consider the Hypertext Transfer Protocol
(HTTP) control which has a variety of high level methods such as
GetFile, PostData and so on. Using these methods, your application
can perform the most common tasks for that protocol with a minimum
of coding. You don't need to even understand the basics of how the
protocol works, or what the control is doing. The high level
methods allow you to program against the control as though it is a
"black box", where you can provide the input and process the output
without concerning yourself with the details of what's going on
behind the scenes.
However, in some cases it's necessary for an application to have
more direct control over how the control operates or to take
advantage of features that aren't explicitly supported by one of
the higher level methods. As an example, the HTTP control also has
methods like Command, which enable you to send custom commands to a
web server. Normally, for operations like retrieving a file or
posting data to a script, this isn't necessary. But if your
application needs to use WebDAV, a set of extensions to the HTTP
protocol to support distributed web authoring, then the lower level
methods like Command enable you to do this.
If you are generally new to Internet programming or are just
getting started with SocketTools, we recommend that you begin
familiarizing yourself with the higher level methods using a basic
synchronous (blocking) connection in a single-threaded application.
Once you become more familiar with how the control works, then you
can move on to more complex applications which leverage the lower
level methods, taking advantage of asynchronous networking
connections and so on.
One of the common pitfalls that developers can encounter with a
large toolkit like SocketTools is the inclination to over-design
the application from the start, and then become frustrated because
they don't yet have a clear picture of how all the pieces fit
together. Start out with a basic design and then as you become more
familiar with how the SocketTools controls work, expand on it.