Hi all,
I'm putting the finishing touches on Web Conection 4.65 (for Visual FoxPro) today. There have been a lot of minor enhancements and tweaks and updates to the documentation to kind of bring the key parts of setup and configuration more up to date.
The highlights of what's new in this release are:
- Much improved support for Apache
A lot of people have been asking about Apache support and Web Connection now includes a custom Apache Module that works around some issues with the Apache ISAPI implementation. One of the things this module does also is provide Windows Authentication to Apache (optoinally) so it makes Apache behave more like IIS in terms of Authentication. The main reason I did this is to make sure that the wc.dll Admin functions can be locked down which otherwise would have been very tricky to setup (basically creating custom scriptmaps and setting access with Apache security which is spotty at best).
This update also lets Apache run Web Connection in full COM mode. This makes a Apache a nearly full citizen server for Web Connection - the one main missing feature is the ability to have non-file backed script maps - in Apache all scriptmaps require a backing file or you'll get a 404. This breaks some of the Web Connection demo applications, but it's reasonable to work with this when you build your own applications to simply provide pages that back the script map request.
- wwGhostScript
The wwPDF classes now support the free GhostScript interpreter to generate PDF files. I've implemented a small wrapper DLL function for GhostScript that is part of wwIPStuff now and can quickly and efficiently render PDF output from PostScript files. The functionality of this class will be identical to the wwDistiller class - you still need to install a PostScript Printer to print a PDF file first.
A couple side notes here: I've been testing direct PDF output with Acrobat 7.0 and with the FoxIt PDF reader and I have not seen any failures in the browser in terms of documents not displaying or causing multiple hits to the server. It looks like some of the Acrobat issues have been resolved at least in Version 7, maybe even in 6. Maybe some of you with older versions can try this out. Part of this may be the mere fact that Web Connection now automatically appends content-lengths to the output
- Response.TransmitFile
The ability to stream files to the server without having to go through FoxPro memory. This simple function makes it much more efficient to serve contents from files to your clients for applications like secured access areas of for pay content etc. This function has lots of implications from allows large output (larger than 16 megs) to be created in Web Connection to providing lightning fast access to files without passing them through Web Connection.
- Improved HTTP Header Handling
Web Connection now uses standard ISAPI output mechanisms to generate and augment the HTTP header. This means headers are automatically marked up with default headers that are configured in IIS. The main reason this was done is to provide compatibility with Apache, which does not work with HTTP Headers sent as part of the content but require the special header functions to send the headers. THe new feature also forces a content-length into the output even if your code doesn't provide it which provides a more reliable connection with the browser.
- wwSql improvements and wwADOSQL Class
wwSQL now has a AddParameter method that allows you effectively create parameters on your SQL statements and pass them around - this feature avoid hardcoding SQL parameter values and is a big help in sidestepping SQL Injection issues. wwADOSql is a new class that provides the same functionality as wwSQL but uses ADO. While slower than SQLPassthrough, ADO provides the ability to deal more effectively with Unicode data. This new class requires VFP 8 for basic operations and VFP 9 in order to take advantage of effective Unicode data access.
- Installer and Wizards now set directory permissions automatically
The Web Connection Wizards now set permissions on the any of the install directories automatically. Web directories are set with IUSR_ rights and the Web Connection temp directory selected is automatically set with read/write access rights for IUSR_. All permissions are set on private directories. The installer and Wizards now also create a all script maps as local scriptmaps rather than global scriptmaps. This should avoid one of the most frequent 'getting started' SNAFUs in Web Connection. This functionality is provided in the Setup, Create Project and Configure Server Wizard.
- VFP 9 Binaries included
I'm almost embarrassed that there haven't been VFP 9 binaries in the current Web Connection setup. It works fine of course but you have to start VFP 9 first and then run from within the IDE to do setup and run the Console. I've been meaning to update this rev of Web Connection since VFP shipped but there was always, “one more thing, one more thing“. So here we are... in this rev VFP 9 binaries will be the installation default with VFP 7,8,9 binaries provided. VFP 6 developers can use the IDE route.
There are more enhancements like the ability to CommandLine driven DCOM configuration, a new flag that determines whether Web Connection looks in the registry for a startup path (and it's off by default), updated sample Source and script file views in the demos, slight (first step) updates to the samples for use of CSS rather than font tags and more. The file download samples have also been updated to use the DownloadFile() and TransmitFile() features.
Lotsa stuff coming...
So much for a minor update, huh? <g> 4.65 is such an omnious number. 3.65 was the last 3.x version before rev'ing to 4.x...