West Wind Internet & Client Tools
for Visual FoxPro

West Wind Client Tools is a suite of FoxPro classes that provides rich Internet functionality to FoxPro applications. The library also includes many useful utility classes for every day FoxPro development tasks.

The Internet features include SMTP Email support, full featured HTTP Web access, FTP file transfers and management, low level TCP/IP access and a host of Internet support functions. The client utilities components like a light weight business object framework, an easy to use SQL client library, a .NET integration library, powerful FoxPro based scripting class, XML conversion routines, and a number of very rich generic utility libraries for common everyday FoxPro tasks.

This tool provides all of the client and everyday development functionality of our West Wind Web Connection product, and is an upgrade to the functionality of the discontinued West Wind Internet Protocols suite, the functionality of which is integrated into this package.

Although a number of the tools included in this package are available from various sources and articles were previously published by Rick Strahl, this package combines them into a single, fully documented, frequently updated and supported package.

The following classes and tools are provided:

Internet Functionality:

  • SMTP and POP3 Email support
    SMTP Send Mail capability both in blocking synchronous and asynchronous modes. Support for file attachments, CCs and BCCs, special content types (HTML or XML messages for example) and more. All you need is a mail server to send message through (your ISP's or your own) and off you go. POP3 support provides a separate class to handle mail retrieval with an easy to use interface to retrieving, parsing and managing messages in a POP3 mailbox. The latest version also supports SSL based connections.

  • HTTP - Access Web content from VFP
    Need to grab any content from the Web in your applications? Retrieve Web page content for screen scraping, talk to REST , POX or other Web Service APIs, submit and drive Web based forms and send XML or binary data from client to server and back. wwHTTP is a complete HTTP client libary for FoxPro that lets receive and send data over the Web using HTTP with great ease. Send URLEncoded POST data to servers, upload huge files via HTTP, access SSL, handle GZip encoded and authenticated content. Best of all it's very easy to use: all it takes is two lines of code to retrieve content and only a few additional lines to POST content to a server.

  • Advanced HTTP support
    In addition, tools required for efficient HTTP operation are also included such as fast URLEncoding/URLDecoding using fast C code routines, binary packaging for DBF files for transfer over HTTP, a GZip decoding and encoding component, as well as inclusion of the powerful wwXML class which can be used to convert VFP cursors and objects into XML.

  • FTP and SFTP - Transfer files
    New updated wwFTP class allows for file downloads and uploads. Low and high level methods for simple transfers and control over the connection are supported. Use active and passive FTP. The tools also support SFTP (SSH over SSH).

  • Low Level TCP/IP Socket Access
    Create low level TCP/IP socket connections and create socket servers with with the wwSocket class to access Internet or TCP/IP services. This class is very easy to use and includes high-level methods that session and transaction based TCP/IP access very easy.

  • Dial up Networking
    Basic support for dialing and disconnecting a RAS Dial-up Networking Connections.

  • IP Address validation
    Support for domain lookup from IP address and IP Address from domain name.

  • Fast C based Conversion Routines
    UrlEncoding and UrlDecoding, UTF-8 Conversion, Base 64 encoding.

Data Access Classes and Support Classes

  • wwBusiness Class
    The wwBusiness class is an extremly easy to use, single level business object class. It implements both the business and data tier in a single object to provide ease of use and maximum performance. The base object provides core data access functionality (Load, Save, Query, New etc.) through its base class methods. Query based data access is also supported through native Fox syntax or using the class methods which can route to the appropriate backend. Fox or SQL Server are natively supported. SQL Server is supported with SQL Passthrough commands. Remote Web data is also supported against any FoxPro based Web backend (Web Connection, ASP+COM, FoxISAPI etc.) Web data can run against a SQL backend (with some limitations a Fox backend can be used as well).

  • wwSQL Class
    The wwSQL class is a light-weight wraper object around SQL Passthrough in Visual FoxPro and provides handle abstraction and a simplified interface to executing SQL commands and managing connections. The class provides error handling and error recovery for connection issues as well as a number of high level methods that deal with updating data and passing data between Fox and SQL backends. There's also a wwADOSql class that works through ADO to provide Unicode support in database access using the exact same syntax as wwSQL.

  • wwDotNetBridge Class
    Access just about any .NET component from Visual FoxPro and do it without requiring COM registration. The library allows access to components not supported with plain COM Interop such as enumerations, value structures, generic types, arrays and collections and a host of common but COM unsupported types. wwDotnetBridge removes many of the limitations of .NET COM Interop and allows you to tap into the full power and features of the .NET framework.

  • wwJsonSerializer and wwJsonServiceClient
    The serializer provides reliable JSON serialization and deserialization of FoxPro objects/Values to and from JSON. The serializer is fast and highly reliable using the JSON.NET serializer to handle reliable and fast deserialization. wwJsonServiceClient provides a wrapper for calling JSON REST services by handling making HTTP calls and serializing and deserializing JSON transparently.

  • wwXML Class
    wwXML is a powerful data conversion class that lets you convert Fox cursors and object to and from XML. This class is more flexible than VFP 7's native commands and provides a number of additional features including direct support for .NET datasets and of course the ability to persist and restore objects.

  • MarkdownParser Class
    This class lets you easily parse Markdown text into HTML in your application. Markdown is a simple and easy to type text format that can be turned into HTML and is an ideal solution for dealing with HTML text in FoxPro.

  • wwHTTPSQL/wwHTTPSQLServer Web SQL Class
    The wwHTTPSQL class provides a Web based remote SQL Engine to VFP client applications. The wwHTTPSQL -> wwHTTPSQLServer pair allows an application to query data from a Web server and return this data in standard VFP cursor format. Data travels over the wire as XML and is transparently converted. The server can be implemented in any VFP code capable Web development tool (Web Connection, ASP, FoxISAPI, AFP etc) and allows remote execution against VFP or any ODBC datasource on the Web server. Ever wanted to run Visual FoxPro as a remote SQL Engine? This is one way you can do it. Very easy to install and access with only a few lines of code.

General Purpose Classes

  • wwScripting Class
    The wwScripting class is a dynamic ASP like (<% %>) dynamic scripting engine that lets you do template merged scripting at the speed of fully compiled FoxPro code. wwScripting takes your scripts/templates and turns them into full FoxPro PRG files that are cached and execute at the full speed of Visual FoxPro. Templates can be modified at runtime and changes be detected in real time for maximum flexibility without loss of performance. You can even use partials and layout pages to reuse markup easily. Great tool to add dynamic scripting or HTML rendering to your applications.

  • wwImaging functions
    Use these functions to create thumbnails or resize and rotate images, retrieve image info or set JPEG compression level on a variety of image types. Provides a small wrapper around some basic GDI+ functions that are very easy to use and fast. Also includes function to create a CAPTCHA image for user input validation on Web Pages.

  • wwCollection Classes
    FoxPro includes a collection class but unfortunately that class is hobbled by many issues including horrible performance and the inability to trap for missing elements without generting errors. The wwCollection classes provide a base collection (value only) class, a name value collection and stack classes. Classes are managed through arrays and provide many useful features not found on the built-in collection class.

  • wwCodeUpdate - Update your Applications
    This useful class provides everything needed to have your applications check for version information online (in an XML file) and download and install updates. The class provides for online checking of the latest version available, version comparision, file download via HTTP, swapping files and restarting the current application.

Utility Classes

  • wwConfig  -  A very useful configuration utility that can persist data from an object into a configuration file (XML, INI or the registry) and can be used in any application as a single access configuration manager object.

  • wwCache - A cache class that allows you to easily cache string results for later reuse. Very useful especially for Web applications where content or partial content can be easily cached for reuse.

  • wwXMLState - This class can be used to manage dynamic properties inside of a string or memo field. It's XML based and stores multiple values in a single string. Useful for extending database schemas without changing the structure and to store data more efficiently when data is sparse and would waste space as a field.

  • wwEval - A 'safe execution' class that can be used to run user specified or unknown code. Sort of a poor man's Try/Catch implementation that allows you to run code that potentially could fail safely and receive error information. Execute single commands, expressions and even entire code blocks. Also includes MergeText() functionality to parse script like pages using ASP style syntax and wwEvalTimer which allows you to generically fire delayed expressions and code blocks.

  • wwLocaleInfo - Very useful class to retrieve all location specific information (date time formats, delimiters, currency symbols etc.) about a given locale.

  • wwUtils and wwAPI Libraries - These extensive function libraries contains a variety of general purpose functions from string formatting, to HTML formatting, to debugging, COM configuration, viewing output in various text formats and even several GUI pop up routines. The API library abstracts many often used Windows API functions in simple wrappers.

Useful Tools

Client Tools also includes a number of tools that are useful in the course of development of applications:
  • Structure Exporter -  Takes VFP table structures and exports it to text in various ways: CREATE TABLE statements, object declarations, field list, Help Builder field list and several more.

  • Text Wrapper -  Useful tool to take a block of text and create string based code writes out this text via code.=

Full Source Code

The registered version of the Client Tools come with full source code that you can review, modify and embed into your own applications. Full source code means peace of mind since you can modify the code to your liking or fix any problems you might run into on your own without waiting for full release updates. We frequently publish bug fixes or modifications on our message board and you can easily plug those in immediately without waiting for the next release.

Licensing and Pricing

The West Wind  Internet & Client Web are licensed as shareware, which means you get to try the library for free. Various nag screens notify you of the shareware status of an unregistered copy. Otherwise the shareware version is fully functional so you can try out the product in full. If you plan to use any of these components in production code you are required to register this libary by purchasing a copy and we will provide you with a full version of the components that don't have these nag screens.

The toolkit is licensed per developer using the toolkit. There's an unlimited runtime license for compiled code that uses any of these components - go ahead and embed these libraries in compiled form into as many applications as you like.

Purchase Now West Wind Internet & Client Tools Single Developer License
Developer license for a single developer. Allows unlimited runtime distribution on any number of applications and servers for a single developer.

US $279.00

Purchase Now West Wind Internet & Client Tools Version Upgrade to 6.x
Upgrades a pre-6.x version license to the current 6.x version.

US $149.00

Purchase Now West Wind Internet Protocols to Client Tools Upgrade
Upgrades a copy of West Wind Internet Protocols to the full version 6.x of West Wind Internet & Client Tools package.

US $179.00

© West Wind Technologies, 2004-2018
Version 6.22
September 25th, 2018 Download the latest version of West Wind Internet & Client Tools that works with Visual FoxPro 9.0 and 8.0 (or V4.68 that works with VFP 7 and 6)

This tool is distributed as shareware. The shareware version is fully functional so you can try out all features, but it includes pop up nag screens. The registered version includes full source code, can be modified and includes an unlimited runtime license.
to properly license your copy.
The full documentation for these tools are available online. You can also find this documentation provided as a CHM file with the full download of the library.
Got a problem or can't figure out how something works? Try our support forum. We're here to help you get started and want to hear if something doesn't work as expected or - gulp - doesn't work correctly. We welcome your questions and feedback which in turn helps us provide a better product. See you there.